Кластер серверов 1С:Предприятия 8.3 с нуля: установка, рабочие серверы, лицензии
Содержание
Чтобы создать кластер серверов
1С, установите на машину «Сервер 1С:Предприятия» с запуском как службы Windows. При первом старте служба ragent сама создаёт «Локальный кластер» на порту 1541. Дальше в консоли администрирования вы добавляете в него информационные базы, а при необходимости и дополнительные рабочие серверы.
Кластер — это группа рабочих процессов на одном или нескольких компьютерах. Они обслуживают клиентов 1С и работают с СУБД. Даже один сервер с одним процессом rphost формально уже кластер. Ниже порядок действий для платформы 8.3 на Windows Server 2016 и новее, с отличиями для Linux там, где они есть.
Что подготовить до установки сервера 1С
Сначала решите, кто какую роль играет. Вариантов обычно три.
| Схема | Что где стоит | Когда подходит |
|---|---|---|
| Всё на одной машине | Сервер 1С и СУБД вместе | До 20–30 пользователей, одна-две базы |
| Сервер 1С + отдельный сервер СУБД | ragent/rphost отдельно от MS SQL или PostgreSQL | Средняя нагрузка, тяжёлые регламентные операции |
| Несколько рабочих серверов | Центральный сервер + дополнительные рабочие + СУБД | Сотни сеансов, нужен резерв центрального сервера |
Перед установкой проверьте:
- 🖥️ Имена хостов. Каждый сервер кластера должен находить другие по имени, а не только по IP. Пропишите записи в DNS или в файл
C:\Windows\System32\drivers\etc\hostsна всех машинах, включая клиентские. - 🔌 Порты. По умолчанию: 1540 — агент сервера, 1541 — главный менеджер кластера, 1560–1591 — рабочие процессы. Откройте их во входящих правилах брандмауэра. Для удалённого администрирования через
rasдобавьте 1545. - 👤 Учётную запись службы. Установщик предлагает создать локального пользователя
USR1CV8. В домене удобнее отдельная доменная учётка без прав администратора. Ей нужен доступ к папке данных кластера и вход в систему как служба. - 📦 Одну и ту же версию платформы. Все рабочие серверы кластера и клиенты должны работать на одинаковом номере сборки, например 8.3.24.1548 везде.
- 💾 СУБД. Её ставят заранее. Для PostgreSQL берут сборку, адаптированную для 1С.
Папку данных кластера (srvinfo) лучше вынести на быстрый диск, отдельный от системного. В ней лежат реестр кластера, сеансовые данные и журналы регистрации серверных баз.
Установка платформы и запуск агента кластера
Windows
- Запустите
setup.exeиз дистрибутива технологической платформы. - В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Модули расширения веб-сервера», если планируете публикацию. Для администрирования отметьте «Администрирование сервера 1С:Предприятия».
- На шаге параметров сервера включите установку как сервиса Windows и укажите пользователя службы.
- После установки откройте
services.msc. Найдите службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» и убедитесь, что она запущена, тип запуска — «Автоматически».
При первом старте агент создаёт папку C:\Program Files\1cv8\srvinfo, а в ней reg_1541 — реестр кластера с файлом 1CV8Clst.lst. В нём хранятся список баз, рабочих серверов и администраторов.
Linux
На Debian и Ubuntu сервер ставят из deb-пакетов дистрибутива, затем запускают службу через systemd. Имя юнита содержит номер версии, точное имя посмотрите командой systemctl list-unit-files | grep 1c.
Если нужно поднять агент с нестандартными портами или другой папкой данных, параметры передают самому ragent:
ragent -d /home/usr1cv8/srvinfo -port 1540 -regport 1541 -range 1560:1591
Здесь -port — порт агента, -regport — порт главного менеджера, -range — диапазон рабочих процессов.
Два кластера на одной машине возможны, но только с разными портами агента, менеджера и диапазонами. Повторный запуск второго агента на 1540 просто не стартует.
Консоль администрирования и создание кластера
Графическая консоль — оснастка MMC «Администрирование серверов 1С Предприятия». Если при открытии оснастка пустая или выдаёт ошибку загрузки, зарегистрируйте библиотеку консоли той версии, что установлена на сервере. Командную строку запустите от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Версия radmin.dll должна совпадать с версией агента, иначе консоль подключится с ошибкой несоответствия версий.
Подключение к центральному серверу
- Откройте консоль, щёлкните правой кнопкой по узлу «Central 1C:Enterprise 8.3 servers».
- Выберите
Создать → Центральный сервер 1С:Предприятия 8.3. - Укажите имя компьютера, порт 1540 и при желании описание.
В дереве появится сервер, а под ним «Кластеры» с автоматически созданным «Локальный кластер».
Если нужен отдельный кластер
Чаще всего хватает автоматического. Отдельный создают, когда нужно развести базы разных организаций или тестовую и рабочую среду:
- Правой кнопкой по «Кластеры» →
Создать → Кластер. - Задайте имя, хост, порт (например 1641) и диапазон портов процессов (например 1660:1691), не пересекающийся с первым кластером.
- Сразу заполните «Администраторы кластера». Пока список пуст, управлять кластером может любой, кто достучался до порта.
Через rac
Для серверов без графики используют ras и rac. Сначала запустите сервер администрирования:
ras cluster --daemon
Затем список кластеров с их идентификаторами:
rac localhost:1545 cluster list
Идентификатор кластера понадобится во всех дальнейших командах. Подкоманды для добавления кластеров и серверов смотрите в справке rac help cluster и rac help server — набор параметров зависит от версии платформы.
Как добавить рабочий сервер в кластер 1С
Второй рабочий сервер даёт распределение нагрузки и, при настройке, резерв центрального сервера.
- На второй машине установите сервер 1С той же сборки, запустите службу агента.
- Проверьте, что машины видят друг друга по именам:
ping srv1c-02с центрального и наоборот. - В консоли на центральном сервере откройте ваш кластер → «Рабочие серверы» →
Создать → Рабочий сервер. - Укажите имя компьютера второго сервера, порт агента 1540, диапазон IP-портов (например 1560:1591) и порт главного менеджера кластера 1541.
- Сохраните. Через несколько секунд на втором сервере стартует
rphost, это видно в разделе «Рабочие процессы».
Что настроить в свойствах рабочего сервера
| Параметр | Что даёт | Ориентир |
|---|---|---|
| Центральный сервер | Сервер хранит копию реестра и может подменить основной | Включают на втором сервере для резерва |
| Диапазон IP-портов | Порты процессов этого сервера | Свой диапазон, открытый в брандмауэре |
| Количество ИБ на процесс | Сколько баз обслуживает один rphost | 0 — без ограничения; 1 — каждая база в своём процессе |
| Количество соединений на процесс | Порог для запуска нового процесса | Начните со значения по умолчанию |
| Максимальный объём памяти рабочих процессов | Общий потолок для всех rphost сервера | Около 80% ОЗУ, если СУБД стоит отдельно |
| Безопасный расход памяти за один вызов | Обрывает вызов, съевший слишком много | Защищает от «тяжёлого» отчёта одного пользователя |
Резервирование и требования назначения функциональности
Чтобы кластер пережил падение основного сервера, включите «Центральный сервер» в свойствах второго рабочего сервера. Затем в свойствах кластера поднимите «Уровень отказоустойчивости» до 1. Кластер будет держать резервную копию сеансовых данных.
Требования назначения функциональности задаются в свойствах рабочего сервера, в отдельной ветке. Ими разводят нагрузку: например, фоновые задания и регламентные операции отправляют на второй сервер, а интерактивных пользователей оставляют на первом.
Отказоустойчивость, назначение функциональности и ряд параметров управления процессами работают только с серверной лицензией уровня КОРП. С обычной лицензией кластер с несколькими рабочими серверами настроить можно, но часть этих опций не действует.
Лицензирование кластера серверов 1С
Сервер 1С не запустит обслуживание баз без серверной лицензии. Лицензия нужна на каждый рабочий сервер, где выполняются рабочие процессы — купить одну на кластер из трёх машин недостаточно.
Варианты защиты:
- 🔐 Программная лицензия. Активируется на конкретном компьютере, файлы
.licпо умолчанию лежат вC:\ProgramData\1C\licenses. Привязана к параметрам оборудования: после замены материнской платы или диска её придётся восстанавливать резервным пин-кодом. - 🔑 Аппаратный ключ HASP. Серверный ключ вставляют в рабочий сервер, нужен драйвер защиты. Подходит, если оборудование часто меняется или сервер виртуальный.
Клиентские лицензии могут выдаваться кластером. Для этого в требованиях назначения функциональности задают объект «Лицензия клиента» и указывают, какой сервер их выдаёт. Пользователи перестанут искать ключ у себя, а лицензии станут учитываться централизованно.
Проверить, кто какую лицензию занял:
rac localhost:1545 session list --cluster=<id_кластера> --licenses
На виртуальных машинах программная лицензия слетает при миграции на другой хост. Если сервер живёт в кластере виртуализации с частыми переездами, аппаратный ключ с пробросом USB надёжнее.
Диагностика: журналы и технологический журнал
Когда кластер работает нестабильно, данные ищут в трёх местах.
1. Журнал событий Windows. Раздел «Приложение», источник — сервер 1С. Там видно падения rphost, отказ агента стартовать, проблемы с лицензией.
2. Журнал регистрации базы. У серверных баз он хранится не в папке пользователя, а на сервере: srvinfo\reg_1541\<GUID базы>\1Cv8Log. GUID базы виден в её свойствах в консоли. Если журнал разросся до десятков гигабайт, его сокращают из конфигуратора: Администрирование → Журнал регистрации.
3. Технологический журнал. Включается файлом logcfg.xml в папке C:\Program Files\1cv8\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="50000"/></event>
<property name="all"/>
</log>
</config>
Здесь history="24" хранит журнал 24 часа. Не оставляйте технологический журнал со всеми событиями надолго: на нагруженном сервере он занимает гигабайты в час.
Частые сообщения и что проверить
Производительность и масштабирование кластера
После запуска стоит сразу подстроить свойства кластера (правой кнопкой по кластеру → «Свойства»):
- ⏱️ Интервал перезапуска — плановый перезапуск рабочих процессов. Например, 86400 секунд, то есть раз в сутки. Процесс перезапускается мягко: новый поднимается, старый дорабатывает текущие соединения.
- 📈 Допустимый объём памяти и Интервал превышения допустимого объёма памяти — если процесс держит память выше порога дольше заданного времени, кластер его перезапустит.
- ⚖️ Режим распределения нагрузки — по производительности или по памяти. При разных по мощности серверах выбирают распределение по производительности.
- 🛑 Принудительно завершать проблемные процессы — включайте, если процессы зависают и не освобождают память.
Ручное завершение рабочего процесса в консоли или перезапуск службы агента обрывает сеансы пользователей на этом процессе, несохранённые данные теряются. Делайте это вне рабочего времени или после предупреждения пользователей. Плановый «Интервал перезапуска» сеансы не рвёт.
Когда добавлять ещё один рабочий сервер
Признаки, что текущего железа мало:
- загрузка процессора на сервере 1С держится выше 70–80% в рабочие часы;
- рабочие процессы регулярно упираются в лимит памяти;
- закрытие месяца или обмены тормозят интерактивную работу остальных.
Сначала проверьте, не упирается ли всё в СУБД: долгие запросы и блокировки лечатся не новым сервером 1С, а индексами, обслуживанием базы и исправлением кода. Если узкое место именно в серверах 1С — добавляйте рабочий сервер и выносите на него фоновые задания через требования назначения.
Частые ошибки при создании кластера
- ❌ Разные сборки платформы на рабочих серверах. Кластер не примет такой сервер или будет постоянно сбоить. Обновляйте все серверы одновременно.
- ❌ Пустой список администраторов кластера. Любой пользователь сети может открыть консоль и удалить базу из кластера. Задайте администратора сразу после создания.
- ❌ Копирование папки
srvinfoс другого сервера. В реестре прописаны имена хостов, и кластер начинает искать чужие машины. Регистрируйте базы и серверы заново через консоль. - ❌ Пересекающиеся диапазоны портов у двух кластеров на одной машине. Второй агент запустится, но рабочие процессы будут конфликтовать.
- ❌ Одна серверная лицензия на несколько рабочих серверов. На втором сервере рабочий процесс не получит лицензию, и подключения туда будут падать.
Частые вопросы
Можно ли включить в кластер Windows- и Linux-серверы одновременно?
Сколько пользователей выдерживает один рабочий сервер?
Что делать, если забыт пароль администратора кластера?
Нужно ли перерегистрировать базы после переноса сервера на новое железо?
Зачем нужен ras, если есть графическая консоль?
ras — сервер администрирования для rac и веб-консолей. Он нужен на Linux без графики и для скриптов мониторинга. Графической консоли он не требуется.