Кластер серверов 1С:Предприятие 8.3 — установка, рабочие серверы и защита

· 11 мин

Содержание

Кластер серверов 1С создаётся сам при установке сервера 1С:Предприятия как службы: агент ragent поднимает «Локальный кластер» на порту 1541, а рабочие процессы rphost занимают диапазон 1560–1591. Дальше вы добавляете в этот кластер второй и следующие рабочие серверы через консоль администрирования, задаёте балансировку и уровень отказоустойчивости. Отдельной кнопки «создать кластер с нуля» в обычной работе почти не нужно.

Главные проблемы начинаются не на установке, а потом: серверы не видят друг друга по имени, файрвол режет порты, версии платформы на узлах разные. Порядок действий для Windows и Linux, приведённый здесь, позволяет собрать кластер с первого раза. Всё описанное относится к платформе 8.3 и не зависит от конфигурации: БП, ЗУП, УТ и ERP работают в кластере одинаково.

Подготовка серверов и сети под кластер 1С

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

Минимальные ориентиры для рабочего сервера:

  • 🖥️ процессор — 4 ядра и больше, высокая частота важнее числа ядер: код 1С в одном вызове выполняется в один поток;
  • 💾 память — от 16 ГБ на сервер 1С, для 50+ пользователей ERP или УТ — 32–64 ГБ;
  • 💽 диск — SSD под каталог srvinfo и временные файлы;
  • 🌐 сеть — от 1 Гбит/с между серверами 1С и СУБД, задержка внутри стойки, без VPN между узлами кластера.

СУБД (PostgreSQL или MS SQL Server) лучше держать на отдельной машине. На небольших внедрениях до 20–30 пользователей сервер 1С и СУБД на одном железе работают нормально, если памяти хватает обоим.

Какие порты открыть

ПортКто слушаетЗачем
1540агент сервера ragentпервое подключение клиента и консоли
1541менеджер кластера rmngrреестр кластера, распределение сеансов
1560–1591рабочие процессы rphostобработка запросов пользователей
1545сервер администрирования rasтолько если используете rac или сторонние консоли

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

Имена компьютеров

Все узлы должны находить друг друга по короткому имени, а не только по IP. Сервер 1С при регистрации запоминает именно имя хоста. Если DNS в сети нет или он ненадёжен, пропишите все узлы в hosts на каждом сервере и на клиентах:

192.168.10.11   srv1c-01
192.168.10.12   srv1c-02
192.168.10.20   srv-db

На Windows файл лежит в C:\Windows\System32\drivers\etc\hosts, на Linux — /etc/hosts.

Перед установкой сервера 1С
Выполнено: 0 / 6

Windows или Linux: на чём поднимать кластер

Обе системы поддерживаются официально, сервер 1С на них функционально одинаков. Выбор обычно определяют не возможности 1С, а то, кто будет сопровождать серверы.

КритерийWindows Server 2016+Linux (Debian, Ubuntu, RHEL-совместимые)
Стоимость ОСплатная лицензия Windows и CALдистрибутив бесплатен
Консоль администрированияMMC-оснастка ставится вместе с серверомMMC запускают с Windows-машины или используют rac
СУБД рядомудобно с MS SQL Serverудобно с PostgreSQL
Внешние компоненты и COMработают всеCOM-объекты недоступны, часть внешних компонент только под Windows
Порог входа для администратораниженужен опыт с systemd, правами, локалями

Если в конфигурации есть доработки через COM (например, обмен с Excel через ComObject на сервере), Linux потребует переделки этого кода. Для типовых конфигураций разницы нет.

Установка центрального сервера и агента кластера

На Windows

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

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

ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -port 1540 -regport 1541 -range 1560:1591 -d "D:\srvinfo"
ragent.exe -start

Каталог srvinfo на быстром диске — хорошая привычка: туда пишутся журналы регистрации и сеансовые данные.

На Debian и Ubuntu

Начиная с платформы 8.3.20 сервер для Linux поставляется единым установщиком .run вместо набора пакетов. Пример установки сервера и модуля веб-сервера без вопросов:

chmod +x setup-full-8.3.xx.xxxx-x86_64.run
sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components server,ws

Платформа ляжет в /opt/1cv8/x86_64/<версия>/. В этой же папке есть готовый файл службы systemd. Подключите и запустите его:

