К статье
Практический материал

Администрирование · 10 мин

Как сделать кластер 1С: пошаговая настройка сервера

Пошаговая инструкция по созданию кластера серверов 1С: установка агента, добавление серверов, настройка рабочих процессов, отказоустойчивость и типичные ошибки.

Кластер серверов 1С — это группа процессов, которые обслуживают подключения пользователей и передают запросы в СУБД. Даже на одном физическом сервере вы работаете с кластером: он создаётся автоматически при установке агента сервера 1С и называется «Локальный кластер». Задача администратора — правильно настроить этот кластер, а при росте нагрузки — добавить в него дополнительные рабочие серверы.

Кластерная архитектура решает три задачи: распределение нагрузки между процессами и машинами, отказоустойчивость (при сбое одного процесса сеансы переключаются на другой) и масштабируемость без остановки работы пользователей. Понимание того, как устроен кластер, необходимо и для небольшой базы на 10 пользователей, и для системы с сотнями одновременных сеансов.

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

Из чего состоит кластер серверов 1С

Кластер включает несколько типов процессов. Агент сервера (ragent) — главный процесс, который знает состав кластера и ведёт реестр. Менеджер кластера (rmngr) управляет сеансами, блокировками и распределением вызовов. Рабочие процессы (rphost) непосредственно исполняют код прикладного решения и обращаются к СУБД. Именно rphost потребляют основную память сервера.

Кроме процессов, в кластере существуют логические сущности: рабочие серверы (машины, входящие в кластер), информационные базы, зарегистрированные в кластере, и требования назначения функциональности — правила, определяющие, какие сервисы и сеансы на каком сервере могут выполняться. Все настройки хранятся в файле реестра кластера (каталог srvinfo), поэтому его потеря означает необходимость заново регистрировать базы.

Установка агента сервера и первый кластер

Установка начинается с дистрибутива «Сервер 1С:Предприятия» той же версии платформы, что и клиенты. На Windows компонент устанавливается как служба «Агент сервера 1С:Предприятия», на Linux — как служба srv1cv8. По умолчанию агент использует порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560–1591 для рабочих процессов. Эти порты должны быть открыты между серверами кластера и для клиентских подключений.

После установки откройте консоль администрирования серверов 1С (на Windows — оснастка «Администрирование серверов 1С Предприятия», на Linux — консоль из состава поставки или кроссплатформенная консоль). Добавьте центральный сервер по имени или IP-адресу — в дереве появится «Локальный кластер» с портом 1541. Это и есть готовый кластер из одного сервера.

Порядок действий
  1. 1
    Установите компонент «Сервер 1С:Предприятия» той же версии, что и клиентские платформы
  2. 2
    Убедитесь, что служба агента запущена и порты 1540–1591 доступны
  3. 3
    Откройте консоль администрирования и добавьте центральный сервер
  4. 4
    Проверьте, что в дереве появился «Локальный кластер» и список рабочих процессов
  5. 5
    Зарегистрируйте информационную базу через консоль или конфигуратор

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

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

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

Настройка отказоустойчивости и рабочих процессов

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

Дополнительные параметры: «Интервал перезапуска» (периодический перезапуск рабочих процессов для освобождения памяти), «Допустимый объём памяти» рабочих процессов и «Безопасный расход памяти за один вызов». Эти настройки защищают сервер от утечек памяти в прикладном коде: процесс, превысивший лимит, перезапускается, а не «съедает» всю память сервера. Для сервера с нестабильными доработками конфигурации такие ограничения особенно важны.

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

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

Типовой сценарий: выделить один сервер под фоновые задания и регламентные операции, а второй — под интерактивную работу пользователей. Для этого на первом сервере создаётся требование, разрешающее сервис фоновых заданий, а на втором — требование, запрещающее его. Порядок требований в списке имеет значение: они применяются сверху вниз, поэтому более частные правила размещайте выше общих.

