Как устроен кластер 1С:Предприятия 8.3 и когда он нужен компании
Содержание
Кластер серверов
1С — это набор процессов сервера 1С:Предприятия (агент, менеджер кластера, рабочие процессы), которые вместе обслуживают клиент-серверные информационные базы. Он может работать на одной машине или на нескольких: при обычной установке сервера 1С 8.3 как службы кластер с портом 1541 создаётся автоматически, даже если сервер один.
Частое заблуждение: «кластер — это когда серверов много, нам такое не нужно». На деле кластер есть у любой клиент-серверной базы. Вопрос не в том, нужен ли он, а в том, сколько в нём рабочих серверов, кто из них центральный и как он настроен под вашу нагрузку.
Что такое кластер серверов 1С и какие задачи он решает
В файловом варианте каждый пользователь сам читает и пишет файл 1Cv8.1CD по сети. В клиент-серверном варианте между пользователем и данными стоит сервер 1С: клиент отправляет вызов, кластер выполняет код конфигурации и обращается к СУБД, клиенту уходит только результат.
Что даёт кластер:
- 🚀 Производительность. Тяжёлые запросы и проведение документов выполняются на сервере рядом с СУБД, а не на ноутбуке бухгалтера.
- 👥 Много пользователей. Файловая база начинает тормозить уже при 10–15 активных пользователях, клиент-серверная спокойно держит десятки и сотни.
- 🔒 Управляемые блокировки и транзакции. Конфликты при одновременном проведении решает СУБД, а не блокировка файла.
- 🛠 Администрирование. Видно, кто подключён, какие сеансы висят, сколько памяти ест каждый процесс; базы можно создавать и блокировать централизованно.
- 🔁 Масштабирование и отказоустойчивость. В кластер добавляют рабочие серверы, а центральные серверы можно резервировать.
Кластер 1С и кластер СУБД — разные вещи. Кластер 1С выполняет прикладную логику, а данные хранит СУБД: MS SQL Server, PostgreSQL, IBM Db2 или Oracle Database. Отказоустойчивость СУБД настраивается её собственными средствами.
Архитектура кластера 1С: процессы, порты, каталоги
У кластера три вида процессов. На Windows они работают как одна служба «Агент сервера 1С:Предприятия 8.3», внутри которой запускаются отдельные исполняемые файлы.
| Процесс | Файл | Порт по умолчанию | Что делает |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Принимает первое обращение клиента и консоли, запускает остальные процессы, хранит список кластеров |
| Менеджер кластера | rmngr | 1541 | Ведёт реестр кластера: базы, сеансы, блокировки, настройки |
| Рабочий процесс | rphost | 1560–1591 | Выполняет код конфигурации и запросы к СУБД |
| Сервер администрирования | ras | 1545 | Нужен для утилиты rac и сторонних консолей |
Как идёт подключение: клиент обращается к агенту на 1540, тот направляет его к менеджеру кластера на 1541, а менеджер выдаёт адрес рабочего процесса. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, а не всего кластера.
Служебные данные лежат в каталоге srvinfo. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo, внутри — папка reg_1541 с реестром кластера (файл 1CV8Clst.lst) и каталогами сеансовых данных. На Linux путь обычно /home/usr1cv8/.1cv8/1C/1cv8/.
Номер в имени папки reg_1541 совпадает с портом менеджера кластера. Если на одной машине два кластера, папок тоже будет две.
Варианты кластера 1С: один сервер, несколько серверов, резервирование
Выбор зависит от числа пользователей, требований к простою и бюджета на лицензии.
| Вариант | Для кого | Плюсы | Минусы |
|---|---|---|---|
| Сервер 1С и СУБД на одной машине | До 30–50 пользователей, одна-две базы | Просто, нет сетевых задержек между 1С и СУБД | Падение машины останавливает всё |
| Сервер 1С и СУБД на разных машинах | 50–200 пользователей, тяжёлые отчёты | Ресурсы не конкурируют, легче масштабировать | Нужна быстрая сеть между серверами |
| Несколько рабочих серверов в одном кластере | Сотни пользователей, высокая нагрузка | Нагрузка распределяется между машинами | Больше лицензий и администрирования |
| Несколько центральных серверов (резервирование) | Где простой стоит дорого | При отказе одного сервера кластер продолжает работать | Сеансы на упавшем сервере всё равно обрываются |
Отдельно про лицензии. На каждый рабочий сервер нужна серверная лицензия: ПРОФ или КОРП. Часть механизмов управления кластером, например требования назначения функциональности и ограничение потребления ресурсов, работает только с лицензией КОРП. Клиентские лицензии на пользователей покупаются отдельно.
Ориентир по стоимости: серверная лицензия ПРОФ для 64-разрядного сервера стоит примерно 85–100 тыс. руб., КОРП — примерно в 2,5–3 раза дороже. Точную цену назовёт партнёр 1С на дату покупки.
Как настроить кластер 1С с нуля
Порядок для Windows Server 2016 и новее. На Linux шаги те же, меняются команды установки и запуск службы.
Шаг 1. Установка сервера
- Скачайте дистрибутив сервера 64-разрядной платформы той же версии, что у клиентов.
- В установщике отметьте компоненты «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
- Включите установку как службы Windows. Учётную запись лучше оставить предложенную
USR1CV8или указать отдельную доменную, без прав администратора. - После установки откройте
services.mscи убедитесь, что служба агента сервера запущена.
Версия платформы на клиентах и на сервере должна совпадать до номера сборки. Иначе клиент не подключится.
Шаг 2. Консоль администрирования
Консоль — это оснастка MMC. Если она не открывается или выдаёт ошибку загрузки, зарегистрируйте библиотеку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Вместо 8.3.xx.xxxx подставьте установленную версию. После обновления платформы регистрацию повторяют для новой версии, иначе консоль работает со старой библиотекой.
В консоли щёлкните правой кнопкой по «Central 1C:Enterprise 8.3 servers», выберите создание центрального сервера и укажите имя машины. В дереве появится кластер «Локальный кластер» с портом 1541.
Шаг 3. Администраторы кластера
По умолчанию кластер открыт любому, кто может подключиться к
порту 1540. Заведите администратора агента и администратора кластера: узел «Администраторы» в дереве кластера. Пароль запишите в хранилище паролей компании.
Если пароль администратора кластера потерян, не пересоздавайте кластер. Остановите службу в нерабочее время и восстановите каталог reg_1541 из резервной копии или обратитесь к тому, кто администрирует сервер.
Шаг 4. База на сервере
Базу создают в консоли (узел «Информационные базы» → «Создать») или из окна запуска 1С: «Добавить» → «Создание новой информационной базы» → вариант на сервере 1С:Предприятия. Понадобятся:
- имя кластера (имя сервера, при нестандартном порте —
server:1541); - имя базы в кластере;
- тип СУБД, сервер СУБД, имя базы данных, пользователь и пароль СУБД;
- флажок создания базы данных, если её ещё нет.
Шаг 5. Сеть и брандмауэр
Откройте входящие порты 1540, 1541, 1560–1591, при использовании rac — 1545. Порт СУБД (1433 для MS SQL, 5432 для PostgreSQL) открывайте только для сервера 1С.
Клиенты обращаются к серверу по имени. Если DNS не настроен, добавьте имя в файл hosts на клиентах — иначе подключение будет падать, хотя по IP сервер виден.
Шаг 6. Второй рабочий сервер (по необходимости)
На второй машине ставят сервер той же версии, затем в консоли основного кластера: узел «Рабочие серверы» → «Создать», указать имя машины и порт агента 1540. Чтобы сервер подхватил роль при отказе основного, в его свойствах включают флажок «Центральный сервер».
Наблюдение за кластером 1С и настройка производительности
Что смотреть в консоли
- 📋 Сеансы — кто работает, с какого компьютера, какое приложение, сколько времени занят вызов.
- ⚙️ Рабочие процессы — потребляемая память, число соединений, «доступность» и среднее время вызова. Процесс с резко выросшим временем вызова — первый кандидат на разбор.
- 🔐 Блокировки — какие сеансы держат управляемые блокировки на объектах.
То же из командной строки через сервер администрирования:
ras cluster --daemon
rac cluster list
rac session list --cluster=<uuid кластера>
rac process list --cluster=<uuid кластера>
Список остальных команд и параметров выдаёт rac help.
Параметры, которые стоит выставить сразу
| Где | Параметр | Ориентир |
|---|---|---|
| Свойства кластера | Интервал перезапуска рабочих процессов | 86400 секунд (раз в сутки) или 0, если утечек памяти нет |
| Свойства кластера | Допустимый объём памяти рабочих процессов | 60–70 % памяти, выделенной под 1С |
| Свойства рабочего сервера | Критический объём памяти процессов | Ниже физической памяти с запасом под ОС и СУБД |
| Свойства рабочего сервера | Количество ИБ на процесс, соединений на процесс | Оставить по умолчанию, менять только при доказанной проблеме |
Перезапуск рабочего процесса по интервалу проходит мягко: новый процесс принимает соединения, старый завершается после окончания вызовов.
Технологический журнал
Когда в консоли причина не видна, включают технологический журнал. Его настраивают файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\logcfg.xml. Минимальная настройка, которая собирает исключения (события EXCP) — с неё удобно начинать разбор падений и ошибок на сервере:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history — сколько часов хранить файлы журнала. Для поиска долгих вызовов добавляют событие CALL с отбором по длительности; единицы измерения порога сверяйте со справкой своей версии платформы. Платформа перечитывает файл примерно раз в минуту, перезапуск службы не нужен.
Технологический журнал без фильтров за час заполняет диск. Задавайте условия отбора, ставьте history и удаляйте файл настройки после разбора.
Кластер 1С в облаке: аренда или свой сервер
«Кластер в облаке» бывает двух видов:
- Аренда 1С у провайдера. Сервер, лицензии и обновления на стороне провайдера, вы платите за пользователя в месяц. Доступа к консоли кластера обычно нет.
- Свой кластер на арендованной виртуальной машине. Вы ставите сервер 1С и СУБД сами, покупаете лицензии и отвечаете за настройку.
| Критерий | Аренда 1С | Свой сервер в облаке | Свой сервер в офисе |
|---|---|---|---|
| Старт | За день | 2–5 дней | От недели, нужна закупка железа |
| Лицензии | Включены в тариф | Покупаете сами | Покупаете сами |
| Доступ к консоли и доработкам | Ограничен | Полный | Полный |
| Зависимость от интернета | Полная | Полная | Внутри офиса работает без него |
| Ориентир затрат | Примерно 1–3 тыс. руб. на пользователя в месяц | Виртуальная машина от 8–15 тыс. руб. в месяц плюс лицензии | Железо от 300 тыс. руб. плюс лицензии |
Облако выгодно при распределённых сотрудниках и нежелании держать администратора. Свой сервер в офисе выгоднее, когда пользователей много, базы тяжёлые и важен контроль над данными.
Частые ошибки при работе с кластером 1С
- ❌ Разные версии платформы. Сервер обновили, клиентов — нет. Решение: держать дистрибутив клиента в общей папке и разрешить автоматическое обновление клиентов либо обновлять всех одновременно.
- ❌ Сервер 1С и СУБД дерутся за память. MS SQL по умолчанию забирает всю свободную память. Ограничьте максимальный объём памяти СУБД, оставив запас под рабочие процессы 1С.
- ❌ Открыт только порт 1540. Консоль и клиент соединяются с агентом, а дальше ошибка: закрыт диапазон рабочих процессов.
- ❌ Служба под учётной записью без прав. Пользователю службы нужно право входа в качестве службы и полный доступ к каталогу
srvinfo. Если его переименовали или сменили пароль — служба не стартует. - ❌ Антивирус проверяет
srvinfoи файлы СУБД. Это замедляет работу в разы. Добавьте каталоги в исключения. - ❌ Очистка сеансовых данных «на горячую». Чистить папки
snccntx*вreg_1541можно только при остановленной службе. Остановка службы обрывает сеансы всех пользователей — делайте это вне рабочего времени, предупредив пользователей.