Кластер серверов 1С:Предприятия от одной машины до балансировки нагрузки
Содержание
Кластер серверов
1С настраивают в консоли Администрирование серверов 1С Предприятия. Сначала ставят сервер 1С на центральную машину и запускают службу агента. Затем в консоли регистрируют информационные базы, а рабочие серверы добавляют в узел Рабочие серверы с портом агента 1540 и диапазоном портов 1560–1591. Балансировку и резервирование включают в свойствах кластера и рабочих серверов.
Многие считают, что кластер — это обязательно несколько физических серверов. Это не так. Любая установка сервера 1С:Предприятия 8.3 уже образует кластер, просто в нём один рабочий сервер. Поэтому настройка кластера серверов 1С начинается с одной машины. Второй и следующие серверы добавляют, когда одной перестаёт хватать или нужна отказоустойчивость.
Из чего состоит кластер серверов 1С и какие порты нужны
Кластер — это набор процессов, которые обслуживают сеансы пользователей и обращаются к СУБД. На каждой машине кластера работают свои процессы:
- 🧭 Агент сервера (
ragent) — точка входа. Хранит список кластеров на этой машине, к нему подключается консоль администрирования. Порт по умолчанию 1540. - 🗂 Менеджер кластера (
rmngr) — управляет кластером, хранит реестр баз, сеансов и блокировок. Порт по умолчанию 1541. - ⚙️ Рабочие процессы (
rphost) — выполняют серверный код конфигурации и запросы к базе. Берут порты из диапазона, по умолчанию 1560–1591. - 🛠 Сервер администрирования (
ras) — нужен для утилиты командной строкиrac. Порт по умолчанию 1545. В Windows его запускают отдельно, если он нужен.
Как идёт подключение: клиент обращается к агенту на порт 1540, агент направляет его к менеджеру кластера на 1541, а тот назначает рабочий процесс из диапазона. Если в брандмауэре открыт только 1540, клиент «видит» сервер, но не может начать сеанс.
| Порт | Кто слушает | Где открыть |
|---|---|---|
| 1540 | Агент сервера | На всех серверах кластера |
| 1541 | Менеджер кластера | На центральных серверах |
| 1560–1591 | Рабочие процессы | На всех рабочих серверах |
| 1545 | Сервер администрирования ras | Там, где запущен ras |
| 1433 / 5432 | MS SQL / PostgreSQL | На сервере СУБД, для серверов 1С |
Сервер бывает центральным и просто рабочим. Центральный хранит копию реестра кластера и может им управлять. Рабочий только выполняет рабочие процессы. Первый установленный сервер всегда центральный.
Что подготовить до установки сервера 1С
Большая часть проблем с кластером возникает не в консоли, а на этапе подготовки. Проверьте по списку до того, как запускать установщик.
Железо и ОС
- 🖥 ОС. Windows Server 2016 и новее или поддерживаемый 64-битный дистрибутив Linux. Ставьте 64-битный сервер 1С: 32-битный упирается в лимит памяти процесса.
- 🧠 Память. Рабочие процессы съедают много ОЗУ. Ориентир — от 8 ГБ на небольшую базу на 10–20 пользователей; при росте нагрузки память кончается раньше процессора.
- 💾 Диск. Каталог кластера
srvinfoдержите на SSD: там лежат реестр, журналы регистрации и сеансовые данные. - 🗄 СУБД. MS SQL Server или PostgreSQL ставят на отдельную машину или на ту же — для небольшой нагрузки это нормально.
Сеть и учётные записи
- Все серверы кластера и сервер СУБД должны находить друг друга по имени. Кластер хранит адреса серверов именами, а не IP. Нет DNS — пропишите имена в
hostsна каждой машине. - На всех серверах кластера — одна и та же версия платформы, до последней цифры сборки. Иначе рабочий сервер не подключится к центральному.
- Создайте служебную учётную запись для службы сервера. В Windows установщик предлагает пользователя
USR1CV8; в домене удобнее отдельная доменная учётка с правом входа в качестве службы. - Откройте порты из таблицы выше во входящих правилах брандмауэра.
- Исключите каталог
srvinfoи каталог временных файлов службы из проверки антивирусом в реальном времени.
Лицензии
Каждому серверу кластера нужна серверная лицензия, плюс клиентские лицензии по числу одновременных пользователей. Расширенные возможности — несколько рабочих серверов с балансировкой, требования назначения функциональности, резервирование — рассчитаны на серверную лицензию уровня КОРП; у ПРОФ они ограничены. Перед покупкой второго сервера уточните у партнёра, какой уровень нужен под вашу схему.
Установка центрального сервера кластера
В Windows
- Запустите
setup.exeиз дистрибутива технологической платформы. - В списке компонентов отметьте Сервер 1С:Предприятия 8 и Администрирование сервера 1С:Предприятия. Модули веб-сервера нужны, только если будете публиковать базы через IIS или Apache.
- Включите опцию установки сервера как сервиса Windows и укажите учётную запись службы.
- После установки проверьте в
services.msc, что служба «Агент сервера 1С:Предприятия 8.3» запущена и тип запуска — «Автоматически». - Зарегистрируйте библиотеку консоли от имени администратора — без этого оснастка не откроется или выдаст ошибку подключения:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Подставьте свой номер версии. Тот же шаг повторяют после каждого обновления платформы: консоль должна работать с той версией, которая стоит на сервере.
В Linux
Начиная с версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-8.3.xx.xxxx-x86_64.run. Запустите его от root и выберите компонент сервера; список ключей для установки без диалогов покажет запуск с параметром --help.
В новых версиях вместе с сервером ставится шаблон юнита systemd. Порядок такой:
systemctl link /opt/1cv8/x86_64/8.3.xx.xxxx/srv1cv8-8.3.xx.xxxx@.service
systemctl enable srv1cv8-8.3.xx.xxxx@default
systemctl start srv1cv8-8.3.xx.xxxx@default
systemctl status srv1cv8-8.3.xx.xxxx@default
Служба работает от пользователя usr1cv8, каталог кластера по умолчанию — в его домашней папке. Консоли для Linux нет: сервером управляют либо с Windows-машины через консоль, либо утилитой rac через ras:
/opt/1cv8/x86_64/8.3.xx.xxxx/ras cluster --daemon
/opt/1cv8/x86_64/8.3.xx.xxxx/rac cluster list
Остальные команды rac смотрите в справке rac help.
Первичная настройка в консоли
- Откройте оснастку
Администрирование серверов 1С Предприятия. - На узле
Central 1C:Enterprise 8.3 serversвыберитеСоздать → Центральный сервер 1С:Предприятия 8.3и укажите имя машины. - Раскройте сервер — кластер «Локальный кластер» уже создан автоматически.
- Сразу задайте администратора кластера (узел
Администраторывнутри кластера). Без этого любой, у кого есть сетевой доступ к порту 1540, может управлять кластером. - В узле
Информационные базысоздайте базу или зарегистрируйте существующую: имя в кластере, тип СУБД, сервер баз данных, имя базы и учётные данные СУБД.
Пароль администратора кластера запишите в хранилище паролей. Восстановить его штатно нельзя: придётся останавливать службу и возвращать файлы реестра кластера из резервной копии.
Как добавить рабочие серверы в кластер 1С
Второй сервер подключают так:
- На новой машине установите сервер 1С той же версии и запустите службу агента. Свой кластер на ней не создавайте и базы не регистрируйте.
- Убедитесь, что новая машина и центральный сервер разрешают имена друг друга и что порты 1540 и 1560–1591 открыты.
- В консоли на центральном сервере раскройте кластер и перейдите в узел
Рабочие серверы. - Выберите
Создать → Рабочий сервери заполните карточку:- Компьютер — сетевое имя новой машины;
- IP-порт — 1540;
- Диапазон IP-портов — 1560:1591;
- Порт главного менеджера кластера — 1541.
- Отметьте флаг Центральный сервер, если эта машина должна хранить копию реестра и подхватывать управление при отказе первой.
- Сохраните. Через несколько секунд на новом сервере появятся процессы
rmngrиrphost, а в консоли — его рабочие процессы.
Если в кластере один сервер помечен центральным, его отказ останавливает весь кластер, даже когда рабочие серверы живы. Для отказоустойчивости нужно минимум два центральных сервера.
Балансировка нагрузки и отказоустойчивость кластера
Распределение нагрузки
Кластер сам распределяет новые соединения между рабочими процессами разных серверов. На это влияют две группы настроек.
В свойствах кластера есть «Режим распределения нагрузки»: приоритет по производительности или по памяти. Первый ставят по умолчанию, второй — если серверы упираются в ОЗУ.
В свойствах рабочего сервера задают, сколько он берёт на себя:
| Параметр | Что делает | С чего начать |
|---|---|---|
| Количество ИБ на процесс | Сколько баз обслуживает один rphost | 0 (без ограничения) или 1, если базы тяжёлые |
| Количество соединений на процесс | Порог, после которого запускается новый процесс | Оставить по умолчанию, менять при перекосах |
| Максимальный объём памяти рабочих процессов | Общий потолок памяти процессов на сервере | Около 80% ОЗУ, если на машине нет СУБД |
| Безопасный расход памяти за один вызов | Обрывает вызов, который съел слишком много | Задать, если один отчёт «кладёт» сервер |
| Менеджер под каждый сервис | Выносит сервисы кластера в отдельные процессы | Включать на нагруженных кластерах |
Требования назначения функциональности
В свойствах рабочего сервера есть узел требований назначения функциональности. Через него можно, например, отправить все фоновые и регламентные задания на отдельный сервер, а пользовательские сеансы — на другие. Так тяжёлый ночной обмен не тормозит дневную работу.
Резервирование
В свойствах кластера задают уровень отказоустойчивости — сколько серверов может одновременно выйти из строя без остановки кластера. Значение 1 требует минимум двух центральных серверов. При отказе одного сеансы на нём прервутся, но пользователи смогут переподключиться к оставшимся.
Сервер СУБД в отказоустойчивость кластера 1С не входит. Его резервируют средствами самой СУБД: Always On для MS SQL, репликацией для PostgreSQL.
Оптимизация производительности кластера 1С
В свойствах кластера есть параметры, которые защищают от «распухших» процессов:
- 🔁 Интервал перезапуска — плановый перезапуск рабочих процессов, в секундах. Например, 86400 — раз в сутки. Старый процесс доживает, пока на нём есть сеансы, поэтому для пользователей перезапуск обычно незаметен.
- 📈 Допустимый объём памяти и интервал превышения — если процесс держится выше порога дольше интервала, кластер выводит его из работы и запускает новый.
- 🧹 Принудительно завершать проблемные процессы — снимает зависшие процессы. При этом сеансы на таком процессе оборвутся.
Что ещё реально ускоряет кластер:
- Держите СУБД и серверы 1С в одной быстрой сети с минимальной задержкой. Задержка между ними важнее пропускной способности.
- Ставьте в Windows схему электропитания «Высокая производительность»: энергосбережение заметно замедляет короткие вызовы.
- На сервере с PostgreSQL используйте сборку от фирмы 1С или Postgres Pro для 1С и настройте память СУБД под объём ОЗУ.
- Чистите сеансовые данные: если
srvinfoразросся до десятков гигабайт, ищите причину в журналах регистрации и сеансах-«долгожителях».
Опасные операции — изменение диапазона портов, отключение центрального сервера, ручной перезапуск службы — делайте вне рабочего времени. Перезапуск службы агента обрывает все сеансы пользователей на этом сервере: предупредите людей заранее.
Мониторинг и диагностика кластера
Что смотреть в консоли
- 👥 Сеансы — кто подключён, к какой базе, на каком рабочем процессе, сколько занято памяти и времени вызовов.
- 🔒 Блокировки — кто держит управляемые блокировки. Здесь видно, чей сеанс мешает остальным.
- ⚙️ Рабочие процессы — память каждого процесса, число соединений, доступная производительность. Если у одного процесса доступная производительность низкая, а соседи простаивают, нагрузку распределяет плохо.
Из командной строки то же самое можно получить через rac: например, rac session list с параметром --cluster выводит сеансы, а rac session list --licenses — выданные лицензии.
Технологический журнал
Когда консоли мало, включают технологический журнал. Его настраивают файлом logcfg.xml в каталоге conf платформы: в Windows это C:\Program Files\1cv8\conf\, в Linux — /opt/1cv8/conf/. Минимальная настройка для поиска исключений и взаимоблокировок:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_logs\tj" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="TDEADLOCK"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history — сколько часов хранить журнал. Включайте журнал адресно и на время: полный сбор всех событий за пару часов забивает диск и сам тормозит сервер.
Ошибки при настройке кластера и что с ними делать
Две ошибки встречаются у тех, кто расширяет кластер впервые:
- ❌ Один центральный сервер «для простоты». Кластер из трёх рабочих серверов с одним центральным падает целиком при отказе одной машины.
- ❌ Пустой список администраторов кластера. Кластер без пароля доступен всем, кто подключится к порту 1540, включая удаление баз из реестра.