Пул виртуальных серверов

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

Пул серверов предназначен для предварительного создания виртуальных серверов на обработчике с последующей их выдачей при заказе услуг. Таким образом достигается значительное уменьшение времени обработки заказа. Данная возможность доступна с версии BILLmanager 5.85

Активация пула серверов для модуля обработки

При активном пуле BILLmanager 5 автоматически создает сервера на модулях обработки с включенной опцией "Использовать пул".
Для использования пула необходимо создать специальный аккаунт, к которому будут привязываться сервера из пула. Это обычный клиент, за тем исключением, что серверы, привязанные к нему, считаются находящимися в пуле и отдаются при заказе услуг другим пользователям.

Аккаунту пула автоматически назначаются 100% скидки при подключении к модулю обработки.

Для корректного функционирования пула необходимо, чтобы аккаунт был включен в группу с правами "Разрешить удаление услуг" и "Игнорировать количество услуг на аккаунт". Эту настройку необходимо выполнить самостоятельно.


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

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


Список полей:

  • Использовать пул - если опция активна, то происходит автоматическое создание виртуальных серверов в пул;
  • Клиент - аккаунт, из-под которого происходит заказ серверов в пул;
  • Шаблоны ОС - список шаблонов операционных систем, для которых будут создаваться сервера независимо от статистики;
  • Макс. время в пуле - максимальное время нахождения сервера в пуле, в месяцах; по достижении данного времени сервера автоматически удаляются;
  • Вычислять статистику за - период в днях, за который вычисляется статистика заказанных серверов. На основе статистики вычисляется количество серверов, создаваемых в пул;
  • Заказано за период (0 < VDS <= 3) - количество серверов, создаваемых в пул, если по статистике за указанный период клиентами было куплено от 1 до 3 виртуальных серверов;
  • Заказано за период (3 < VDS <= 6) - количество серверов, создаваемых в пул, если по статистике за указанный период клиентами было куплено от 4 до 6 виртуальных серверов;
  • Заказано за период (6 < VDS <= 10) - количество серверов, создаваемых в пул, если по статистике за указанный период клиентами было куплено от 7 до 10 виртуальных серверов;
  • Заказано за период (10 < VDS <= 15) - количество серверов, создаваемых в пул, если по статистике за указанный период клиентами было куплено от 11 до 15 виртуальных серверов;
  • Заказано за период (VDS > 15) - количество серверов, создаваемых в пул, если по статистике за указанный период клиентами было куплено более 15 виртуальных серверов.


Принцип работы пула серверов

Для пула в кроне создается задание:

*/3 * * * *	/usr/local/mgr5/sbin/mgrctl -m billmgr itempool.process.cron

При работе функции itempool.process.cron выполняются следующие операции:

  1. вычисляется статистика в соответствии с заданными настройками
  2. происходит создание серверов в пул
  3. выполняется удаление старых серверов

Статистика хранится в БД в таблице itempoolstat. Расчет статистики немного отличается в зависимости от используемой версии VMmanager:

  • для VMmanager KVM учитываются операционная система и тарифный план
  • для VMmanager OVZ учитываются только операционная система

При создании серверов в пул для VMmanager OVZ тарифный план выбирается автоматически - берется первый тарифный план, подключенный к обработчику, в соответствии с приоритетом (поле "Сортировка" в списке тарифных планов - чем меньше значение, тем выше приоритет).

При создании серверов в пул действует ограничение в одну операцию на одном обработчике в один момент времени. Такое же ограничение действует при удалении старых невостребованных серверов.

Выдача серверов из пула

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

Для каждого сервера выполняется:

  • копирование параметров и IP-адресов от услуги в пуле к услуге, заказанной клиентом
  • удаление из БД информации об услуге в пуле
  • смена доменного имени сервера
  • для VMmanager KVM, в случае если операционная система - не Windows, происходит выполнение скрипта по смене hostname (по ssh)
  • если при заказе клиент выбрал рецепт - происходит его запуск
  • запускается операция setparam для применения текущих параметров

Если подходящего сервера не было найдено, либо все попытки выдачи из пула завершились неудачей - запускается стандартный процесс создания виртуального сервера.

При отключении опции "Использовать пул" в настройках обработчика, уже созданные в пул виртуальные серверы не удаляются, а выдаются при обработке заказов клиентов пока не кончатся, либо пока не устареют и удалятся по крону.