Новые типы DCImanager в BILLmanager

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

Иерархия: BILLmanager -> Интеграция
BILLmanager Corporate -> Интеграция

Общее описание

Начиная с версиии 5.85 BILLmanager начинает поддерживать новые типы серверов DCImanager. Новые типы в DCImanager представляют собой автоматически обновляемые конфигурации оборудования, входящего в состав сервера.

Настройки модуля обработки

Для включения поддержки новых типов DCI при создании модуля обработки необходимо на шаге "Настройка интеграции" включить опцию "Новый тип серверов".

Настройка интеграции. Новый тип серверов.

Если опция активна, то на шаге "Настройка обработчика услуг" становятся доступны поля "Ответственный за сборку" и "Ответственный за закупку"

Настройка обработчика. Ответственные за сборку и закупку.
  • "Ответственный за сборку" - отдел, в который будут создаваться задачи на сборку выделенных серверов
  • "Ответственный за закупку" - отдел, в который будут создаваться задачи на покупку недостающих запчастей

Также опция "Новый тип серверов" и ответственные за сборку/закупку отделы могут быть настроены на форме редактирования модуля обработки. Настройка опции возможна только при отсутствии тарифных планов на обработчике.

Редактирование модуля обработки.


Создание тарифного плана

Создание тарифного плана происходит на основе готовых конфигураций DCImanager. На форме создания тарифного плана в случае, если выбран обработчик, поддерживающий новый тип серверов, поле "Тип сервера" заменяется на выпадающий список "Конфигурация", в который автоматически заносится список конфигураций свободных серверов из DCImanager. При построении списка свободных серверов для каждого сервера учитывается следующее:

  • у него нет владельца;
  • доменное имя равно "free.ds";
  • отсутствуют проблемы с оборудованием (флаг hwproblem в xml);
  • для сервера не включена опция "Защитить сервер" (флаг forcelock в xml, в списке серверов отображается значок со щитом).
Создание тарифного плана

При активной опции "Создать все доступные дополнения" (активна по умолчанию) после создания тарифного плана происходит автоматическое создание дополнений. В это время тарифный план находится в состоянии "Синхронизация с панелью управления" и над ним не доступны действия: редактирование, удаление, клонирование, включение/выключение, редактирование списка дополнений. Для обновления информации о состоянии необходимо обновить список тарифных планов.

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

Изменение конфигурации возможно при редактировании тарифного плана. При этом автоматически перестраивается список дополнений:

  • если тарифный план новый и нет заказанных услуг, то старые дополнения удаляются;
  • в противном случае старые дополнения переводятся в неактивное состояние.

На рисунке ниже показан список дополнений тарифного плана, которые были созданы при выборе (тестовой) конфигурации "2x2.80GHz-256Gb-1024SATA-320SATA-ASR-530-X"

Список дополнений тарифа

Перечень создаваемых дополнений:

  • Процессор - задает тип процессора, соответствующий конфигурации сервера в DCImanager; тип - перечисление;
  • Количество процессоров - задает количество процессоров в конфигурации сервера; тип - целое число;
  • Оперативная память - задает объем оперативной памяти сервера; тип - перечисление;
  • Жесткий диск - задает тип и объем одного из жестких дисков сервера; для каждого диска создается отдельное дополнение; тип - перечисление;
  • Контроллер - задает тип одного из установленных PCI-контроллеров; для каждого контроллера выбранной конфигурации создается отдельное дополнение; тип - перечисление.

При автоматическом создании у дополнений-перечислений активируется только один элемент - соответствующий устройству из конфигурации. Если такого устройства нет среди значений перечисления, то значение создается автоматически.

Для дополнения "Количество процессоров" поля "Максимальное значение" и "Минимально значение" выставляются равными включенному в тариф значению. Таким образом, созданный тарифный план полностью соответствует выбранной конфигурации, при заказе услуги у пользователя не будет возможности выбора устройств.

При необходимости возможно вручную настроить дополнения. Обратите внимание, что для корректного функционирования необходимо наличие как минимум 4 дополнений: процессор, количество процессоров, оперативная память, жесткий диск.

Кроме того, для дополнений могут быть активированы другие элементы перечислений, заданы другие максимальные/минимальные значения - в этом случае при заказе услуги клиент будет сам определять требуемую конфигурацию сервера.

Если вместо конфигурации при создании или редактировании тарифного плана выбрать "Указать вручную", то будет осуществлено создание минимально необходимых дополнений: процессор, количество процессоров, оперативная память, жесткий диск. Данные дополнения будут включены, но их значения будут пустыми, по этому их необходимо заполнить вручную. На рисунке ниже показан список дополнений тарифного плана, которые были созданы при выборе "Указать вручную".


