Принципы работы ISPmanager 5 Business

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

Введение

ISPmanager 5 Business является продуктом, предназначенным для автоматизации shared-хостинга, и призван связать в едином программном комплексе механизмы управления множеством серверов.

Определим базовые принципы функционирования продукта:

  • Единая панель управления осуществляет работу со многими серверами ("многосерверная конфигурация")
  • На всех серверах должна быть установлена одна и та же операционная система ("гомогенность программной среды")
  • Для каждого сервера определяется набор ролей, которые данный сервер выполняет в составе shared-хостинга ("разделение специфики использования сервера")
  • Состав программного обеспечения, используемого на сервере, специфичен для каждой роли сервера ("разделение специфики использования ПО")
  • Программное обеспечение, входящее в состав каждой роли, гомогенно для всего пространства серверов, управляемых ISPmanager 5 Business ("гомогенность программной среды")
  • Пространство имён пользователей системы, а также их идентификаторов является единым для всего пространства серверов, управляемых ISPmanager 5 Business ("единое пространство имён и идентификаторов пользователей")
  • Минимальной неделимой единицей информации во всей системе в разрезе работы с пользователями являются все данные одного пользователя, входящие в состав одной роли. Все данные, создаваемые в рамках одной роли, находятся для одного конкретного пользователя только на одном сервере ("неделимость данных в составе роли пользователя")
  • Административные настройки, применяемые на каждом сервере, едины на всём пространстве серверов ("гомогенность административных настроек серверов")
  • Сервер, на котором установлен ISPmanager 5 Business не должен обязательно сам входить в состав серверов shared-хостинга и выполнять функции какой-либо роли (исключение составляет вариант автоматизации хостинга на базе ОС CloudLinux)

Ниже подробнее описаны приведённые здесь принципы.

Многосерверная конфигурация

ISPmanager 5 Business предназначен для управления множеством серверов.

Количество серверов, которое возможно включить в состав ISPmanager 5 Business, не ограничено. Для работы с каждым конкретным сервером при включении его в состав серверов, на нём определяется операционная система, подключаются необходимые репозитории, производится установка необходимого программного обеспечения. Для удалённого управления на каждый сервер устанавливается специальная панель управления - ISPmanager 5 Node. Большинство операций, выполняемых над сервером, производится через эту панель.

Реализация подробнее описана в статье "Основы реализации многосерверной конфигурации ISPmanager 5 Business"

Роли и гомогенность программной среды

Каждый сервер в составе shared-хостинга выполняет определённые функции. Для выполнения этих функций требуется, чтобы на сервере было установлено определённое программное обеспечение. Это программное обеспечение должно быть соответствующим образом настроено, а при использовании сервера - конфигурироваться определённым образом в соответствии с потребностями хостинга. Функциональные особенности работы в совокупности с набором программного обеспечения и методами его конфигурирования мы выделили в отдельное понятие - роль сервера.

В таблице приведено описание ролей, определённых в ISPmanager 5 Business:

Имя роли Описание Программное обеспечение Пакеты
Основная роль (Web-сервер) Данная роль является основной ролью, выполняемой сервером, а также является основной ролью для пользователей. Она объединяет в себе работу с Web-сервером, FTP-сервером Nginx, Apache ITK/Apache Prefork, PHP-FPM, PHP, Quota, Awstats, Webalizer, ProFTPD, phpMyAdmin, архиваторы ispmanager-pkg-nginx, ispmanager-pkg-httpd-itk*, ispmanager-pkg-phpfpm, ispmanager-pkg-php, ispmanager-pkg-quota, ispmanager-pkg-awstats, ispmanager-pkg-webalizer, ispmanager-pkg-proftpd, ispmanager-pkg-myadmin, zip, ispmanager-pkg-logrotate
Основной сервер имён (NS1) Сервер с данной ролью выполняет работу основного сервера имён на всём пространстве серверов ISPmanager 5 Business. Только одному серверу может быть назначена данная роль DNS-сервер PowerDNS ispmanager-pkg-pdns, ispmanager-pkg-logrotate
Вторичный сервер имён (NSn) Сервер с данной ролью выполняет работу вторичного сервера имён, обслуживая DNS-запросы и синхронизируя данные с основным сервером имён DNS-сервер PowerDNS ispmanager-pkg-pdns, ispmanager-pkg-logrotate
Почтовый сервер (Email) Сервер выполняет работу MTA, а также POP3, IMAP-сервера, обслуживает почтовые домены и ящики пользователей, а также предоставляет Web-интерфейс почтового клиента Exim, Dovecot, Postgrey, OpenDKIM, Spamassassin, Sieve, Roundcube, ClamAV, MySQL, Nginx, Apache ITK, PHP-FPM, PHP, Quota ispmanager-pkg-exim, ispmanager-pkg-dovecot, ispmanager-pkg-greylisting-exim, ispmanager-pkg-opendkim-exim, ispmanager-pkg-spamassassin-exim, ispmanager-pkg-sieve, ispmanager-pkg-roundcube, ispmanager-pkg-clamav-exim, ispmanager-pkg-mysql, ispmanager-pkg-nginx, ispmanager-pkg-httpd-itk*, ispmanager-pkg-phpfpm, ispmanager-pkg-php, ispmanager-pkg-quota, ispmanager-pkg-logrotate
Сервер СУБД MySQL (MySQL-сервер) Сервер с данной ролью выполняет работу с базами данных СУБД MySQL СУБД MySQL ispmanager-pkg-mysql, ispmanager-pkg-logrotate
Сервер СУБД PostgreSQL (PostgreSQL-сервер) Сервер с данной ролью выполняет работу с базами данных СУБД PostgreSQL СУБД PostgerSQL ispmanager-pkg-postgresql, ispmanager-pkg-logrotate
Сервер обработки резервного копирования (Backup-сервер) Сервер с данной ролью выполняет работу по созданию резервных копий. Технические подробности работы резервного копирования ISPmanager