V=8.3.xx.xxxx
sudo systemctl link /opt/1cv8/x86_64/$V/srv1cv8-$V@.service
sudo systemctl enable srv1cv8-$V@default
sudo systemctl start srv1cv8-$V@default
sudo systemctl status srv1cv8-$V@default

Служба работает от пользователя usr1cv8, каталог кластера по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8. До первого запуска проверьте, что в системе сгенерирована локаль ru_RU.UTF-8, и установите шрифты Microsoft Core Fonts: без них криво формируются печатные формы и PDF на сервере.

Подключаем консоль администрирования

На Windows консоль — MMC-оснастка. Если после установки она открывается пустой или с ошибкой загрузки, зарегистрируйте библиотеку той версии, к которой подключаетесь:

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

Затем откройте «Администрирование серверов 1С Предприятия», добавьте центральный сервер по имени, порт 1540. Внутри вы увидите «Локальный кластер» с портом 1541 и один рабочий сервер — это и есть готовый кластер.

Для Linux-узла без графики поднимите сервер администрирования и работайте через rac:

/opt/1cv8/x86_64/$V/ras cluster --daemon
/opt/1cv8/x86_64/$V/rac cluster list

Версия radmin.dll на машине администратора должна совпадать с версией сервера. При обновлении платформы на сервере регистрируйте новую библиотеку, иначе консоль не подключится.

Как добавить в кластер 1С второй рабочий сервер

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

  1. В консоли раскройте Кластеры → Локальный кластер → Рабочие серверы.
  2. В контекстном меню выберите «Создать» → «Рабочий сервер».
  3. Укажите имя компьютера (как в hosts), IP-порт 1540 и диапазон портов, например 1560:1591.
  4. Сохраните. Через несколько секунд на новом узле запустятся процессы rmngr и rphost.

Ключевые параметры в свойствах рабочего сервера:

  • ⚙️ «Количество ИБ на процесс» — сколько баз обслуживает один rphost. Значение 0 — без ограничений; 1 — каждой базе свой процесс, это изолирует тяжёлую базу от остальных.
  • ⚙️ «Количество соединений на процесс» — когда процесс наберёт этот предел, менеджер запустит следующий rphost.
  • 🧠 «Временно допустимый объём памяти процессов» и «Критический объём памяти процессов» — пороги, после которых сервер начинает перезапускать процессы и отказывать в новых вызовах.
  • 🏛️ флаг «Центральный сервер» — у такого узла будет своя копия реестра кластера и свой менеджер. Это основа отказоустойчивости.

Рабочие процессы rphost в 8.3 запускаются и останавливаются автоматически по этим параметрам. Отдельно «добавлять процессы» руками не нужно.

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

Балансировка нагрузки и отказоустойчивость кластера

Балансировку менеджер кластера делает сам: новый сеанс уходит на тот рабочий сервер, где сейчас меньше нагрузки. Повлиять на это можно тремя способами.

Режим распределения нагрузки

В свойствах кластера есть параметр «Режим распределения нагрузки»:

  • «Приоритет по производительности» — сеансы раздаются с учётом скорости обработки вызовов на узлах. Это вариант по умолчанию.
  • «Приоритет по памяти» — сервер старается занять меньше процессов и экономит ОЗУ. Подходит, когда память — узкое место.

Требования назначения функциональности

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

Правило задаётся по объекту требования (например, «Клиентское соединение» или «Фоновое задание»), типу требования («Назначать» или «Не назначать») и, при необходимости, по конкретной информационной базе.

Уровень отказоустойчивости

Параметр «Уровень отказоустойчивости» в свойствах кластера показывает, сколько рабочих серверов могут одновременно выйти из строя без потери сеансов. Чтобы он работал, нужно минимум два узла с флагом «Центральный сервер».

Узлов в кластереЦентральныхРазумный уровень отказоустойчивости
221
32–31
4+31–2

Каждая единица уровня — это дополнительная копия сеансовых данных на соседнем узле. Выше уровень — больше сетевого трафика и нагрузки на память.

Отдельно существует резервирование кластеров целиком: в консоли у кластера есть раздел, где к основному кластеру добавляют резервный на другом сервере. Это защита от падения центрального узла вместе с реестром.

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

