Кластер серверов 1С:Предприятия 8.3 из нескольких машин: сборка и настройка
Содержание
Кластер 1С создаётся сам при установке сервера 1С:Предприятия как службы: на центральной машине появляется «Локальный кластер» на порту 1541. Чтобы сделать из него кластер серверов
в полном смысле, на вторую машину ставят ту же сборку платформы, запускают там агент сервера и добавляют её в консоли администрирования: Кластеры → Локальный кластер → Рабочие серверы → Создать.
Вариантов два. Один сервер с кластером — стандартный режим для 20–60 пользователей, там «настройка кластера» сводится к лимитам памяти и числу процессов. Несколько рабочих серверов нужны, когда одна машина не тянет нагрузку или нужна отказоустойчивость. Первые шаги у них общие, отличия начинаются с добавления второго рабочего сервера.
Из чего состоит кластер серверов 1С
Кластер — это логическая группа рабочих серверов, которые обслуживают одни и те же информационные базы. Данные баз лежат в СУБД (MS SQL Server, PostgreSQL), а кластер 1С выполняет код, держит сеансы и раздаёт нагрузку.
На каждом сервере работают процессы:
- 🧭 ragent — агент сервера, порт 1540. К нему первым обращаются клиент и консоль администрирования.
- 📒 rmngr — менеджер кластера, порт 1541. Хранит реестр кластера: список баз, рабочих серверов, параметры.
- ⚙️ rphost — рабочие процессы. Именно в них выполняется код конфигурации. Порты берутся из диапазона, по умолчанию 1560–1591.
- 🛠 ras — сервер администрирования, порт 1545. Нужен для утилиты
racи сторонних консолей, ставится отдельно.
Порядок подключения клиента: агент (1540) → менеджер кластера (1541) → назначенный рабочий процесс из диапазона портов. Отсюда главное правило сети: все эти порты должны быть открыты между серверами кластера и от клиентов к серверам.
Центральный и рабочий сервер
Рабочий сервер с флагом «Центральный сервер» хранит копию реестра кластера и может принимать подключения клиентов. Обычный рабочий сервер только запускает рабочие процессы. В 8.3 центральных серверов может быть несколько: если один упадёт, кластер продолжит работать на оставшихся.
| Роль | Что делает | Сколько нужно |
|---|---|---|
| Центральный сервер | Реестр кластера, приём подключений, рабочие процессы | 1, для отказоустойчивости — 2 и больше |
| Рабочий сервер | Только рабочие процессы и сервисы | Сколько требует нагрузка |
| Сервер СУБД | Хранит данные баз | Отдельная машина, в кластер 1С не входит |
Что подготовить до установки
Большинство проблем с кластером возникает не в консоли, а в сети и окружении. Проверьте до установки:
- Одинаковая сборка платформы. На всех серверах кластера должна стоять одна и та же версия до последней цифры, например 8.3.24.1691 везде. Разные сборки в одном кластере не работают.
- Разрешение имён. Кластер отдаёт клиенту имя рабочего сервера, а не IP. Если клиент не может разрешить это имя, подключение падает. Нужна запись в DNS или строка в
hostsна каждом сервере и клиенте. - Порты в брандмауэре. 1540, 1541, диапазон 1560–1591, 1545 для RAS. Если диапазон портов на рабочем сервере изменили, открывают новый.
- Учётная запись службы. На Windows установщик предлагает пользователя
USR1CV8. Ему нужны права на каталогsrvinfoи вход в систему как служба. - Лицензии. Лицензия сервера 1С нужна на каждый рабочий сервер, где запускаются рабочие процессы. Клиентские лицензии выдаёт сервис лицензирования кластера.
Часть механизмов масштабирования — требования назначения функциональности, уровень отказоустойчивости — рассчитана на серверную лицензию КОРП. В редакции ПРОФ возможности кластера ограничены, поэтому перед закупкой второго сервера сверьте редакцию с задачами.
Ориентиры по железу
Точных норм фирма 1С не даёт, нагрузка зависит от конфигурации и сценариев. Как отправная точка:
| Нагрузка | Рабочий сервер 1С | Примечание |
|---|---|---|
| До 30 пользователей | 4–8 ядер, 16 ГБ ОЗУ | Хватает одного сервера |
| 30–100 пользователей | 8–16 ядер, 32–64 ГБ ОЗУ | Один мощный сервер или два средних |
| Свыше 100 | Несколько рабочих серверов | Кластер с балансировкой |
Частота ядра для 1С важнее их числа: один вызов сервера выполняется в одном потоке.
Установка сервера 1С и настройка центрального узла
Windows
Запустите установщик платформы и отметьте компоненты «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия». На шаге установки сервера включите вариант установки как сервиса Windows и укажите пользователя службы.
После установки служба запускается сама и создаёт кластер по умолчанию. Если службу нужно зарегистрировать вручную, например с другим каталогом данных или портами, это делается через сам ragent.exe:
cd "C:\Program Files\1cv8\8.3.24.1691\bin"
ragent.exe -instsrvc -port 1540 -regport 1541 -range 1560:1591 -d "D:\srvinfo" -usr .\USR1CV8 -pwd "Пароль"
ragent.exe -start
Здесь -port — порт агента, -regport — порт менеджера кластера, -range — диапазон рабочих процессов, -d — каталог реестра кластера.
Linux
В свежих версиях 8.3 сервер ставится единым установщиком setup-full-<версия>-x86_64.run с выбором компонента сервера. Служба работает под systemd. Перед запуском проверьте, что имя машины разрешается в её реальный IP, а не в 127.0.1.1: это частая причина того, что клиенты не видят кластер.
Консоль администрирования
На Windows консоль — это оснастка MMC «Администрирование серверов 1С Предприятия». Если она не открывается или пишет об ошибке компонента, перерегистрируйте radmin.dll той же версии, что и сервер:
regsvr32 "C:\Program Files\1cv8\8.3.24.1691\bin\radmin.dll"
В консоли добавьте центральный сервер (Действие → Создать → Центральный сервер 1С:Предприятия, имя машины, порт 1540). Раскройте Кластеры и сразу назначьте администратора кластера в ветке Администраторы. Без этого управлять кластером может любой, кто дотянулся до порта.
Запишите пароль администратора кластера в хранилище паролей. Если он потерян, кластер придётся восстанавливать из резервной копии каталога srvinfo с остановкой службы, а это обрыв всех сеансов.
Подключение рабочих серверов к кластеру
На второй машине поставьте ту же сборку сервера 1С как службу. Отдельный кластер там не нужен: машина войдёт в существующий.
Дальше в консоли центрального сервера:
- Откройте
Кластеры → <ваш кластер> → Рабочие серверы. - Через контекстное меню выберите
Создать → Рабочий сервер. - Укажите имя компьютера (то, что разрешается в DNS), IP-порт агента 1540 и диапазон портов 1560:1591.
- Если сервер должен страховать кластер, включите флаг «Центральный сервер».
- Сохраните. Через несколько секунд на новом сервере появятся процессы rmngr и rphost.
Параметры рабочего сервера
Эти настройки задаются в свойствах каждого рабочего сервера, а не кластера целиком:
| Параметр | Зачем менять |
|---|---|
| Количество ИБ на процесс | 1 — каждая база в своём процессе, изоляция ценой памяти |
| Количество соединений на процесс | Сколько сеансов держит один rphost до запуска нового |
| Максимальный объём памяти рабочих процессов | Потолок для всех rphost этого сервера |
| Безопасный расход памяти за один вызов | Защита от одного «тяжёлого» запроса, съедающего всю память |
| Менеджер под каждый сервис | Выносит сервисы кластера в отдельные процессы rmngr |
| Диапазоны IP-портов | Если стандартный диапазон занят или закрыт |
| Требования назначения функциональности | Какие базы и сервисы этот сервер обслуживает |
Добавление сервера в рабочее время безопасно, а вот изменение диапазона портов или удаление сервера из кластера оборвёт сеансы на его процессах. Делайте это вне рабочих часов и предупредите пользователей.
Строка подключения с резервом
Если центральных серверов несколько, перечислите их в параметре «Кластер серверов» при добавлении базы в список: srv1c-01,srv1c-02. Клиент обратится ко второму, если первый недоступен.
Как кластер распределяет нагрузку и сеансы
Новый сеанс кластер отправляет на рабочий процесс с лучшей доступной производительностью. Её видно в консоли: ветка Рабочие процессы, колонка «Доступная производительность». Чем выше число, тем охотнее процесс принимает новые соединения.
В свойствах кластера задаются общие правила:
- ⚖️ Режим распределения нагрузки — «Приоритет по производительности» или «Приоритет по памяти». Первый выгоднее при быстрых серверах, второй экономит ОЗУ, плотнее упаковывая сеансы.
- 🛡 Уровень отказоустойчивости — сколько рабочих серверов может выйти из строя без остановки кластера. При значении 1 кластеру нужно минимум два центральных сервера.
- 🔁 Интервал перезапуска — плановая замена рабочих процессов, лечит постепенную утечку памяти. Новые сеансы идут в свежий процесс, старые дорабатывают в прежнем.
- 🧯 Допустимый объём памяти и интервал его превышения — процесс, который долго держит память сверх лимита, кластер помечает к выключению.
Закрепление баз за серверами (ТНФ)
Требования назначения функциональности позволяют сказать кластеру: «бухгалтерию обслуживай на сервере А, фоновые задания — на сервере Б». Настройка — в свойствах рабочего сервера, ветка Требования назначения функциональности.
Пример: вынести тяжёлую обработку регламентных заданий на отдельную машину.
- На сервере Б создайте требование: объект «Фоновое задание», тип требования «Назначать», значение — имя базы.
- На сервере А для того же объекта и базы поставьте «Не назначать».
- Нажмите в консоли команду применения требований: полностью или частично. Полное применение переносит работающие соединения и может прервать текущие вызовы, частичное действует только на новые.
Так же закрепляют клиентские соединения конкретной базы и сервис лицензирования.
Управление сеансами
Сеансы базы видны в Информационные базы → <база> → Сеансы. Оттуда же их удаляют. Для регламентных работ используйте блокировку начала сеансов в свойствах базы, а не массовое удаление: так пользователи увидят сообщение и время окончания работ.
Для скриптов есть rac через сервер администрирования:
rac localhost:1545 cluster list
rac localhost:1545 server list --cluster=<uuid-кластера>
rac localhost:1545 session list --cluster=<uuid-кластера> --licenses
Остальные команды смотрите в rac help.
Диагностика неполадок и ускорение кластера
Технологический журнал
Для поиска медленных запросов и утечек включают технологический журнал: файл logcfg.xml в каталоге conf платформы. Начните с событий длительнее 1 секунды и с исключений, иначе журнал за час займёт десятки гигабайт. После разбора проблемы журнал отключите.
Что реально ускоряет кластер
- 🚀 Вынести СУБД на отдельную машину с быстрыми дисками. Узкое место кластера чаще база данных, а не rphost.
- 🧩 Поставить «Количество ИБ на процесс» = 1 для крупных баз, чтобы одна база не тормозила другие.
- 📉 Убрать фоновые задания и обмены с серверов, где работают пользователи, через ТНФ.
- 🔌 Держать серверы 1С и СУБД в одной быстрой сети: задержка между ними сильнее влияет на скорость, чем частота процессора.
- 🧹 Периодически чистить сеансовые данные: останавливают службу 1С вне рабочего времени (все сеансы будут завершены) и удаляют каталоги
snccntx*внутри каталога кластера вsrvinfo. Перед удалением сохраните копию каталога.