Как устроен кластер серверов 1С:Предприятия и когда его настраивать

· 10 мин

Содержание

Кластер серверов 1С:Предприятия — это набор процессов сервера 1С, которые совместно обслуживают информационные базы в клиент-серверном режиме: агент принимает подключения на порту 1540, менеджер кластера ведёт реестр баз на порту 1541, а рабочие процессы rphost выполняют код конфигурации и обращаются к СУБД. Кластер нужен, когда файловая база перестаёт справляться: пользователей много, база большая, нужны веб-доступ, регламентные задания по расписанию и контроль сеансов.

Типичная ситуация: в фирме 25 человек работают в одной файловой Бухгалтерии через общую папку, к концу месяца закрытие идёт час, а база то и дело ловит ошибку блокировки. Переход на сервер 1С с PostgreSQL или MS SQL — и появляется кластер, о котором раньше никто не задумывался. Разберём, из чего он состоит, как его поднять и как за ним следить.

Что такое кластер серверов 1С простыми словами

В файловом режиме каждый клиент сам читает и пишет файл 1Cv8.1CD. Вычисления идут на компьютере пользователя, по сети гоняются целые страницы базы.

В клиент-серверном режиме клиент только показывает формы. Запросы, проведение документов, расчёты выполняет сервер 1С. Хранит данные отдельная СУБД. Кластер — это и есть та «серверная часть», которая стоит между клиентами и СУБД.

Что даёт кластер на практике:

  • 🖥️ Тонкий клиент работает быстро даже по слабому каналу — по сети идут команды и результаты, а не файл базы.
  • 🔒 Управляемые блокировки — пользователи меньше мешают друг другу, чем в файловой базе.
  • ⏰ Регламентные задания выполняются по расписанию на сервере, без открытого клиента.
  • 👀 Контроль из одной точки — сеансы, соединения, блокировки и память видно в консоли.
  • 📈 Масштабирование — можно добавить рабочие серверы и распределить нагрузку.
  • 🗂️ Много баз на одном сервере — каждую регистрируют в кластере и выдают пользователям строку подключения Srvr="server1";Ref="buh";.

Из чего состоит кластер и как идёт запрос

Кластер собирается из нескольких процессов. У каждого своя роль и свой порт.

КомпонентПроцессПорт по умолчаниюЧто делает
Агент сервераragent1540Принимает первое обращение, хранит список кластеров на сервере, к нему подключается консоль
Менеджер кластераrmngr1541Ведёт реестр кластера: базы, рабочие серверы, администраторы; распределяет клиентов по процессам
Рабочие процессыrphostдиапазон 1560–1591Выполняют серверный код конфигурации, работают с СУБД
Сервер администрированияras1545Отдаёт данные кластера утилите rac и сторонним консолям

Путь запроса выглядит так:

  1. Клиент обращается к агенту сервера на порт 1540.
  2. Агент передаёт его менеджеру кластера на 1541.
  3. Менеджер выбирает рабочий процесс и сообщает клиенту его адрес из диапазона портов.
  4. Дальше клиент общается напрямую с рабочим процессом, а тот — с СУБД.

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

Где хранятся настройки

Реестр кластера лежит в каталоге службы. В Windows по умолчанию это C:\Program Files\1cv8\srvinfo. Внутри — подкаталог вида reg_1541 с файлом 1CV8Clst.lst и папками сеансовых данных баз.

Перенесите srvinfo на быстрый SSD и исключите его из проверки антивирусом. Там хранятся сеансовые данные и кэши — проверка «на лету» заметно тормозит работу всех пользователей.

Кто задаёт порты рабочих процессов

Диапазон портов задаётся в свойствах рабочего сервера, а не кластера целиком. Там же настраиваются параметры отказоустойчивости, ограничения памяти и требования назначения функциональности. Это частая путаница: ищут параметр в свойствах кластера и не находят.

Одиночный и распределённый кластер

С точки зрения платформы это один и тот же механизм. Разница — в количестве машин.

ВариантКак выглядитКогда подходитОграничения
Один серверАгент, менеджер, рабочие процессы и часто СУБД на одной машинеМалый и средний бизнес, до нескольких десятков пользователей, 1–10 базНет резерва: упал сервер — встали все
Несколько рабочих серверовЦентральный сервер + дополнительные рабочие серверыСотни пользователей, тяжёлые расчёты, разнесение фоновых заданийНужна серверная лицензия КОРП, одинаковая версия платформы везде
ОтказоустойчивыйДва и более центральных сервера с резервированием реестраКогда простой базы недопустимСложнее сопровождение, выше требования к сети

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

