Конвертация типов серверов в DCImanager

Материал из ISPWiki
Перейти к: навигация, поиск

Иерархия: DCImanager -> FAQ
DCImanager Enterprise -> FAQ

В этой статье описан новый механизм для учета типов серверов и даны инструкции для конвертации предыдущего механизма Типы серверов. Новый механизм доступен с версии 5.38

Введение

В DCImanager появился новый механизм для учета типов(конфигурации) серверов. Для плавного перехода, текущий механизм типов серверов оставлен неизменным и работает как прежде(т.е. настроенная интеграция с BILLmanager, выявление несоответствия типу при диагностике и все прочее работает как всегда), но в последующем он будет отключен. В новом механизме тип формируется для каждого сервера в отдельности, путем изменения соответствующих полей в форме редактирования сервера. При этом автоматически генерируется имя получаемого типа, удобное для интеграции с BILLmanager. При использовании нового механизма нет необходимости создавать дополнительный тип вследствие изменения конфигурации отдельных серверов. Это частая проблема, возникающая при использовании предыдущего механизма когда пользователь добавил, к примеру, в отдельный сервер оперативной памяти и вынужден создавать новый тип на основе старого, отличающийся лишь количеством оперативной памяти и используемый только для этого конкретного сервера. Со временем это приводит к образованию десятков различных типов серверов, под каждую конфигурацию. При новом механизме, во время прохождения диагностики, все данные(HDD, CPU и т.д.) будут автоматически добавляться в поля сервера. После окончания диагностики у сервера будет сформировано актуальное имя Шасси.

Конвертация

Ниже описаны функции которые нужно вызывать в указанном порядке, что бы успешно провести конвертацию.

Вначале необходимо создать оборудование, которое появится в разделе меню Типы оборудования.

/usr/local/mgr5/sbin/mgrctl -m dcimgr internal.create.equipmenttype su=admin

В качестве параметра su должно быть передано имя пользователя с правами администратора. Данная функция создаст жесткие диски и процессоры на основе данных из базы(из таблиц cpulist, hddlist, которые заполняются при прохождении серверами диагностики).

Функция ниже обойдет каждый сервер и на основе данных из базы(полученных ранее, во время диагностики) сгенерирует тип для каждого сервера.

/usr/local/mgr5/sbin/mgrctl -m dcimgr internal.assign.equipment su=admin

Внимание! Выполнение функции может занять некоторое время(5-15 мин.) поскольку в базе будет произведено множество SELECT и UPDATE запросов.

В результате выполнении функции, в каждом сервере будут заполнены поля, отвечающие за его тип(будет указано сколько в сервере RAM, сколько и какие HDD, CPU). Так-же будет сгенерировано имя нового типа, его можно будет увидеть как в форме редактирования сервера, так и в списке серверов в столбце Шасси.

Следующая функция опциональна, но в некоторых случаях может сыграть большую роль(если есть много серверов, у которых указан тип, но для которых нет данных в базе, напр. потому что на них не проводилась диагностика).

/usr/local/mgr5/sbin/mgrctl -m dcimgr internal.assign.equipment.fromsrvtype su=admin

Внимание! Настоятельно рекомендуется вызывать эту функцию только после internal.assign.equipment. Дело в том, что в internal.assign.equipment обходятся все сервера, в не зависимости от того, было ли им уже назначено Шасси или нет. Таким образом, если вы вначале вызовете internal.assign.equipment.fromsrvtype, а потом internal.assign.equipment, то Шасси у всех серверов, которые были назначены посредством internal.assign.equipment.fromsrvtype будут "затерты" вызовом internal.assign.equipment. Однако internal.assign.equipment.fromsrvtype обходит и пытается назначить Шасси только тем серверам, у которых Шасси(поле gen_chassis_name в базе) пустое или NULL. Поэтому вначале вызываем internal.assign.equipment, после его вызова как правило остается часть серверов, которым не удалось назначить Шасси, у них будет нулевое поле gen_chassis_name. Вызываем internal.assign.equipment.fromsrvtype которая работает с оставшимися серверами.

Задача этой функции - попробовать сконвертировать тип не на основе данных из базы, а на основе имени типа сервера из предыдущего механизма. То есть, если в Типах серверов у вас есть тип с именем "DHX-2.4-32G-A5405B-4x600SAS" и у этого типа есть сервера, то после выполнения функции этот тип будет сконвертирован следующим образом:

  • В Процессорах будет создан процессор с именем DHX-2.4.
  • В Жестких дисках будет создан HDD с именем 600SAS и типом SAS.
  • В PCI устройства будет создан RAID-контроллер A5405B.
  • Всем серверам этого типа будут добавлены(в форме редактирования) процессор, 4 жестких диска и RAID-контроллер из пунктов 1, 2, 3 и указано количество оперативной памяти - 32Gb.
  • У серверов будет сгенерировано имя нового типа(Шасси в списке серверов): DHX-2.4-32G-4x600SAS-A5405B

Функция способна конвертировать типы в следующем формате:

A2D-1.6-2G-1x250SATA
C2Q-2.4-8G-ASR3405-4x150SAS
DHX-2.4-32G-A5405B-4x600SAS
E3-1240v1-16G-2x2000SATA
QX-2.53-8-2x500SATA

Внимание! Типы вида E5-2620-32GB-2x2TB(размер в TB), QX-3.4-16G-2x2000SATA+1x250SSD (знак "+") или QX-3.4-16G-2x2000SATA-1x250SSD (возможна только 1 запись для жесткого диска) не будут сконвертированы. Для успешной конвертации разделителем элементов(CPU, HDD, RAM) должен быть знак "-". У HDD в конце должен быть указан его тип (SATA, SAS).