Список дополнений тарифа

Обратите также внимание - при изменении значения по умолчанию для дополнения-перечисления это значение становится активным. Старое значение также остается активным, при необходимости его нужно выключить вручную.

Изменения в типе продукта "Выделенный сервер"

Для поддержки новых типов серверов DCImanager создаются следующие дополнения (в скобках указаны внутренние наименования):

  • Процессор (cpu);
  • Количество процессоров (ncpu);
  • Оперативная память (ram);
  • Жесткий диск 1-12 (hdd_1 - hdd_12);
  • Контроллер 1-4 (pci_1 - pci_4).


Для поддержки новых типов серверов DCImanager создаются следующие перечисления (в скобках указаны внутренние наименования):

  • Процессор (cpu)

по умолчанию содержит одно значение - "Без процессора" (NOCPU); по мере создания/редактирования тарифных планов значения будут наполняться автоматически

Элементы перечисления "Процессор"


  • Контроллер (pci)

по умолчанию содержит одно значение - "Без контроллера" (NOCONTROLLER); по мере создания/редактирования тарифных планов значения будут наполняться автоматически

Элементы перечисления "Контроллер"
  • Оперативная память (ram)

по умолчанию содержит значения для объемов памяти от 1 до 512 Гб; по мере создания/редактирования тарифных планов значения будут наполняться автоматически

Элементы перечисления "Оперативная память"
  • Жесткий диск (hdd)

по умолчанию содержит значение "Без диска" (NODISK); по мере создания/редактирования тарифных планов значения будут наполняться автоматически

Элементы перечисления "Жесткий диск"


Создание элементов перечислений вручную

Для создания элемента перечисления необходимо корректно заполнить внутреннее наименование. Формат внутреннего наименования зависит от типа перечисления:

  • жесткий диск - внутреннее наименование содержит 2 поля: тип диска (type; например - SSD, SATA) и размер (size) в Гб, разделенные символом ";"; значения полей указываются через символ ":", например, для SATA-диска размером 320 Гб:
 type:SATA;size:320
  • контроллер - внутреннее наименование содержит 2 поля: тип контроллера (type, например - RAID) и его наименование (name); например, для RAID-контроллера ASR5405:
name:ASR5405;type:RAID
  • оперативная память - внутреннее наименование содержит одно число - объем памяти в Гб
  • процессор - внутреннее наименование содержит полное наименование процессора


Определение значений для внутренних наименований

Вариант 1. По xml списка серверов в DCImanager (рекомендуется).

Для получения требуемой xml необходимо вызвать функцию server с параметром show_configuration=on:

?func=server&out=xml&show_configuration=on

можно также отфильтровать список, например:

?func=server&out=xml&show_configuration=on&filter=on&id=<id сервера>

Полученная в результате xml будет содержать примерно следующее:

<doc ...>
 <elem>
    <id>1</id>
    <configuration>
      <cpu name="E3-1231 v3 " rawname="Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz " corecnt=""/>
      <hdd name="TOSHIBA MG03ACA100" size="1000" type="SATA"/>
      <hdd name="TOSHIBA MG03ACA100" size="1000" type="SATA"/>
      <ram size="16"/>
      <pci name="ASR3405" type="RAID"/>
    </configuration>
    ...
 </elem>
 ...
 </doc>

в узле configuration содержится информация, требуемая для внутренних наименований элементов перечислений:

  • для процессора используется атрибут rawname;
  • для жестких дисков используются атрибуты size и type;
  • для оперативной памяти используется атрибут size;
  • для контроллера - атрибуты name и type.


Вариант 2. В интерфейсе DCImanager.

Используется раздел "Типы оборудования" главного меню:

  • процессоры - для внутреннего наименования необходимо использовать поле "Имя";
  • жесткие диски - поля "Тип" и "Размер Gb";
  • PCI-устройства (контроллеры) - поля "Имя" и "Тип".


Для приведенного выше примера xml, при необходимости, нужно создать элементы перечислений со следующими внутренними именами:

  • процессор - "Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz";
  • жесткий диск - "type:SATA;size:1000";
  • оперативная память - "16";
  • контроллер - "name:ASR3405;type:RAID".