Возможности распределённого кластера — несколько рабочих серверов с распределением нагрузки, резервирование, требования назначения функциональности, счётчики и ограничения потребления ресурсов — доступны с серверной лицензией уровня КОРП. С лицензией ПРОФ кластер работает на одном сервере без этих функций.

Все серверы кластера должны работать на одной и той же версии платформы, с точностью до номера сборки. Разные версии — частая причина ошибки при попытке добавить рабочий сервер.

Как настроить кластер серверов 1С пошагово

Кластер создаётся автоматически при установке сервера 1С как службы. Его остаётся проверить, зарегистрировать консоль и добавить базы.

Шаг 1. Установите сервер 1С

  1. Запустите setup.exe из дистрибутива технологической платформы для Windows (полный дистрибутив сервера x86-64).
  2. В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
  3. Включите установку сервера как сервиса Windows. Программа предложит пользователя, от имени которого будет работать служба: по умолчанию создаётся USR1CV8.
  4. После установки проверьте в services.msc, что служба «Агент сервера 1С:Предприятия 8.3» запущена.

Установщик сам создаёт кластер по умолчанию с именем «Локальный кластер» и портом 1541. Создавать его вручную обычно не нужно.

Шаг 2. Зарегистрируйте консоль администрирования

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

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

Вместо 8.3.xx.xxxx подставьте номер установленной версии. При обновлении платформы регистрацию повторяют: консоль и сервер должны совпадать по версии.

Шаг 3. Подключитесь к кластеру

  1. Запустите «Администрирование серверов 1С Предприятия» из меню «Пуск».
  2. Правой кнопкой по узлу «Central 1C:Enterprise 8.3 servers» → Создать → Центральный сервер 1С:Предприятия 8.3.
  3. Укажите имя компьютера, протокол tcp и порт 1540.
  4. Раскройте сервер — в узле «Кластеры» появится «Локальный кластер».

Шаг 4. Защитите кластер паролем

Сразу после установки консоль пускает любого, у кого есть доступ к серверу по сети. Это небезопасно.

  1. Сначала создайте администратора центрального сервера (узел «Администраторы» под сервером).
  2. Затем — администратора кластера (узел «Администраторы» внутри кластера).

Запишите оба пароля в хранилище паролей компании. Потерянный пароль администратора кластера восстанавливают только остановкой службы и откатом файла реестра из резервной копии, а это перерыв в работе всех пользователей.

Шаг 5. Добавьте информационную базу

  1. В кластере: правой кнопкой по узлу «Информационные базы» → Создать → Информационная база.
  2. Укажите имя базы в кластере — его пользователи впишут в строку подключения.
  3. Выберите тип СУБД, сервер базы данных, имя базы в СУБД и учётную запись.
  4. Отметьте «Создать базу данных в случае её отсутствия», если базы в СУБД ещё нет.
  5. Для копии рабочей базы включите «Установить блокировку регламентных заданий», чтобы тестовая база не отправляла почту и не загружала банк вместо боевой.

Пользователю останется добавить базу в списке баз 1С через вариант «На сервере 1С:Предприятия» с указанием кластера и имени базы.

Шаг 6. Добавьте второй рабочий сервер (если нужно)

  1. На второй машине установите ту же версию платформы и запустите службу агента.
  2. В консоли на первом сервере раскройте кластер → «Рабочие серверы» → Создать → Рабочий сервер.
  3. Укажите имя второй машины и порт её агента.
  4. В свойствах рабочего сервера задайте диапазон портов процессов и лимиты памяти.
Нужен ли вашей компании кластер серверов 1С?

Частые ошибки при работе с кластером и как их не допустить

СимптомВероятная причинаЧто проверить
Клиент видит кластер, но не подключается к базеЗакрыт диапазон портов рабочих процессовПравила брандмауэра для 1560–1591 на сервере
Консоль не открывается или пустаяНе зарегистрирована radmin.dll нужной версииПовторить regsvr32 для текущей версии платформы
Рабочий сервер не добавляетсяРазные версии платформы на серверахНомер сборки в свойствах службы на обеих машинах
Ошибка соединения по имени сервераИмя не разрешается в адресЗапись в DNS или в файле hosts на клиенте и сервере
Ошибка доступа к СУБД при создании базыНет прав у учётной записи СУБДПрава на создание базы в SQL или PostgreSQL
Сервер медленно отвечает, диск занятsrvinfo проверяет антивирус или он на медленном дискеИсключения антивируса, перенос каталога

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

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

