Как устроен кластер серверов 1С:Предприятия и когда его настраивать
Содержание
Кластер серверов
1С:Предприятия — это набор процессов сервера 1С, которые совместно обслуживают информационные базы в клиент-серверном режиме: агент принимает подключения на порту 1540, менеджер кластера ведёт реестр баз на порту 1541, а рабочие процессы rphost выполняют код конфигурации и обращаются к СУБД. Кластер нужен, когда файловая база перестаёт справляться: пользователей много, база большая, нужны веб-доступ, регламентные задания по расписанию и контроль сеансов.
Типичная ситуация: в фирме 25 человек работают в одной файловой Бухгалтерии через общую папку, к концу месяца закрытие идёт час, а база то и дело ловит ошибку блокировки. Переход на сервер 1С с PostgreSQL или MS SQL — и появляется кластер, о котором раньше никто не задумывался. Разберём, из чего он состоит, как его поднять и как за ним следить.
Что такое кластер серверов 1С простыми словами
В файловом режиме каждый клиент сам читает и пишет файл 1Cv8.1CD. Вычисления идут на компьютере пользователя, по сети гоняются целые страницы базы.
В клиент-серверном режиме клиент только показывает формы. Запросы, проведение документов, расчёты выполняет сервер 1С. Хранит данные отдельная СУБД. Кластер — это и есть та «серверная часть», которая стоит между клиентами и СУБД.
Что даёт кластер на практике:
- 🖥️ Тонкий клиент работает быстро даже по слабому каналу — по сети идут команды и результаты, а не файл базы.
- 🔒 Управляемые блокировки — пользователи меньше мешают друг другу, чем в файловой базе.
- ⏰ Регламентные задания выполняются по расписанию на сервере, без открытого клиента.
- 👀 Контроль из одной точки — сеансы, соединения, блокировки и память видно в консоли.
- 📈 Масштабирование — можно добавить рабочие серверы и распределить нагрузку.
- 🗂️ Много баз на одном сервере — каждую регистрируют в кластере и выдают пользователям строку подключения
Srvr="server1";Ref="buh";.
Из чего состоит кластер и как идёт запрос
Кластер собирается из нескольких процессов. У каждого своя роль и свой порт.
| Компонент | Процесс | Порт по умолчанию | Что делает |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Принимает первое обращение, хранит список кластеров на сервере, к нему подключается консоль |
| Менеджер кластера | rmngr | 1541 | Ведёт реестр кластера: базы, рабочие серверы, администраторы; распределяет клиентов по процессам |
| Рабочие процессы | rphost | диапазон 1560–1591 | Выполняют серверный код конфигурации, работают с СУБД |
| Сервер администрирования | ras | 1545 | Отдаёт данные кластера утилите rac и сторонним консолям |
Путь запроса выглядит так:
- Клиент обращается к агенту сервера на порт
1540. - Агент передаёт его менеджеру кластера на
1541. - Менеджер выбирает рабочий процесс и сообщает клиенту его адрес из диапазона портов.
- Дальше клиент общается напрямую с рабочим процессом, а тот — с СУБД.
Отсюда главное правило для сетевых настроек: в брандмауэре должны быть открыты все три группы портов, а не только 1540. Если закрыт диапазон рабочих процессов, клиент найдёт кластер, но подключиться к
базе не сможет.
Где хранятся настройки
Реестр кластера лежит в каталоге службы. В Windows по умолчанию это C:\Program Files\1cv8\srvinfo. Внутри — подкаталог вида reg_1541 с файлом 1CV8Clst.lst и папками сеансовых данных баз.
Перенесите srvinfo на быстрый SSD и исключите его из проверки антивирусом. Там хранятся сеансовые данные и кэши — проверка «на лету» заметно тормозит работу всех пользователей.
Кто задаёт порты рабочих процессов
Диапазон портов задаётся в свойствах рабочего сервера, а не кластера целиком. Там же настраиваются параметры отказоустойчивости, ограничения памяти и требования назначения функциональности. Это частая путаница: ищут параметр в свойствах кластера и не находят.
Одиночный и распределённый кластер
С точки зрения платформы это один и тот же механизм. Разница — в количестве машин.
| Вариант | Как выглядит | Когда подходит | Ограничения |
|---|---|---|---|
| Один сервер | Агент, менеджер, рабочие процессы и часто СУБД на одной машине | Малый и средний бизнес, до нескольких десятков пользователей, 1–10 баз | Нет резерва: упал сервер — встали все |
| Несколько рабочих серверов | Центральный сервер + дополнительные рабочие серверы | Сотни пользователей, тяжёлые расчёты, разнесение фоновых заданий | Нужна серверная лицензия КОРП, одинаковая версия платформы везде |
| Отказоустойчивый | Два и более центральных сервера с резервированием реестра | Когда простой базы недопустим | Сложнее сопровождение, выше требования к сети |
Центральный сервер хранит реестр кластера и запускает менеджер. Рабочий сервер — это машина, на которой просто запускаются процессы rphost по команде центрального.
Возможности распределённого кластера — несколько рабочих серверов с распределением нагрузки, резервирование, требования назначения функциональности, счётчики и ограничения потребления ресурсов — доступны с серверной лицензией уровня КОРП. С лицензией ПРОФ кластер работает на одном сервере без этих функций.
Все серверы кластера должны работать на одной и той же версии платформы, с точностью до номера сборки. Разные версии — частая причина ошибки при попытке добавить рабочий сервер.
Как настроить кластер серверов 1С пошагово
Кластер создаётся автоматически при установке сервера 1С как службы. Его остаётся проверить, зарегистрировать консоль и добавить базы.
Шаг 1. Установите сервер 1С
- Запустите
setup.exeиз дистрибутива технологической платформы для Windows (полный дистрибутив сервера x86-64). - В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
- Включите установку сервера как сервиса Windows. Программа предложит пользователя, от имени которого будет работать служба: по умолчанию создаётся
USR1CV8. - После установки проверьте в
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С Предприятия» из меню «Пуск».
- Правой кнопкой по узлу «Central 1C:Enterprise 8.3 servers» →
Создать → Центральный сервер 1С:Предприятия 8.3. - Укажите имя компьютера, протокол
tcpи порт1540. - Раскройте сервер — в узле «Кластеры» появится «Локальный кластер».
Шаг 4. Защитите кластер паролем
Сразу после установки консоль пускает любого, у кого есть доступ к серверу по сети. Это небезопасно.
- Сначала создайте администратора центрального сервера (узел «Администраторы» под сервером).
- Затем — администратора кластера (узел «Администраторы» внутри кластера).
Запишите оба пароля в хранилище паролей компании. Потерянный пароль администратора кластера восстанавливают только остановкой службы и откатом файла реестра из резервной копии, а это перерыв в работе всех пользователей.
Шаг 5. Добавьте информационную базу
- В кластере: правой кнопкой по узлу «Информационные базы» →
Создать → Информационная база. - Укажите имя базы в кластере — его пользователи впишут в строку подключения.
- Выберите тип СУБД, сервер базы данных, имя базы в СУБД и учётную запись.
- Отметьте «Создать базу данных в случае её отсутствия», если базы в СУБД ещё нет.
- Для копии рабочей базы включите «Установить блокировку регламентных заданий», чтобы тестовая база не отправляла почту и не загружала банк вместо боевой.
Пользователю останется добавить базу в списке баз 1С через вариант «На сервере 1С:Предприятия» с указанием кластера и имени базы.
Шаг 6. Добавьте второй рабочий сервер (если нужно)
- На второй машине установите ту же версию платформы и запустите службу агента.
- В консоли на первом сервере раскройте кластер → «Рабочие серверы» →
Создать → Рабочий сервер. - Укажите имя второй машины и порт её агента.
- В свойствах рабочего сервера задайте диапазон портов процессов и лимиты памяти.
Частые ошибки при работе с кластером и как их не допустить
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Клиент видит кластер, но не подключается к базе | Закрыт диапазон портов рабочих процессов | Правила брандмауэра для 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С у провайдера. Кластер там есть, но его администрирует поставщик, а вы платите за доступ.