Кластер серверов 1С:Предприятия 8.3 из нескольких машин: сборка и настройка

· 10 мин

Содержание

Кластер 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С не входит

Что подготовить до установки

Большинство проблем с кластером возникает не в консоли, а в сети и окружении. Проверьте до установки:

  1. Одинаковая сборка платформы. На всех серверах кластера должна стоять одна и та же версия до последней цифры, например 8.3.24.1691 везде. Разные сборки в одном кластере не работают.
  2. Разрешение имён. Кластер отдаёт клиенту имя рабочего сервера, а не IP. Если клиент не может разрешить это имя, подключение падает. Нужна запись в DNS или строка в hosts на каждом сервере и клиенте.
  3. Порты в брандмауэре. 1540, 1541, диапазон 1560–1591, 1545 для RAS. Если диапазон портов на рабочем сервере изменили, открывают новый.
  4. Учётная запись службы. На Windows установщик предлагает пользователя USR1CV8. Ему нужны права на каталог srvinfo и вход в систему как служба.
  5. Лицензии. Лицензия сервера 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С как службу. Отдельный кластер там не нужен: машина войдёт в существующий.

Дальше в консоли центрального сервера:

  1. Откройте Кластеры → <ваш кластер> → Рабочие серверы.
  2. Через контекстное меню выберите Создать → Рабочий сервер.
  3. Укажите имя компьютера (то, что разрешается в DNS), IP-порт агента 1540 и диапазон портов 1560:1591.
  4. Если сервер должен страховать кластер, включите флаг «Центральный сервер».
  5. Сохраните. Через несколько секунд на новом сервере появятся процессы rmngr и rphost.

Параметры рабочего сервера

Эти настройки задаются в свойствах каждого рабочего сервера, а не кластера целиком:

ПараметрЗачем менять
Количество ИБ на процесс1 — каждая база в своём процессе, изоляция ценой памяти
Количество соединений на процессСколько сеансов держит один rphost до запуска нового
Максимальный объём памяти рабочих процессовПотолок для всех rphost этого сервера
Безопасный расход памяти за один вызовЗащита от одного «тяжёлого» запроса, съедающего всю память
Менеджер под каждый сервисВыносит сервисы кластера в отдельные процессы rmngr
Диапазоны IP-портовЕсли стандартный диапазон занят или закрыт
Требования назначения функциональностиКакие базы и сервисы этот сервер обслуживает

Добавление сервера в рабочее время безопасно, а вот изменение диапазона портов или удаление сервера из кластера оборвёт сеансы на его процессах. Делайте это вне рабочих часов и предупредите пользователей.

Строка подключения с резервом

Если центральных серверов несколько, перечислите их в параметре «Кластер серверов» при добавлении базы в список: srv1c-01,srv1c-02. Клиент обратится ко второму, если первый недоступен.

Как кластер распределяет нагрузку и сеансы

Новый сеанс кластер отправляет на рабочий процесс с лучшей доступной производительностью. Её видно в консоли: ветка Рабочие процессы, колонка «Доступная производительность». Чем выше число, тем охотнее процесс принимает новые соединения.

В свойствах кластера задаются общие правила:

  • ⚖️ Режим распределения нагрузки — «Приоритет по производительности» или «Приоритет по памяти». Первый выгоднее при быстрых серверах, второй экономит ОЗУ, плотнее упаковывая сеансы.
  • 🛡 Уровень отказоустойчивости — сколько рабочих серверов может выйти из строя без остановки кластера. При значении 1 кластеру нужно минимум два центральных сервера.
  • 🔁 Интервал перезапуска — плановая замена рабочих процессов, лечит постепенную утечку памяти. Новые сеансы идут в свежий процесс, старые дорабатывают в прежнем.
  • 🧯 Допустимый объём памяти и интервал его превышения — процесс, который долго держит память сверх лимита, кластер помечает к выключению.

Закрепление баз за серверами (ТНФ)

Требования назначения функциональности позволяют сказать кластеру: «бухгалтерию обслуживай на сервере А, фоновые задания — на сервере Б». Настройка — в свойствах рабочего сервера, ветка Требования назначения функциональности.

Пример: вынести тяжёлую обработку регламентных заданий на отдельную машину.

  1. На сервере Б создайте требование: объект «Фоновое задание», тип требования «Назначать», значение — имя базы.
  2. На сервере А для того же объекта и базы поставьте «Не назначать».
  3. Нажмите в консоли команду применения требований: полностью или частично. Полное применение переносит работающие соединения и может прервать текущие вызовы, частичное действует только на новые.

Так же закрепляют клиентские соединения конкретной базы и сервис лицензирования.

Управление сеансами

Сеансы базы видны в Информационные базы → <база> → Сеансы. Оттуда же их удаляют. Для регламентных работ используйте блокировку начала сеансов в свойствах базы, а не массовое удаление: так пользователи увидят сообщение и время окончания работ.

Для скриптов есть rac через сервер администрирования:

rac localhost:1545 cluster list
rac localhost:1545 server list --cluster=<uuid-кластера>
rac localhost:1545 session list --cluster=<uuid-кластера> --licenses

Остальные команды смотрите в rac help.

Кластер готов к работе
Выполнено: 0 / 7

Диагностика неполадок и ускорение кластера

Диагностика: выберите симптом

Технологический журнал

Для поиска медленных запросов и утечек включают технологический журнал: файл logcfg.xml в каталоге conf платформы. Начните с событий длительнее 1 секунды и с исключений, иначе журнал за час займёт десятки гигабайт. После разбора проблемы журнал отключите.

Что реально ускоряет кластер

  • 🚀 Вынести СУБД на отдельную машину с быстрыми дисками. Узкое место кластера чаще база данных, а не rphost.
  • 🧩 Поставить «Количество ИБ на процесс» = 1 для крупных баз, чтобы одна база не тормозила другие.
  • 📉 Убрать фоновые задания и обмены с серверов, где работают пользователи, через ТНФ.
  • 🔌 Держать серверы 1С и СУБД в одной быстрой сети: задержка между ними сильнее влияет на скорость, чем частота процессора.
  • 🧹 Периодически чистить сеансовые данные: останавливают службу 1С вне рабочего времени (все сеансы будут завершены) и удаляют каталоги snccntx* внутри каталога кластера в srvinfo. Перед удалением сохраните копию каталога.

Вопросы, которые задают перед сборкой кластера

Можно ли сделать кластер 1С на одном сервере?
Да. Один рабочий сервер с одним кластером — самый частый вариант. Кластер из нескольких машин нужен для роста нагрузки и отказоустойчивости.
Можно ли смешивать в кластере серверы на Windows и Linux?
Платформа допускает рабочие серверы под разными ОС в одном кластере, но сборка 1С на них должна совпадать. На практике проще держать однородный кластер: меньше расхождений в путях и правах.
Нужно ли лицензировать каждый сервер кластера?
Лицензия сервера нужна на каждый рабочий сервер, где запускаются рабочие процессы. Клиентские лицензии общие для кластера и выдаются через сервис лицензирования.
Где хранятся данные, если сервер кластера выйдет из строя?
Данные баз — в СУБД, кластер 1С их не хранит. При потере рабочего сервера сеансы на нём оборвутся, но база не пострадает. Реестр кластера сохранится, если есть второй центральный сервер.
Как обновить платформу в кластере из нескольких серверов?
Только на всех серверах сразу и в одно окно обслуживания: остановить службы, установить новую сборку, зарегистрировать службу новой версии, запустить. Разные сборки в одном кластере работать не будут.