Не исправляйте проблемы «пересозданием кластера». Вместе с реестром пропадут регистрации баз, администраторы и настройки рабочих серверов. Почти всегда хватает правки свойств конкретного объекта.

Мониторинг и оптимизация производительности кластера

Что смотреть в консоли

  • 👥 Сеансы — кто работает, в каком приложении, сколько занимает. Здесь же завершают зависший сеанс.
  • 🔗 Соединения — какие процессы держат связь с базой.
  • 🔐 Блокировки — кто и что заблокировал, если пользователи жалуются на ожидание.
  • ⚙️ Рабочие процессы — память каждого rphost, доступная производительность, время ответа.

Командная строка: ras и rac

Для скриптов и мониторинга без MMC запустите сервер администрирования и обращайтесь к нему утилитой rac:

ras cluster --port=1545 localhost:1540
rac cluster list localhost:1545
rac infobase summary list --cluster=<UUID кластера> localhost:1545
rac session list --cluster=<UUID кластера> localhost:1545

Первая команда rac выдаёт UUID кластера, его подставляют в следующие. Остальные подкоманды и параметры смотрите в rac help.

Что настраивать для скорости

ПараметрГдеЗачем
Число рабочих процессов и баз на процессСвойства рабочего сервераРазделить нагрузку тяжёлых баз
Критический и временно допустимый объём памяти процессовСвойства рабочего сервераНе дать rphost съесть всю память сервера
Безопасный расход памяти за один вызовСвойства рабочего сервераПрервать один «прожорливый» отчёт, а не весь процесс
Интервал перезапускаСвойства кластераПлановый перезапуск процессов против утечек памяти
Требования назначения функциональностиСвойства рабочего сервераВынести фоновые задания на отдельную машину (КОРП)

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

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

Самая частая причина тормозов при живом кластере — не сам сервер 1С, а СУБД: нет обслуживания индексов и статистики. Начинайте разбор с регламентного обслуживания базы данных.

Когда кластер нужен, а когда можно обойтись без него

Кластер — не самоцель. Он требует серверной лицензии, СУБД и человека, который за этим следит.

Можно обойтись без кластера:

  • 🧾 малое число пользователей, одна база, все работают в одной локальной сети;
  • 🧾 база небольшая, закрытие месяца проходит быстро;
  • 🧾 нет необходимости в фоновых заданиях по расписанию без открытого клиента.

Пора переходить на кластер:

  • 🚀 растёт число одновременных пользователей, а файловая база всё чаще упирается в блокировки;
  • 🚀 сотрудники работают удалённо через интернет или веб-клиент;
  • 🚀 нужны регламентные задания: обмены, загрузка выписок, обновление курсов;
  • 🚀 база выросла до десятков гигабайт, проведение и отчёты медленные;
  • 🚀 требуется контроль, кто сейчас в базе, и возможность завершить сеанс.

Промежуточный вариант для маленькой фирмы — облачная 1С у провайдера. Кластер там есть, но его администрирует поставщик, а вы платите за доступ.

Можно ли запустить несколько кластеров на одном сервере?
Да. Каждый кластер получает свой порт менеджера, например 1541 и 1641, а агент на 1540 обслуживает их все. Так разделяют рабочие и тестовые базы.
Можно ли держать на одном сервере кластеры разных версий платформы?
Можно, если запустить отдельные службы агента на разных портах, например 1540 и 2540, каждая со своим каталогом srvinfo. Консоль и клиент должны совпадать по версии с тем кластером, к которому подключаются.
Нужен ли отдельный сервер под СУБД?
Не обязательно. Для небольших нагрузок СУБД и сервер 1С ставят на одну машину, это даже снижает сетевые задержки. Разносят, когда не хватает памяти или ядер.
Работает ли кластер 1С на Linux?
Да, сервер 1С:Предприятия выпускается для Linux, чаще в паре с PostgreSQL. Устройство кластера и порты те же, управление — через консоль с Windows-машины или утилиту rac.
Что будет с базами, если перезапустить службу агента?
Данные в СУБД не пострадают, но все сеансы пользователей оборвутся, а несохранённые изменения пропадут. Перезапуск планируют на нерабочее время.