Описание алгоритмов работы с выделенным сервером

  1. Определяется конфигурация заказанного сервера, на основе значений дополнений к услуге. Для тарифов, предоставляющих пользователю выбор комплектующих, конфигурация может отличаться от заданной по умолчанию в тарифе;
  2. При построении списка свободных серверов происходит сравнение конфигурации сервера и конфигурации, заказанной пользователем;
  3. Если свободный сервер с подходящей конфигурацией найден - происходит его установка по стандартной схеме;
  4. Если сервер не был найден, либо произошла ошибка во время установки и больше нет серверов с искомой конфигурацией, происходит попытка создать задачу на сборку необходимого сервера;
  5. Если подходящего сервера для сборки не найдено, то создается задача на покупку недостающих запчастей.

Внимание! Создание задач поддерживается только для DCImanager c активным модулем инвентаризации (опция Option InventoryModule в конфигурационном файле DCImanager).

Алгоритм создания задачи на сборку сервера

  1. Среди свободных серверов производится поиск сервера с совпадающими процессорами. При этом:
    1. В первую очередь просматриваются сервера, отличающиеся от заказанной конфигурации только жесткими дисками;
    2. Если таких серверов нет - все остальные;
    3. На сборку отдается сервер с наименьшим числом перестановок.
  2. Если сервер с совпадающими серверами не найден, производится поиск "чистых", еще не собранных, серверов (у таких серверов узел xml configuration/cpu не задан);
    1. Для всех подобных серверов происходит проверка на совместимость платформы с процессорами в заказанной конфигурации;
    2. Если платформа совместима - сервер принимается за искомый и отдается на сборку.
  3. Если сервер не найден, то производится поиск среди всех свободных серверов с другими процессорами, но с подходящей платформой;
  4. Найденный сервер перевешивается на администратора;
  5. Создается задача.


Задача на сборку сервера

На рисунке ниже представлена часть окна задачи на сборку сервера (в режиме, когда задача взята на обслуживание одним из сотрудников).

Задача на сборку сервера

Описание полей:

  • Имеется свободный сервер - при закрытии задачи будет произведена попытка открытия готового сервера;
  • Номер стойки - номер стойки, в которой установлен сервер;
  • Наклейка - название сервера.

Вкладки "Установить устройства" и "Извлечь устройства" содержат список устройств, которые необходимо установить или извлечь при сборке сервера. Их содержимое зависит от конкретной ситуации (заказанной конфигурации и подобранного сервера). В общем случае могут содержать следующую информацию:

  • Процессор - процессор, который необходимо установить/извлечь из сервера;
  • Жесткий диск - жесткий диск, который необходимо установить/извлечь из сервера;
  • Память - объем оперативной памяти, которую необходимо установить/извлечь из сервера;
  • Контроллер - контроллер, который необходимо установить/извлечь из сервера.

Перед наименованием устройства для жестких дисков, процессоров и контроллеров указывается их количество в виде 1x, 2x и т.д., например - "1xSATA 1024 Gb"


Действия при закрытии задачи:

  1. Если отмечена опция "Имеется свободный сервер", то при закрытии задачи происходит освобождение зарезервированного сервера (с созданием задачи "Освобождение выделенного сервера" в случае неудачи), далее запускается процесс стандартного открытия сервера.
  2. В противном случае:
    1. Запускается процесс диагностики сервера;
    2. После успешного завершения диагностики происходит сравнение конфигурации сервера с конфигурацией, заказанной пользователем. Если конфигурации совпадают - запускается процесс установки сервера, иначе - создается новая задача на сборку.

Алгоритм создания задачи на покупку оборудования

  1. Если сервер для сборки не был найден, производится попытка создать задачу на покупку;
  2. Подсчитывается количество процессоров требуемого типа на складе (дополнительно учитываются процессоры, зарезервированные в других задачах на сборку/покупку);
  3. Если количество свободных процессоров меньше, чем требуется в заказанной конфигурации, то создается задача на покупку недостающего количества процессоров;
  4. Производится попытка подобрать сервер с подходящей платформой (см. п. 3.2.);
  5. Если сервер с требуемой платформой найден - он перевешивается на администратора и закрепляется за услугой;
  6. Если платформа не найдена - в задачу добавляется информация о необходимости покупки платформы.


Задача на покупку оборудования

На рисунке ниже представлена часть окна задачи на покупку оборудования (в режиме, когда задача взята на обслуживание одним из сотрудников).

Задача на покупку оборудования

Описание полей:

  • Имеется свободный сервер - при закрытии задачи будет произведена попытка открытия готового сервера;
  • Процессор - количество и тип процессоров, которые необходимо приобрести;
  • Платформа для процессора - количество и тип процессоров, для которых необходимо приобрести совместимую платформу.

