Как устроен кластер 1С:Предприятия 8.3 и когда без него не обойтись
Содержание
Кластер серверов
1С — это группа процессов сервера 1С:Предприятия 8.3 (на одном или нескольких компьютерах), которая принимает подключения клиентов, выполняет серверный код конфигурации и работает с базой данных в СУБД. Клиент сначала обращается к агенту сервера на порт 1540, тот передаёт его менеджеру кластера (1541), а менеджер назначает рабочий процесс из диапазона 1560–1591.
Как только база переводится из файлового варианта в клиент-серверный, кластер появляется в любом случае: даже на одном сервере установщик создаёт «Локальный кластер». Вопрос не в том, нужен ли кластер, а в том, сколько в нём рабочих серверов и как распределить между ними нагрузку.
Что делает кластер серверов 1С и зачем он нужен
Кластер снимает с компьютеров пользователей всю тяжёлую работу. Клиент только показывает формы и передаёт команды, а запросы, проведение документов, расчёты и обмены выполняются на сервере.
Что кластер берёт на себя:
- 🔄 Распределение нагрузки — сеансы пользователей раскладываются по рабочим процессам и серверам.
- 🔒 Управляемые блокировки — менеджер блокировок не даёт двум пользователям одновременно испортить одни и те же данные.
- 📝 Сервисы платформы — журнал регистрации, полнотекстовый поиск, регламентные задания, сеансовые данные.
- 🛡 Отказоустойчивость — если рабочих серверов несколько, сеансы с упавшего сервера можно перевести на другой.
- 🧮 Учёт лицензий — кластер следит, сколько клиентских подключений занято.
Отдельно подчеркну: кластер 1С — не то же самое, что кластер СУБД. Сервер 1С сам данные не хранит. Таблицы лежат в MS SQL Server или PostgreSQL, и их отказоустойчивость настраивается средствами СУБД (Always On, потоковая репликация и т. п.).
Из каких процессов состоит кластер и как они общаются
Архитектура удобнее всего читается через процессы, которые видно в диспетчере задач или в ps на Linux.
| Процесс | Роль | Порт по умолчанию |
|---|---|---|
ragent | Агент сервера: точка входа, хранит список кластеров на этом компьютере | 1540 |
rmngr | Менеджер кластера: реестр баз, сеансов, сервисы кластера | 1541 |
rphost | Рабочий процесс: выполняет серверный код и запросы к СУБД | 1560–1591 |
ras | Сервер администрирования для утилиты rac | 1545 |
Последовательность подключения выглядит так:
- Клиент обращается к агенту
ragentпо имени сервера и порту1540. - Агент сообщает адрес менеджера кластера
rmngr. - Менеджер проверяет, есть ли такая информационная база, и выбирает рабочий процесс.
- Клиент устанавливает соединение с
rphostи дальше работает напрямую с ним. - Рабочий процесс ходит в СУБД и возвращает клиенту результат.
Отсюда практический вывод для настройки брандмауэра: открывать нужно не только 1540, но и 1541, и весь диапазон портов рабочих процессов. Диапазон задаётся в свойствах рабочего сервера. Если открыть только 1540, клиент «увидит» сервер, но подключиться к
базе не сможет.
Рабочие серверы и центральный сервер
Каждый компьютер в кластере — это рабочий сервер. Тот, на котором хранится реестр кластера, называют центральным. Файлы настроек лежат в каталоге srvinfo: в Windows обычно C:\Program Files\1cv8\srvinfo, в Linux — в домашнем каталоге пользователя usr1cv8. Реестр кластера — файл 1CV8Clst.lst.
Каталог srvinfo стоит включить в резервное копирование. При потере пароля администратора кластера или повреждении реестра именно копия 1CV8Clst.lst возвращает настройки без пересоздания кластера.
Сервисы кластера
Внутри менеджера работают отдельные сервисы: менеджер блокировок, сервис журналов регистрации, сервис сеансовых данных, полнотекстового поиска, регламентных заданий и другие. На одном сервере всё живёт в одном rmngr. При росте нагрузки в свойствах рабочего сервера включают флажок «Менеджер под каждый сервис» — тогда тяжёлые сервисы запускаются отдельными процессами и не мешают друг другу.
Когда одного сервера уже мало: пять признаков
Большинство небольших компаний годами живут на одном рабочем сервере, и это нормально. Добавлять второй сервер стоит, когда видны конкретные симптомы.
- Процессор сервера стабильно загружен выше 80% в рабочие часы, и это не СУБД, а процессы
rphost. - Рабочие процессы упираются в память и перезапускаются по превышению допустимого объёма несколько раз в день.
- Регламентные задания и обмены тормозят интерактивную работу — закрытие месяца или выгрузка на сайт «вешает» всех пользователей.
- Простой сервера недопустим — остановка на час означает остановку отгрузок или кассы.
- Пользователей больше 100–150 одновременно, и в журнале появляются долгие серверные вызовы без видимой причины в коде.
Если симптом только один и он про скорость отчётов, сначала проверьте запросы и индексы. Второй сервер не ускорит плохой запрос — он просто выполнит его на другом железе.
Как настроить кластер серверов 1С: от установки до второго сервера
Минимальная рабочая схема — для Windows Server 2016 и новее. На Linux порядок тот же, но управление идёт через ras и rac.
Шаг 1. Установка сервера
- Запустите установщик технологической платформы и отметьте компонент «Сервер 1С:Предприятия 8».
- Выберите установку сервера как службы Windows и укажите пользователя, от которого она будет работать (обычно отдельная учётная запись
USR1CV8). - Отметьте «Администрирование сервера 1С:Предприятия» — это оснастка консоли.
- Установите серверную лицензию (программную или аппаратный ключ).
После установки служба 1C:Enterprise 8.3 Server Agent поднимает агент, менеджер и рабочий процесс, а кластер на порту 1541 создаётся автоматически.
Шаг 2. Подключение в консоли
- Откройте «Администрирование серверов 1С Предприятия» из меню «Пуск».
- Если оснастка не открывается или пустая, зарегистрируйте её от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"
Номер версии в пути подставьте свой — он должен совпадать с версией установленного сервера.
- В дереве нажмите правой кнопкой «Центральные серверы 1С:Предприятия» → «Создать» → «Центральный сервер 1С:Предприятия 8.3» и укажите имя компьютера.
- Раскройте «Кластеры» → «Локальный кластер».
Шаг 3. Администраторы кластера и базы
- В ветке «Администраторы» создайте администратора кластера. Пока список пуст, управлять кластером может любой, кто подключится к консоли.
- В ветке «Информационные базы» создайте базу: укажите имя, тип СУБД, сервер СУБД, имя базы данных и пользователя СУБД.
- Добавьте базу в список у пользователей, указав сервер и имя базы в кластере.
Шаг 4. Второй рабочий сервер
- На второй машине установите ту же версию платформы и запустите службу агента.
- В консоли центрального сервера откройте «Рабочие серверы» → «Создать».
- Укажите имя компьютера, порт агента
1540и диапазон портов рабочих процессов. - Задайте ограничения: количество баз и соединений на процесс, безопасный и критический объём памяти.
- Перейдите в «Требования назначения функциональности» и опишите, какой сервер что обслуживает — например, фоновые задания конкретной базы только на втором сервере.
Версии платформы на всех серверах кластера должны совпадать до последней цифры. Иначе второй сервер не войдёт в кластер или будет отвергать подключения.
Работа через командную строку
На Linux и в скриптах кластер администрируют через rac. Сначала запускают сервер администрирования:
ras cluster --daemon
rac cluster list
rac session list --cluster=<UUID кластера>
UUID кластера берут из вывода rac cluster list. Полный перечень команд и параметров — в rac help.
Мониторинг и тонкая настройка кластера
Начинать мониторинг стоит с того, что уже есть в консоли.
- 📊 Рабочие процессы — колонки занятой памяти, доступной производительности и среднего времени вызова. Резкое падение доступной производительности у одного процесса — сигнал, что он перегружен.
- 👥 Сеансы — кто подключён, к какой базе, на каком процессе, сколько времени идёт вызов.
- 🔐 Блокировки — кто и что держит. Полезно, когда пользователи жалуются на ожидание.
Для разбора «почему медленно» включают технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы. Пример, который пишет долгие вызовы и исключения:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\techlog" history="24">
<event><eq property="name" value="EXCP"/></event>
<event><eq property="name" value="CALL"/><gt property="duration" value="30000"/></event>
<property name="all"/>
</log>
</config>
Технологический журнал без фильтров за несколько часов заполняет диск десятками гигабайт. Включайте его на ограниченное время, ставьте history и выносите каталог на диск, где нет базы СУБД.
Что настраивают для стабильности:
| Параметр | Где | Зачем |
|---|---|---|
| Интервал перезапуска рабочих процессов | Свойства кластера | Плановый перезапуск снимает утечки памяти |
| Допустимый объём памяти рабочих процессов | Свойства кластера | Процесс, превысивший лимит, перезапускается |
| Безопасный объём потребляемой памяти | Свойства рабочего сервера | Защита от одного «тяжёлого» вызова |
| Количество баз и соединений на процесс | Свойства рабочего сервера | Распределение нагрузки между rphost |
| Менеджер под каждый сервис | Свойства рабочего сервера | Разнос сервисов по отдельным процессам |
Для крупных внедрений есть «Центр управления производительностью» из состава корпоративного инструментального пакета. Он собирает метрики APDEX и счётчики сервера в одну картину.
Частые сбои кластера и что с ними делать
Перед любым перезапуском службы агента предупредите пользователей: оборвутся все сеансы на сервере, несохранённые данные пропадут. Перезапуск планируйте на обед или вечер.
При очистке кэша удаляйте только файлы snccntx*. Каталоги с GUID баз и файл 1CV8Clst.lst не трогайте — это реестр кластера.
Кластер 1С против других вариантов работы
Кластер — не единственный способ дать базу многим пользователям. Сравнение по сути:
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Файловая база | До 5–10 пользователей, небольшие объёмы | Нет СУБД и сервера, медленнее при росте, выше риск повреждения |
| Один рабочий сервер (локальный кластер) | Десятки пользователей, обычный офис | Одна точка отказа |
| Кластер из нескольких рабочих серверов | Сотни пользователей, критичный простой | Нужна лицензия КОРП и квалифицированный администратор |
| Терминальный сервер поверх кластера | Удалённые офисы, слабые каналы | Нагрузка на терминальный сервер, лицензии RDS |
| Облачная 1С (аренда) | Нет своего администратора | Ограничения на доработки и интеграции |
Отдельно стоит автономный сервер ibsrv. Это облегчённый сервер для одной базы без кластера и консоли — удобен для разработки и небольших задач, но для многопользовательской работы предприятия его не используют.
Лицензии: ПРОФ и КОРП
Серверная лицензия бывает двух видов. С ПРОФ кластер работает, но часть функций управления недоступна — в том числе требования назначения функциональности, без которых не разнести нагрузку по серверам осмысленно. Если планируется больше одного рабочего сервера, сразу закладывайте КОРП. Клиентские лицензии кластер считает общими для всех рабочих серверов.
Куда движется серверная часть 1С
За последние годы заметны несколько устойчивых направлений.
- 🐧 Linux и отечественные ОС. Сервер 1С давно полноценно работает на Linux, а связка с PostgreSQL стала обычным выбором вместо MS SQL Server.
- 🗄 Импортозамещение СУБД. Растёт число внедрений на сборках PostgreSQL от российских разработчиков, кластеры переносят с Windows на Linux целиком.
- 📦 Контейнеры и виртуализация. Рабочие серверы всё чаще разворачивают на виртуальных машинах, чтобы добавлять мощность без закупки железа.
- 🤖 Автоматизация администрирования.
ras/racпозволяют управлять кластером из скриптов: собирать сеансы, перезапускать процессы, выгружать метрики в системы мониторинга.
Практический совет: если вы сейчас проектируете кластер, сразу планируйте его так, чтобы рабочий сервер можно было добавить за час — одинаковые образы машин, одна версия платформы, описанные требования назначения функциональности.