Кластер серверов 1С:Предприятия от одной машины до балансировки нагрузки

· 10 мин

Содержание

Кластер серверов 1С настраивают в консоли Администрирование серверов 1С Предприятия. Сначала ставят сервер 1С на центральную машину и запускают службу агента. Затем в консоли регистрируют информационные базы, а рабочие серверы добавляют в узел Рабочие серверы с портом агента 1540 и диапазоном портов 1560–1591. Балансировку и резервирование включают в свойствах кластера и рабочих серверов.

Многие считают, что кластер — это обязательно несколько физических серверов. Это не так. Любая установка сервера 1С:Предприятия 8.3 уже образует кластер, просто в нём один рабочий сервер. Поэтому настройка кластера серверов 1С начинается с одной машины. Второй и следующие серверы добавляют, когда одной перестаёт хватать или нужна отказоустойчивость.

Из чего состоит кластер серверов 1С и какие порты нужны

Кластер — это набор процессов, которые обслуживают сеансы пользователей и обращаются к СУБД. На каждой машине кластера работают свои процессы:

  • 🧭 Агент сервера (ragent) — точка входа. Хранит список кластеров на этой машине, к нему подключается консоль администрирования. Порт по умолчанию 1540.
  • 🗂 Менеджер кластера (rmngr) — управляет кластером, хранит реестр баз, сеансов и блокировок. Порт по умолчанию 1541.
  • ⚙️ Рабочие процессы (rphost) — выполняют серверный код конфигурации и запросы к базе. Берут порты из диапазона, по умолчанию 1560–1591.
  • 🛠 Сервер администрирования (ras) — нужен для утилиты командной строки rac. Порт по умолчанию 1545. В Windows его запускают отдельно, если он нужен.

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

ПортКто слушаетГде открыть
1540Агент сервераНа всех серверах кластера
1541Менеджер кластераНа центральных серверах
1560–1591Рабочие процессыНа всех рабочих серверах
1545Сервер администрирования rasТам, где запущен ras
1433 / 5432MS SQL / PostgreSQLНа сервере СУБД, для серверов 1С

Сервер бывает центральным и просто рабочим. Центральный хранит копию реестра кластера и может им управлять. Рабочий только выполняет рабочие процессы. Первый установленный сервер всегда центральный.

Что подготовить до установки сервера 1С

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

Железо и ОС

  • 🖥 ОС. Windows Server 2016 и новее или поддерживаемый 64-битный дистрибутив Linux. Ставьте 64-битный сервер 1С: 32-битный упирается в лимит памяти процесса.
  • 🧠 Память. Рабочие процессы съедают много ОЗУ. Ориентир — от 8 ГБ на небольшую базу на 10–20 пользователей; при росте нагрузки память кончается раньше процессора.
  • 💾 Диск. Каталог кластера srvinfo держите на SSD: там лежат реестр, журналы регистрации и сеансовые данные.
  • 🗄 СУБД. MS SQL Server или PostgreSQL ставят на отдельную машину или на ту же — для небольшой нагрузки это нормально.

Сеть и учётные записи

  1. Все серверы кластера и сервер СУБД должны находить друг друга по имени. Кластер хранит адреса серверов именами, а не IP. Нет DNS — пропишите имена в hosts на каждой машине.
  2. На всех серверах кластера — одна и та же версия платформы, до последней цифры сборки. Иначе рабочий сервер не подключится к центральному.
  3. Создайте служебную учётную запись для службы сервера. В Windows установщик предлагает пользователя USR1CV8; в домене удобнее отдельная доменная учётка с правом входа в качестве службы.
  4. Откройте порты из таблицы выше во входящих правилах брандмауэра.
  5. Исключите каталог srvinfo и каталог временных файлов службы из проверки антивирусом в реальном времени.

Лицензии

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

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

В Windows

  1. Запустите setup.exe из дистрибутива технологической платформы.
  2. В списке компонентов отметьте Сервер 1С:Предприятия 8 и Администрирование сервера 1С:Предприятия. Модули веб-сервера нужны, только если будете публиковать базы через IIS или Apache.
  3. Включите опцию установки сервера как сервиса Windows и укажите учётную запись службы.
  4. После установки проверьте в services.msc, что служба «Агент сервера 1С:Предприятия 8.3» запущена и тип запуска — «Автоматически».
  5. Зарегистрируйте библиотеку консоли от имени администратора — без этого оснастка не откроется или выдаст ошибку подключения:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Подставьте свой номер версии. Тот же шаг повторяют после каждого обновления платформы: консоль должна работать с той версией, которая стоит на сервере.

В Linux

Начиная с версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-8.3.xx.xxxx-x86_64.run. Запустите его от root и выберите компонент сервера; список ключей для установки без диалогов покажет запуск с параметром --help.

В новых версиях вместе с сервером ставится шаблон юнита systemd. Порядок такой:

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

Служба работает от пользователя usr1cv8, каталог кластера по умолчанию — в его домашней папке. Консоли для Linux нет: сервером управляют либо с Windows-машины через консоль, либо утилитой rac через ras:

/opt/1cv8/x86_64/8.3.xx.xxxx/ras cluster --daemon
/opt/1cv8/x86_64/8.3.xx.xxxx/rac cluster list

Остальные команды rac смотрите в справке rac help.

Первичная настройка в консоли

  1. Откройте оснастку Администрирование серверов 1С Предприятия.
  2. На узле Central 1C:Enterprise 8.3 servers выберите Создать → Центральный сервер 1С:Предприятия 8.3 и укажите имя машины.
  3. Раскройте сервер — кластер «Локальный кластер» уже создан автоматически.
  4. Сразу задайте администратора кластера (узел Администраторы внутри кластера). Без этого любой, у кого есть сетевой доступ к порту 1540, может управлять кластером.
  5. В узле Информационные базы создайте базу или зарегистрируйте существующую: имя в кластере, тип СУБД, сервер баз данных, имя базы и учётные данные СУБД.