Сравнение вариантов

Один сервер, кластер по умолчанию

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

Несколько серверов, требования «Авто»

Нагрузка распределяется автоматически; минус — фоновые задания могут конкурировать за ресурсы с интерактивными сеансами

Разделение ролей через требования

Предсказуемое распределение нагрузки и изоляция фоновых задач; требует продуманной настройки и контроля порядка правил

Проверка работы кластера и типичные ошибки

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

Контролируйте потребление памяти процессами rphost через консоль или системный мониторинг, следите за журналом регистрации и технологическим журналом на предмет ошибок назначения сеансов. Если пользователи жалуются на «обрывы соединения», первым делом проверьте сетевую связность между узлами и совпадение версий платформы.

Контрольные точки

Как проверить результат

Список рабочих серверов в консоли
Норма

Все добавленные серверы видны, у каждого есть работающие процессы

Тревожный признак

Сервер в списке есть, но процессы не запускаются или отображается ошибка соединения

Распределение сеансов
Норма

Сеансы присутствуют на нескольких серверах или процессах

Тревожный признак

Все сеансы «висят» на одном процессе при равных требованиях

Тест отказоустойчивости
Норма

После остановки процесса сеансы переключаются, пользователи продолжают работу

Тревожный признак

Сеансы завершаются с ошибкой, работа прерывается

Память процессов rphost
Норма

Потребление стабильно и не приближается к лимитам

Тревожный признак

Процессы регулярно перезапускаются по лимиту памяти

Типичные ошибки
01
Разные версии платформы на узлах кластера — сеансы обрываются или не назначаются
02
Неправильный порядок требований назначения функциональности — сервисы уходят не на те серверы
03
Завышенный уровень отказоустойчивости — лишние накладные расходы и рост сетевого трафика
04
Отсутствие резервной копии каталога srvinfo — при его повреждении приходится заново регистрировать все базы
05
Закрытые порты 1540–1591 между серверами — узлы не видят друг друга, кластер деградирует

Границы самостоятельной настройки

Базовый кластер на один-два сервера под силу администратору, освоившему консоль администрирования. Но есть сценарии, где ошибки дорого обходятся: настройка резервных кластеров, тонкая балансировка нагрузки при сотнях сеансов, диагностика утечек памяти в доработанных конфигурациях, миграция кластера между площадками. В этих случаях разумно привлечь специалиста с опытом эксплуатации высоконагруженных систем 1С.

Любые изменения в боевом кластере выполняйте вне пиковой нагрузки и после резервного копирования srvinfo и баз данных. Помните, что кластер — только часть системы: если узким местом является СУБД, добавление серверов 1С не ускорит работу, а иногда и ухудшит её из-за роста числа соединений с базой.

Итог

Что важно запомнить

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

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

Можно ли сделать кластер 1С на одном сервере?

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

Сколько рабочих процессов rphost нужно на сервере?

Универсального числа нет: оно зависит от количества пользователей, тяжести операций и объёма памяти. Практический подход — начать со значений по умолчанию, наблюдать за потреблением памяти и числом сеансов на процесс и корректировать настройки по фактической нагрузке.

Что делать, если второй сервер добавлен, но сеансы на него не идут?

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

Нужен ли резервный кластер для небольшой компании?

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

Что произойдёт, если удалить каталог srvinfo?

Будет потерян реестр кластера: список информационных баз, настройки рабочих серверов, требования и параметры отказоустойчивости. Сами базы данных при этом не пострадают, но все базы придётся заново регистрировать в кластере, а настройки — восстанавливать вручную. Поэтому srvinfo включают в план резервного копирования.

Можно ли смешивать Windows и Linux серверы в одном кластере?

Технически кластер может включать серверы на разных ОС при условии одинаковой версии платформы. Однако смешанная среда усложняет диагностику и обновления, поэтому на практике чаще выбирают однородную инфраструктуру.