Из каких частей собран кластер серверов 1С:Предприятия 8.3

· 11 мин

Содержание

Кластер серверов 1С состоит из трёх типов процессов и одной внешней системы: агента сервера ragent, менеджера кластера rmngr, рабочих процессов rphost и сервера СУБД, где лежат сами данные. Агент слушает порт 1540, менеджер — 1541, рабочие процессы берут порты из диапазона, по умолчанию 1560–1591. Всё остальное — сервисы внутри менеджера, лицензии, профили безопасности, консоль — надстройка над этими частями.

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

Описание относится к платформе 8.3 (сборки 8.3.2x) на Windows Server 2016 и новее; на Linux состав тот же, отличаются только имена служб и каталоги.

Общая схема: сервер, кластер, рабочий сервер

Сначала про термины, их часто путают.

  • 🖥️ Сервер 1С (рабочий сервер) — физическая или виртуальная машина, где установлен и запущен агент ragent.
  • 🧩 Кластер — логическое объединение одного или нескольких рабочих серверов, которые вместе обслуживают набор информационных баз.
  • ⭐ Центральный сервер — рабочий сервер, который хранит реестр кластера и на котором работает главный менеджер кластера.
  • 🗄️ Сервер СУБД — отдельная служба (MS SQL Server, PostgreSQL, IBM Db2, Oracle Database). Формально в кластер 1С не входит, но без него клиент-серверная база не работает .

На небольшом предприятии всё это часто живёт на одной машине: агент, менеджер, два-три rphost и PostgreSQL рядом. В крупной инсталляции — два-три рабочих сервера 1С и выделенный сервер СУБД.

КомпонентПроцессПорт по умолчаниюЧто делает
Агент сервераragent1540Запускает менеджеры и рабочие процессы, хранит список кластеров, принимает первое подключение клиента
Менеджер кластераrmngr1541Координирует кластер: сеансы, блокировки, лицензии, распределение нагрузки
Рабочий процессrphost1560–1591Выполняет серверный код конфигурации и запросы к СУБД
Сервер администрированияras1545Даёт доступ к кластеру утилите rac и сторонним консолям
СУБДsqlservr, postgres и др.1433, 5432 и др.Хранит таблицы информационных баз

Центральный сервер: агент и менеджер кластера

Агент сервера ragent

Агент — точка входа. В Windows это служба «Агент сервера 1С:Предприятия 8.3» (для 64-разрядной версии — с пометкой x86-64). Клиент, у которого в строке подключения указано Srvr="srv-1c";Ref="buh";, стучится сначала на порт 1540 этого сервера.

Агент делает три вещи:

  1. Хранит реестр кластеров, которые работают на этой машине, и список администраторов центрального сервера.
  2. Запускает процессы rmngr и rphost и перезапускает их при падении.
  3. Сообщает клиенту, к какому менеджеру кластера идти дальше.

Служебные файлы лежат в каталоге srvinfo. В Windows по умолчанию это C:\Program Files\1cv8\srvinfo, но путь задаётся при установке и в параметрах службы (ключ -d). Внутри — файл реестра агента 1cv8wsrv.lst и папка кластера reg_1541 с файлом 1CV8Clst.lst, где записаны информационные базы, рабочие серверы и администраторы кластера.

Копируйте каталог srvinfo в резервную копию. Если файл реестра кластера повреждён или потерян, все зарегистрированные базы пропадут из консоли, и восстанавливать их придётся вручную.

Менеджер кластера rmngr

Менеджер слушает порт 1541 (номер порта кластера). Он ведёт учёт сеансов и соединений, распределяет клиентов по рабочим процессам и держит в себе служебные сервисы кластера. Среди них:

  • 🔒 сервис блокировок — управляемые блокировки данных 1С;
  • 📋 сервис сеансовых данных — данные сеансов пользователей;
  • 🎫 сервис лицензирования — выдача клиентских лицензий;
  • ⏰ сервис заданий — расписание регламентных заданий;
  • 📜 сервис журналов регистрации;
  • 🔍 сервис полнотекстового поиска.

В платформе 8.3 менеджеров может быть несколько. В свойствах рабочего сервера есть флажок «Менеджер под каждый сервис»: при нём каждый сервис запускается отдельным процессом rmngr. Это помогает на нагруженных кластерах, где один менеджер становится узким местом. На сервере для 10–30 пользователей флажок обычно не нужен.

Несколько центральных серверов

Центральных серверов в кластере 8.3 может быть больше одного. Реестр кластера тогда синхронизируется между ними, и при отказе одного второй продолжает работу. Сколько серверов может отказать без остановки работы, задаёт параметр «Уровень отказоустойчивости» в свойствах кластера.