В общем случае в задаче может присутствовать одно поле "Процессор" или "Платформа для процессора", либо оба поля одновременно.

Внимание! Перед закрытием задачи в DCImanager необходимо внести информацию о приобретенном оборудовании в соответствии с требованиями к именованию процессоров и требованиями к именованию платформ

Действия при закрытии задачи:

  1. Если отмечена опция "Имеется свободный сервер", то при закрытии задачи происходит освобождение зарезервированного сервера (с созданием задачи "Освобождение выделенного сервера" в случае неудачи), далее запускается процесс стандартного открытия сервера;
  2. В противном случае происходит попытка создания задачи на сборку сервера.


Алгоритм выбора сервера с подходящей платформой

Предположим, что пользователь заказал конфигурацию с двумя процессорами "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz".

При поиске необходимого сервера имя процессора и имя платформы приводятся к общему виду.

Для процессора:

  • из имени процессора извлекается часть между "CPU" и "@", символы "-" и "_" заменяются на символ " " (пробел): E3 1230 v3;
  • из полученной строки вырезается "средняя часть" и, если процессоров более одного, то количество процессоров добавляется в начало строки: 2E3v3.

Для платформы:

  • из наименования платформы (например, "2_E3_v3 Blade") извлекается часть до первого пробела: 2_e3_v3;
  • в полученной строке символы "_" и "x" заменяются на пробелы: 2E3v3.

Сравнение преобразованных имен процессора и платформы - регистронезависимое.

Таким образом, сервер с платформой "2_E3_v3 Blade" может быть использован для сборки конфигурации, в состав которой входят 2 процессора "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz".

Алгоритм поиска процессора на складе

Предположим, что пользователь заказал конфигурацию с двумя процессорами "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz".

При поиске на складе имя процессора в конфигурации и имя процессора на складе приводятся к общему виду.

Для процессора из конфигурации:

  • из имени процессора извлекается часть между "CPU" и "@", символы "-" и "_" - вырезаются: E31230v3

Для процессора со склада:

  • из имени процессора извлекается первая часть справа (до пробела), символы "-" и "_" - также вырезаются, например для "CPU Xeon E3-1230V3": E31230V3

Сравнение при поиске - регистронезависимое. Таким образом, "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz" и "CPU Xeon E3-1230V3" считаются одним и тем же процессором.

Для получения списка устройств на складе DCImanager используется запрос

func=ispare&out=xml&filter=on&placement=0

За процессор принимается любое устройство, наименование типа которого начинается с "CPU"

Формат имени процессора

Имена процессоров Intel имеют следующий формат:

<Brand> <Product Line> <Product Family> <Version>

где:

  • Brand - бренд, например "Intel® Xeon® Processor"
  • Product Line - линейка продукта, например E3, E5, E7
  • Product Family - семейство продукта, например 1230 и пр.
  • Version - версия, например V2, V3 и пр.

Пример, наименования процессора: "Intel(R) Xeon(R) CPU E5-2650 V4 @ 2.20GHz"


Требования к именованию платформ в DCImanager

Формат имени платформы:

[количество процессоров][x][_]<Product Line>[_]<Version> [Дополнительная информация]

где,

  • [] - признак необязательного поля;
  • Product Line - линейка поддерживаемых процессоров;
  • Version - версия поддерживаемых процессоров.

Примеры корректных наименований платформ:

  • 2_E3_v3 Blade;
  • 2xE5_v2 1U;
  • 2E5_v3 1U.

Требования к именованию процессоров на складе DCImanager

Формат имени типа устройства для процессора:

CPU [Name] <Product Line>-<Product Family><Version>

где:

  • Name - имя, например Xeon;
  • Product Line - линейка продукта;
  • Product Family - семейство продукта;
  • Version - версия.

Примеры корректных наименований процессоров:

  • CPU Xeon E3-1230V3;
  • CPU Xeon E5-2680V2;
  • CPU Xeon E5-2697v2.

Перепродажа услуг

Настройка перепродажи остается прежней.

При изменении конфигурации тарифа в общем случае происходит отключение старых дополнений и включение новых. При синхронизации тарифных планов новые дополнения переносятся как выключенные. Это может привести к неработоспособности тарифного плана на перепродающей стороне, так как выключенными окажутся все дополнения. Чтобы избежать подобных ситуаций необходимо использовать ключ new_addon_active=on при вызове команды синхронизации:

cd /usr/local/mgr5
./sbin/mgrctl -m billmgr pricelist.sync elid=<id тарифа> new_addon_active=on