Пароль администратора кластера запишите в хранилище паролей. Восстановить его штатно нельзя: придётся останавливать службу и возвращать файлы реестра кластера из резервной копии.

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

Второй сервер подключают так:

  1. На новой машине установите сервер 1С той же версии и запустите службу агента. Свой кластер на ней не создавайте и базы не регистрируйте.
  2. Убедитесь, что новая машина и центральный сервер разрешают имена друг друга и что порты 1540 и 1560–1591 открыты.
  3. В консоли на центральном сервере раскройте кластер и перейдите в узел Рабочие серверы.
  4. Выберите Создать → Рабочий сервер и заполните карточку:
    • Компьютер — сетевое имя новой машины;
    • IP-порт — 1540;
    • Диапазон IP-портов — 1560:1591;
    • Порт главного менеджера кластера — 1541.
  5. Отметьте флаг Центральный сервер, если эта машина должна хранить копию реестра и подхватывать управление при отказе первой.
  6. Сохраните. Через несколько секунд на новом сервере появятся процессы rmngr и rphost, а в консоли — его рабочие процессы.

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

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

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

Кластер сам распределяет новые соединения между рабочими процессами разных серверов. На это влияют две группы настроек.

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

В свойствах рабочего сервера задают, сколько он берёт на себя:

ПараметрЧто делаетС чего начать
Количество ИБ на процессСколько баз обслуживает один rphost0 (без ограничения) или 1, если базы тяжёлые
Количество соединений на процессПорог, после которого запускается новый процессОставить по умолчанию, менять при перекосах
Максимальный объём памяти рабочих процессовОбщий потолок памяти процессов на сервереОколо 80% ОЗУ, если на машине нет СУБД
Безопасный расход памяти за один вызовОбрывает вызов, который съел слишком многоЗадать, если один отчёт «кладёт» сервер
Менеджер под каждый сервисВыносит сервисы кластера в отдельные процессыВключать на нагруженных кластерах

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

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

Резервирование

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

Сервер СУБД в отказоустойчивость кластера 1С не входит. Его резервируют средствами самой СУБД: Always On для MS SQL, репликацией для PostgreSQL.

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

В свойствах кластера есть параметры, которые защищают от «распухших» процессов:

  • 🔁 Интервал перезапуска — плановый перезапуск рабочих процессов, в секундах. Например, 86400 — раз в сутки. Старый процесс доживает, пока на нём есть сеансы, поэтому для пользователей перезапуск обычно незаметен.
  • 📈 Допустимый объём памяти и интервал превышения — если процесс держится выше порога дольше интервала, кластер выводит его из работы и запускает новый.
  • 🧹 Принудительно завершать проблемные процессы — снимает зависшие процессы. При этом сеансы на таком процессе оборвутся.

Что ещё реально ускоряет кластер:

  1. Держите СУБД и серверы 1С в одной быстрой сети с минимальной задержкой. Задержка между ними важнее пропускной способности.
  2. Ставьте в Windows схему электропитания «Высокая производительность»: энергосбережение заметно замедляет короткие вызовы.
  3. На сервере с PostgreSQL используйте сборку от фирмы 1С или Postgres Pro для 1С и настройте память СУБД под объём ОЗУ.
  4. Чистите сеансовые данные: если srvinfo разросся до десятков гигабайт, ищите причину в журналах регистрации и сеансах-«долгожителях».

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

Мониторинг и диагностика кластера

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

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

Из командной строки то же самое можно получить через rac: например, rac session list с параметром --cluster выводит сеансы, а rac session list --licenses — выданные лицензии.

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

Когда консоли мало, включают технологический журнал. Его настраивают файлом logcfg.xml в каталоге conf платформы: в Windows это C:\Program Files\1cv8\conf\, в Linux — /opt/1cv8/conf/. Минимальная настройка для поиска исключений и взаимоблокировок:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c_logs\tj" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <event>
      <eq property="name" value="TDEADLOCK"/>
    </event>
    <property name="all"/>
  </log>
</config>

Параметр history — сколько часов хранить журнал. Включайте журнал адресно и на время: полный сбор всех событий за пару часов забивает диск и сам тормозит сервер.

Ошибки при настройке кластера и что с ними делать

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

Две ошибки встречаются у тех, кто расширяет кластер впервые:

  • ❌ Один центральный сервер «для простоты». Кластер из трёх рабочих серверов с одним центральным падает целиком при отказе одной машины.
  • ❌ Пустой список администраторов кластера. Кластер без пароля доступен всем, кто подключится к порту 1540, включая удаление баз из реестра.

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

Можно ли собрать кластер из серверов на Windows и Linux?
Да, смешанный кластер допустим. Главное условие — одинаковая версия и разрядность платформы на всех серверах.
Нужна ли отдельная лицензия на каждый рабочий сервер?
Да, серверная лицензия нужна на каждый сервер кластера. Клиентские лицензии общие для кластера и считаются по одновременным сеансам.
Сколько рабочих процессов запускается на сервере?
Кластер запускает их сам по мере роста числа соединений и баз. Вручную обычно задают только ограничения в свойствах рабочего сервера.
Как перенести базу из файлового режима в кластер?
Выгрузите базу в .dt в Конфигураторе, создайте пустую базу в кластере через консоль и загрузите в неё .dt. Загрузка требует монопольного доступа к новой базе.
Где хранятся настройки кластера?
В каталоге srvinfo службы сервера, в файлах реестра кластера. Делайте резервную копию этого каталога вместе с бэкапом баз.