Рабочие серверы и процессы rphost

Что делает rphost

Рабочий процесс — то, что реально исполняет код: серверные модули, проведение документов, запросы. Каждый клиент после подключения закрепляется за одним из rphost и работает с ним через отдельный порт из диапазона.

Когда пользователь жалуется на медленное проведение, нагрузку почти всегда показывает rphost или СУБД, а не агент с менеджером.

Настройки рабочего сервера

Параметры, которые чаще всего трогают, находятся в свойствах рабочего сервера в консоли кластера:

ПараметрЗачем менять
Диапазоны IP-портовЗадать порты для рабочих процессов, например чтобы согласовать с межсетевым экраном
Количество ИБ на процессИзолировать базы друг от друга: значение 1 — каждая база в своём процессе
Количество соединений на процессОграничить число клиентов на один rphost; при превышении кластер запускает новый процесс
Максимальный объём памяти рабочих процессовОграничить суммарный расход памяти, чтобы не уйти в своп
Безопасный расход памяти за один вызовПрерывать вызов, который съедает слишком много памяти, а не ронять весь процесс
Менеджер под каждый сервисРазнести сервисы менеджера по отдельным процессам

💡 Если на одном сервере крутятся бухгалтерия и тяжёлая УТ, выставьте «Количество ИБ на процесс» = 1. Тогда долгий запрос в торговле не повесит процесс, в котором работает бухгалтерия.

Требования назначения функциональности

Когда рабочих серверов несколько, можно указать, какой сервер чем занимается. Например, отдать регламентные задания отдельной машине, а пользователей держать на двух других. Это делается в свойствах рабочего сервера, в списке требований назначения функциональности: объект требования (клиентские соединения, фоновые задания, сервис и т. д.), информационная база и тип требования — назначать или не назначать.

Перезапуск рабочих процессов

Кластер умеет сам перезапускать rphost по времени и по превышению памяти. Настройки перезапуска находятся в свойствах кластера: интервал перезапуска и допустимый объём памяти рабочих процессов.

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

Сервер СУБД и где хранятся данные

Данные информационной базы хранятся не в кластере, а в базе данных СУБД. Кластер знает о ней только то, что указано при регистрации информационной базы:

  • 🏷️ имя базы в кластере (то, что пишут в Ref=);
  • 🖥️ сервер СУБД и имя базы данных на нём;
  • 👤 пользователь СУБД и пароль;
  • 🗃️ тип СУБД;
  • 📅 смещение дат (для MS SQL принято 2000);
  • 🎫 разрешение выдавать лицензии сервером.

Что хранится на стороне кластера, кроме реестра:

  • 📂 кэш сеансовых данных в папке snccntx… внутри каталога кластера;
  • 📜 журнал регистрации — в подкаталоге базы внутри reg_1541 (по GUID базы), а не в СУБД;
  • 🔍 индексы полнотекстового поиска — там же.

Отсюда практическое следствие: при переносе сервера 1С на новое железо одного бэкапа СУБД мало. Без папок reg_1541 пропадёт журнал регистрации и придётся заново перестраивать полнотекстовый индекс.

💡 Сервер СУБД на отдельной машине снижает конкуренцию за память, но добавляет сетевую задержку на каждый запрос. Для небольших баз связка «1С + PostgreSQL на одном сервере» обычно работает быстрее, чем на двух машинах с медленной сетью между ними.

Лицензии и безопасность кластера

Как кластер получает лицензии

Для работы серверной части нужна лицензия на сервер 1С:Предприятия: программная (активируется на машине, файлы лежат в каталоге лицензий платформы, в Windows — C:\ProgramData\1C\licenses) или аппаратный ключ HASP. Без серверной лицензии кластер не даст подключиться к клиент-серверной базе.

Клиентские лицензии могут браться двумя способами:

  1. Локально на компьютере пользователя (или на терминальном сервере).
  2. Сервером 1С: если в свойствах базы разрешена выдача лицензий сервером, клиентскую лицензию берёт сервис лицензирования кластера.

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

Проверить, какие сеансы какие лицензии заняли, можно командой:

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

Администраторы и профили безопасности

В кластере два уровня администраторов, и их часто путают:

  • 👑 администраторы центрального сервера (агента) — могут создавать и удалять кластеры;
  • 🛠️ администраторы кластера — управляют базами, процессами, сеансами внутри кластера.

Пока ни одного администратора не создано, консоль пускает любого, кто может подключиться к порту 1540. Для рабочей инсталляции это дыра: любой сотрудник с консолью может удалить базу из кластера.