Большая часть «тормозов» в кластере связана не с 1С, а с окружением. Вот что проверяют в первую очередь:

  1. План электропитания. На Windows Server включите «Высокая производительность». Режим «Сбалансированный» снижает частоту процессора, и однопоточные операции 1С заметно проседают.
  2. Антивирус. Исключите из проверки каталог srvinfo, папку платформы и файлы СУБД. Сканирование журнала регистрации на лету даёт задержки на каждой записи.
  3. Перезапуск процессов. В свойствах кластера задайте «Интервал перезапуска» (например, 86400 секунд — раз в сутки) и «Допустимый объём памяти». Тогда rphost, накопивший утечки, будет плавно заменён новым процессом.
  4. Проблемные процессы. Включите «Принудительно завершать проблемные процессы»: зависший rphost сервер завершит сам, а не через звонок пользователя.
  5. Журнал регистрации. Для нагруженных баз переводите его в формат SQLite с регулярным сокращением, иначе каталог srvinfo разрастается до десятков гигабайт.

Для сравнения узлов между собой практики используют синтетический тест Гилёва: он показывает, насколько быстро рабочий сервер выполняет типовую нагрузку 1С. Запустите его на каждом узле — сервер с заметно худшим результатом сразу видно.

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

Безопасность кластера 1С

Свежий кластер открыт для любого, кто знает адрес сервера: подключиться консолью и удалить базу может кто угодно в сети. Закройте это сразу после установки.

  • 🔐 Администратор центрального сервера. В консоли раскройте сервер → Администраторы, создайте учётную запись с паролем. Первой учётной записью должен быть именно ваш администратор, иначе вы закроете доступ себе.
  • 🔐 Администратор кластера. То же в узле Кластеры → Локальный кластер → Администраторы. Без него любой пользователь консоли может создавать и удалять информационные базы.
  • 🧱 Файрвол. Порты 1540, 1541 и диапазон rphost открывайте только для подсетей клиентов и узлов кластера. Порт 1545 для ras — только для машин администраторов.
  • 👤 Учётная запись службы. USR1CV8 не должен быть администратором ОС. Ему нужны права на каталог srvinfo, на временную папку и право «Вход в качестве службы».
  • 🛡️ Профили безопасности. В свойствах кластера есть раздел профилей безопасности: он ограничивает, к каким каталогам, внешним компонентам и COM-объектам может обращаться код конфигурации. Полезно для баз с внешними обработками от подрядчиков.
  • 🔒 Защищённое соединение. Параметр кластера «Защищённое соединение» шифрует трафик между клиентом и сервером. Включайте, если клиенты подключаются из недоверенных сегментов сети.

Пароль администратора кластера храните в менеджере паролей отдела. Если его потеряли, вариантов немного: остановить службу и восстановить файл реестра кластера 1CV8Clst.lst из резервной копии, сделанной до установки пароля. Поэтому каталог реестра стоит регулярно копировать.

Ошибки при создании кластера и как их убрать

Диагностика: выберите симптом

Отдельный случай — после обновления платформы на одном узле кластер «разваливается». Все рабочие серверы одного кластера должны работать на одной и той же сборке. Обновляйте узлы в одно окно обслуживания, остановив службы на всех, и только потом запускайте их снова. Пользователей предупредите: на время работ сеансы оборвутся.

Частые вопросы

Можно ли запустить два кластера на одном физическом сервере?
Да. Для второго кластера регистрируют ещё одну службу агента с другими портами, например 2540, 2541 и диапазоном 2560:2591, и своим каталогом srvinfo. Так часто разделяют рабочие и тестовые базы.
Можно ли в одном кластере держать узлы на Windows и на Linux?
Технически да, если версия платформы совпадает. На практике смешанные кластеры усложняют сопровождение, а код с COM-объектами будет падать на Linux-узлах. Лучше выдерживать одну ОС.
Сколько пользователей потянет один рабочий сервер?
Ориентировочно 50–100 одновременных пользователей БП или ЗУП на сервере с 8 быстрыми ядрами и 32 ГБ памяти. Для ERP цифра ниже в 1,5–2 раза. Точнее покажет нагрузочный тест на ваших данных.
Нужна ли отдельная клиентская лицензия для подключения к кластеру?
Да. Серверная лицензия даёт право запускать сам сервер, а каждому одновременному пользователю нужна клиентская лицензия. Их можно активировать на сервере 1С, тогда они общие для всех узлов.
Можно ли перенести базу из файлового режима в кластер?
Да. Выгрузите базу в файл .dt через Конфигуратор, создайте в кластере новую информационную базу на СУБД и загрузите в неё этот файл. Загрузка .dt требует монопольного доступа к новой базе.