Пул серверов — это управляемая группа узлов BitrixEnv с распределёнными ролями (веб, база, кэш, push, поиск). Пул превращает разрозненные машины в единый кластер, которым вы управляете из одного меню на master-узле.
Зачем нужен пул серверов
Пока проект живёт на одной машине, роли web, MySQL и memcached совмещены. Как только нагрузка растёт, компоненты разносят по отдельным серверам — и здесь нужен пул как механизм централизованного управления.
- Масштабирование: добавляете веб-ноды под рост трафика без переустановки.
- Отказоустойчивость: репликация MySQL master → slave, несколько веб-узлов за балансировщиком.
- Единое управление: роли, конфиги и обновления раскатываются с master-узла на все хосты.
Роли узлов в пуле
Каждый узел пула несёт одну или несколько ролей. Master-узел (роль управления) хранит конфигурацию и раскатывает её на остальные через Ansible и SSH.
| Роль | Что делает узел |
|---|---|
| mgmt (management) | master: управление пулом, точка запуска меню |
| web | nginx + php-fpm, обработка запросов сайта |
| mysql | сервер БД, master или slave репликации |
| memcached | распределённый кэш данных |
| push | websocket-сервер уведомлений и RTC |
| sphinx | полнотекстовый поиск |
На малых инсталляциях все роли живут на одном хосте. По мере роста их «размазывают» по отдельным серверам, не меняя логику управления.
Создание пула на master-узле
Пул создаётся на будущем master-узле через меню. До создания в меню доступен пункт вида Create Management pool of servers.
- Убедитесь, что задан корректный
hostname— он станет именем узла в пуле и его сложно менять потом. - Запустите
/root/menu.shи выберите создание пула. - Окружение сгенерирует SSH-ключи и настроит роль управления на текущем хосте.
bx-node1) заранее. Переименование master-узла после создания пула — болезненная операция, ломающая ссылки в конфигурации.Добавление серверов в пул
Новые узлы добавляются с master-узла. Требования к добавляемой машине: та же линейка ОС, установленный BitrixEnv, сетевая доступность и открытый SSH.
- В меню выберите управление серверами пула → добавить сервер.
- Укажите IP или hostname нового узла и пароль root (для первичного обмена ключами).
- Master скопирует SSH-ключ и через Ansible настроит узел, включив его в пул.
После добавления узел появляется в списке пула со статусом. Дальнейшее взаимодействие идёт по ключам — пароль больше не требуется.
Распределение ролей по узлам
Когда узлы в пуле, роли назначают через соответствующие разделы меню. Типовая схема разнесения для нагруженного магазина:
- Узел 1 (mgmt + web): управление и обработка запросов;
- Узел 2 (web): дополнительная веб-нода за балансировщиком;
- Узел 3 (mysql master): основная база;
- Узел 4 (mysql slave): реплика для чтения и отказоустойчивости;
- memcached — на отдельном узле или распределённо на веб-нодах.
Настройка репликации MySQL выполняется из раздела конфигурации БД: назначаете master и slave, окружение само настраивает bin-log и подключение реплики.
Проверка состояния пула
Состояние узлов и ролей видно в меню и в служебных утилитах. Проверяйте после каждого изменения топологии.
- список узлов и ролей — в разделе управления пулом;
- связность по SSH —
ssh bx-node2 hostnameдолжно отработать без пароля; - репликация — статус slave в разделе MySQL (задержка, ошибки);
- службы на узле —
systemctl status nginx php-fpm mysqld memcached.
В админке продукта корректность кластера отражает раздел Настройки → Веб-кластер: там видно веб-ноды, memcached и статус репликации базы.
Эксплуатация и подводные камни
Кластер требует дисциплины. Частые проблемы и как их избегать:
- Рассинхрон времени. Настройте NTP на всех узлах — иначе репликация и логи «поедут».
- Firewall между узлами. Порты MySQL (3306), memcached (11211), push и SSH должны быть открыты внутри пула, но закрыты наружу.
- Ручные правки конфигов. Меню перезапишет их на всех узлах — вносите изменения централизованно.
- Единая точка отказа. Один master mgmt — это нормально, но бэкап его конфигурации обязателен.
Итог
Создание пула — это назначение master-узла, добавление серверов по SSH и распределение ролей web, MySQL, memcached и push через меню. Пул даёт масштабирование и отказоустойчивость при едином управлении с одной точки.
Проектирование кластера под конкретную нагрузку, настройка репликации, балансировки и мониторинга — наша профильная задача. В B2Bsite мы строим отказоустойчивые инсталляции 1С-Битрикс и сопровождаем их, чтобы рост трафика не превращался в аварию.
Частые вопросы
Нужен ли пул, если у меня один сервер?
Формально нет, но создать пул стоит заранее: добавить узлы в готовый пул проще, чем перестраивать конфигурацию одиночного сервера под кластер позже.
Что такое master-узел пула?
Это узел с ролью управления (mgmt): он хранит конфигурацию, запускает меню и раскатывает настройки на остальные узлы по SSH через Ansible.
Какие требования к добавляемому серверу?
Та же линейка ОС, установленный BitrixEnv, сетевая доступность и открытый SSH. Первичное подключение идёт по паролю root, дальше — по ключам.
Можно ли держать узлы пула в разных дата-центрах?
Не рекомендуется. Репликация MySQL и memcached чувствительны к задержкам сети, поэтому узлы лучше держать в одном ЦОД или сегменте.
Как настроить репликацию базы данных?
Через раздел конфигурации MySQL в меню: назначаете узлам роли master и slave, окружение само включит бинлоги и подключит реплику.
Заменяет ли slave-реплика резервное копирование?
Нет. Реплика повторяет и ошибочные операции, включая случайное удаление данных. Регламентные бэкапы обязательны отдельно.
Почему важно задать hostname до создания пула?
Имя хоста становится именем узла в пуле. Переименование master-узла после создания пула ломает ссылки в конфигурации и выполняется тяжело.
Поможем с настройкой и поддержкой Для разработчиков
Поможем с настройкой, доработкой и поддержкой Для разработчиков.