Профили безопасности ограничивают, что код конфигурации и расширений может делать на сервере: доступ к файловой системе, COM-объектам, внешним компонентам, интернету. Профиль создаётся в кластере и назначается информационной базе.

Если администратор кластера назначен и пароль утерян — не пересоздавайте кластер. Остановите службу агента, восстановите файлы реестра из резервной копии каталога srvinfo и запустите службу снова. На время остановки все пользователи будут отключены.

Минимальная защита кластера
Выполнено: 0 / 6

Сетевые порты и межсетевой экран

Путь клиента к данным такой:

  1. Клиент подключается к агенту, порт 1540.
  2. Агент направляет его к менеджеру кластера, порт 1541.
  3. Менеджер выделяет рабочий процесс, клиент дальше работает с ним напрямую по порту из диапазона (по умолчанию 1560–1591).
  4. Рабочий процесс обращается к СУБД по её порту: 1433 у MS SQL, 5432 у PostgreSQL.

Консоль кластера на MMC подключается через агент (1540). Утилита rac — через сервер администрирования ras, по умолчанию на 1545.

НаправлениеПортыГде открыть
Клиенты → сервер 1С1540, 1541, 1560–1591Межсетевой экран сервера 1С
Сервер 1С → СУБД1433 / 5432Межсетевой экран сервера СУБД
Утилита rac → ras1545Только с машины администратора
Рабочие серверы между собой1540, 1541, диапазонМежду всеми серверами кластера

Самая частая сетевая ошибка: открыли 1540 и 1541, а диапазон рабочих процессов забыли. Клиент находит агента, получает адрес рабочего процесса и падает с ошибкой сетевого доступа. Ещё одна: в DNS или в hosts клиента имя сервера не разрешается, хотя по IP подключение работает. Агент отдаёт клиенту именно имя рабочего сервера, поэтому оно должно разрешаться с каждого клиентского компьютера.

💡 Если на одной машине нужно запустить второй кластер другой версии платформы, задайте для его агента другие порты, например 2540/2541 и диапазон 2560–2591. В строке подключения тогда пишут srv-1c:2541.

Как смотреть за кластером и управлять им

Консоль администрирования

Основной инструмент — консоль администрирования серверов 1С:Предприятия (оснастка MMC). В ней видны кластеры, рабочие серверы, информационные базы, сеансы, соединения, блокировки и рабочие процессы с их нагрузкой и памятью.

Если консоль не открывается и пишет, что оснастка не найдена, обычно нужно перерегистрировать библиотеку radmin.dll той версии платформы, что установлена на сервере. Команда запускается от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Вместо 8.3.xx.xxxx подставьте номер установленной версии. Разрядность консоли должна совпадать с разрядностью зарегистрированной библиотеки.

Утилита rac и сервер ras

Для скриптов и удалённого мониторинга удобнее командная строка. Сначала запускают сервер администрирования (вручную или службой):

ras cluster --port=1545 localhost:1540

Затем с машины администратора работают через rac:

rac srv-1c:1545 cluster list
rac srv-1c:1545 server list --cluster=<uuid-кластера>
rac srv-1c:1545 process list --cluster=<uuid-кластера>
rac srv-1c:1545 session list --cluster=<uuid-кластера>
rac srv-1c:1545 infobase summary list --cluster=<uuid-кластера>

Если кластер защищён, к командам добавляют --cluster-user и --cluster-pwd. Полный список подкоманд и параметров выводит rac help и rac <режим> help.

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

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

⚠️ Журнал без фильтров быстро забивает диск. Задавайте конкретные события и порог длительности, а после диагностики возвращайте старую настройку.

Что смотреть в первую очередь

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

Частые вопросы

Можно ли держать два кластера на одном сервере?
Да. Каждому кластеру нужен свой номер порта менеджера и свой диапазон рабочих процессов. Два агента разных версий запускаются как отдельные службы на разных портах.
Нужен ли кластер для файловой базы?
Нет. Файловая база работает без агента, менеджера и рабочих процессов. Кластер появляется только в клиент-серверном варианте.
Сколько рабочих процессов нужно на 20 пользователей?
Специально настраивать ничего не нужно: кластер сам запускает процессы по нагрузке. Ручная настройка нужна, когда требуется изоляция баз или есть ограничения по памяти.
Где хранится журнал регистрации клиент-серверной базы?
На сервере 1С, в каталоге кластера, в папке с GUID базы. В СУБД он не попадает, поэтому его нужно копировать отдельно.
Входит ли PostgreSQL или MS SQL в кластер 1С?
Нет. СУБД — отдельный сервер, который кластер использует как хранилище. Её администрирование, резервное копирование и обновление ведутся своими средствами.