Из каких частей собран кластер серверов 1С:Предприятия 8.3
Содержание
Кластер серверов
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С и выделенный сервер СУБД.
| Компонент | Процесс | Порт по умолчанию | Что делает |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Запускает менеджеры и рабочие процессы, хранит список кластеров, принимает первое подключение клиента |
| Менеджер кластера | rmngr | 1541 | Координирует кластер: сеансы, блокировки, лицензии, распределение нагрузки |
| Рабочий процесс | rphost | 1560–1591 | Выполняет серверный код конфигурации и запросы к СУБД |
| Сервер администрирования | ras | 1545 | Даёт доступ к кластеру утилите rac и сторонним консолям |
| СУБД | sqlservr, postgres и др. | 1433, 5432 и др. | Хранит таблицы информационных баз |
Центральный сервер: агент и менеджер кластера
Агент сервера ragent
Агент — точка входа. В Windows это служба «Агент сервера 1С:Предприятия 8.3» (для 64-разрядной версии — с пометкой x86-64). Клиент, у которого в строке подключения указано Srvr="srv-1c";Ref="buh";, стучится сначала на порт 1540 этого сервера.
Агент делает три вещи:
- Хранит реестр кластеров, которые работают на этой машине, и список администраторов центрального сервера.
- Запускает процессы
rmngrиrphostи перезапускает их при падении. - Сообщает клиенту, к какому менеджеру кластера идти дальше.
Служебные файлы лежат в каталоге 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С: если в свойствах базы разрешена выдача лицензий сервером, клиентскую лицензию берёт сервис лицензирования кластера.
Программную лицензию привязывают к параметрам оборудования. Поэтому замена сетевой карты, диска или переезд виртуальной машины может сделать её недействительной, и лицензию придётся активировать заново по резервному пин-коду из комплекта.
Проверить, какие сеансы какие лицензии заняли, можно командой:
rac session list --cluster=<uuid-кластера> --licenses
Администраторы и профили безопасности
В кластере два уровня администраторов, и их часто путают:
- 👑 администраторы центрального сервера (агента) — могут создавать и удалять кластеры;
- 🛠️ администраторы кластера — управляют базами, процессами, сеансами внутри кластера.
Пока ни одного администратора не создано, консоль пускает любого, кто может подключиться к порту 1540. Для рабочей инсталляции это дыра: любой сотрудник с консолью может удалить базу из кластера.
Профили безопасности ограничивают, что код конфигурации и расширений может делать на сервере: доступ к файловой системе, COM-объектам, внешним компонентам, интернету. Профиль создаётся в кластере и назначается информационной базе.
Если администратор кластера назначен и пароль утерян — не пересоздавайте кластер. Остановите службу агента, восстановите файлы реестра из резервной копии каталога srvinfo и запустите службу снова. На время остановки все пользователи будут отключены.
Сетевые порты и межсетевой экран
Путь клиента к данным такой:
- Клиент подключается к агенту, порт 1540.
- Агент направляет его к менеджеру кластера, порт 1541.
- Менеджер выделяет рабочий процесс, клиент дальше работает с ним напрямую по порту из диапазона (по умолчанию 1560–1591).
- Рабочий процесс обращается к СУБД по её порту: 1433 у MS SQL, 5432 у PostgreSQL.
Консоль кластера на MMC подключается через агент (1540). Утилита rac — через сервер администрирования ras, по умолчанию на 1545.
| Направление | Порты | Где открыть |
|---|---|---|
| Клиенты → сервер 1С | 1540, 1541, 1560–1591 | Межсетевой экран сервера 1С |
| Сервер 1С → СУБД | 1433 / 5432 | Межсетевой экран сервера СУБД |
Утилита rac → ras | 1545 | Только с машины администратора |
| Рабочие серверы между собой | 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 платформы и пишет события: исключения, долгие запросы, взаимоблокировки, ожидания на управляемых блокировках.
⚠️ Журнал без фильтров быстро забивает диск. Задавайте конкретные события и порог длительности, а после диагностики возвращайте старую настройку.