* Для ОС CloudLinux вместо пакета ispmanager-pkg-httpd-itk устанавливается ispmanager-pkg-httpd-itk-cl. Также для всех узлов кластера в ОС CloudLinux не зависимо от роли устанавливается пакет ispmanager-pkg-cl.

Любая роль, кроме роли основного сервера имён, может быть назначена любому серверу, любому количеству серверов.

При назначении роли любому серверу, на него будет установлено соответствующее данной роли ПО. Вкупе с требованием одинаковой операционной системы на каждом сервере, это обеспечивает гомогенность программной среды для каждой роли сервера на всём пространстве серверов.

Определяя для каждого сервера состав выполняемых ролей, администратор определяет специфику использования каждого сервера.

Работа с пользователями

Рассмотрим работу с пользователями ISPmanager 5 Business на примере основных операций, выполняемых над пользователями. Как было описано выше, на всем пространстве серверов определяется единое пространство имён пользователей, а также идентификаторов пользователей (UID, GID).


Создание пользователя

Создание пользователя начинается с выбора идентификатора пользователя. Идентификатор пользователя (принимается, что UID и GID по умолчанию равны) выбирается из базы данных свободных идентификаторов.

Затем для реального создания пользователя на сервере выбирается наименее нагруженный сервер с основной ролью (Web-сервер). На выбранном сервере создаётся учётная запись пользователя в операционной системе, после чего считается, что пользователь успешно создан.

Размер пространства идентификаторов, а также методика определения наименее нагруженного сервера определяются настройками политики.

Местом расположения пользователя принимается сервер, на котором расположены данные основной роли (Web-сервера), на этом сервере также будут расположены все реальные файлы пользователя, на этот сервер пользователем будет осуществляться доступ по FTP, а также по SSH. Поэтому выбор сервера с основной ролью происходит сразу при создании пользователя.

Выбор серверов для ролей пользователя

Выбор серверов для пользовательских данных ролей, отличных от основной роли, происходит только по мере необходимости. Фактически, это происходит при попытке создать сущность, относящуюся к такой роли. В этот момент по правилам, заданным в политиках, для пользователя определяется наименее нагруженный сервер, который имеет роль, соответствующую создаваемой сущности. После этого, пользователь физически создаётся на выбранном сервере, если он до этого не был на нём создан, а только затем создаётся сущность.

При выборе наименее нагруженного сервера всегда соблюдается одно правило: если сервер, на котором располагается пользователь (расположены данные основной роли), имеет необходимую роль, то именно этот сервер всегда будет выбран и для данных других ролей пользователя.

Пример 1. Пользователь создан на сервере, имеющем все роли. При попытке создать, например, базу данных MySQL, именно этот же сервер будет выбран для создания баз данных MySQL этого пользователя (роль MySQL-сервера), и именно на нём будут создаваться базы данных.

Пример 2. Пользователь создан на сервере, имеющем только основную роль. При попытке создать базу данных MySQL из состава серверов будет выбран наименее нагруженный сервер для создания баз данных MySQL этого пользователя (роль MySQL-сервера), и базы данных будут создаваться уже на другом сервере.

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

Если выбран сервер для данных пользователя определённой роли, то все данные пользователя, соответствующие данной роль, будут создаваться или обрабатываться именно на этом сервере, данные в составе одной роли для данного пользователя неделимы в разрезе серверов.

Соответственно, возможны различные сценарии использования серверов в составе shared-хостинга. Например, каждый сервер имеет все роли, тогда пользователь всегда будет иметь все свои данные именно на этом сервере. Или сценарий выделенного почтового сервера, при котором имеется отдельный сервер (или несколько), занимающихся только обслуживанием почты. Может быть реализован сценарий выделенного сервера баз данных, когда один или несколько серверов имеют роль только MySQL-сервера, или MySQL- и PostgreSQL-сервера. Также возможны различные комбинации приведенных примеров сценариев.

Редактирование пользователей

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

Удаление пользователей

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

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

Административные настройки

На всём пространстве серверов, включенных в состав ISPmanager 5 Business, соблюдается принцип гомогенности административных настроек серверов.

Административные настройки общего типа - Планировщик администратора, брандмауэр и т.п. применяются сразу же на всех серверах.

Административные настройки, соответствующие определённой роли - Черный список, белый список для роли "почтового сервера", например, применяются сразу же на всех серверах, имеющих необходимую роль.

Для всех подобных списков данных имеются механизмы автоматической синхронизации данных сервера с ISPmanager 5 Business. Данные механизмы используются, если, например, сервер при применении настроек был недоступен.

Сервер, на котором установлен ISPmanager 5 Business не должен обязательно входить в список серверов и выполнять какие-либо роли. Но если вы желаете, чтобы на него распространялись административные настройки, а также была доступна разнообразная информация (состояние служб, сетевых служб и т.п.) и менеджер файлов, вы можете добавить его в список серверов, не назначая ему ни одну роль.