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

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

Зачем нужен кластер серверов 1С и как он работает

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

Кластер серверов 1С — это основа клиент-серверной архитектуры платформы «1С:Предприятие». Пока база небольшая и пользователей немного, файловый режим справляется, но по мере роста числа сеансов, объёма данных и параллельных операций одиночный сервер начинает «захлёбываться»: отчёты формируются минутами, проведение документов конфликтует с блокировками, а падение единственного процесса останавливает работу всей компании. Кластер решает именно эти задачи — распределяет нагрузку между рабочими процессами и серверами, обеспечивает отказоустойчивость и контролирует доступ к данным.

Важно понимать: кластер серверов 1С — это не кластер базы данных и не кластер виртуализации. Это прослойка между клиентскими приложениями и СУБД (MS SQL Server, PostgreSQL, Oracle, IBM Db2), которая управляет соединениями, сеансами, фоновыми заданиями и лицензиями. Именно через кластер проходят все обращения пользователей к информационным базам в клиент-серверном режиме.

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

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

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

Реестр кластера хранится в каталоге srvinfo (каталог srv1cv* по умолчанию) на центральном сервере. В нём — список информационных баз, рабочих серверов, рабочих процессов, сеансов и назначенных требований функциональности. Потеря или повреждение этого каталога означает, что кластер «забывает» все настройки, поэтому каталог включают в план резервного копирования.

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

Какие задачи решает кластер

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

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

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

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

ПользователиДесятки одновременных сеансов

Файловый режим деградирует при росте параллельной работы и конфликтах блокировок

ОтчётыФормируются минутами

Одиночный процесс не справляется с параллельными тяжёлыми запросами

ПростоиПадение процесса останавливает всех

Нет резервных рабочих процессов для перехвата сеансов

Регламентные заданияМешают работе пользователей

Нет изоляции фоновой нагрузки на отдельном сервере

Когда кластер действительно необходим, а когда нет

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

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

Варианты организации работы

Файловый режим

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

Один сервер 1С + СУБД

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

Распределённый кластер

Несколько рабочих серверов, переживает отказ узла; требует продуманной настройки требований функциональности и мониторинга

Как настроить кластер: порядок действий

Базовая настройка начинается с установки сервера 1С и СУБД. Далее в консоли администрирования серверов 1С (или через утилиту rac) создаётся кластер, регистрируется информационная база с указанием сервера СУБД, имени базы и параметров безопасности. После этого проверяется подключение клиентом по имени кластера и базы.

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

Порядок развёртывания кластера
  1. 1
    Установите СУБД и создайте пустую базу данных с нужными параметрами collation
  2. 2
    Установите сервер 1С той же версии платформы, что и клиенты
  3. 3
    Зарегистрируйте кластер в консоли администрирования и создайте информационную базу
  4. 4
    Настройте учётные данные доступа к СУБД и проверьте подключение тонким клиентом
  5. 5
    Настройте число рабочих процессов и требования назначения функциональности
  6. 6
    Включите технологический журнал и мониторинг для контроля нагрузки

Для управления из командной строки используется утилита rac, которая обращается к сервису ras. Это удобно для автоматизации: создания баз, блокировки сеансов на время обновления, получения списка соединений.

bash
rac cluster list --cluster=<ид_кластера> localhost:1545

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

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

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

Производительность, мониторинг и проверка результата

После запуска кластера работа не заканчивается: нужно убедиться, что нагрузка распределяется, а не скапливается на одном процессе. Основные инструменты — консоль кластера (списки сеансов, соединений, рабочих процессов), технологический журнал для анализа длительных вызовов и блокировок, а также счётчики производительности ОС и СУБД.

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

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

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

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

Сеансы распределены между несколькими rphost

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

Все сеансы на одном процессе, остальные пустые

Память рабочих процессов
Норма

Потребление стабильно, без роста до перезапуска

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

Процессы раздуваются и аварийно завершаются

Время отклика
Норма

Типовые операции выполняются без заметных пауз

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

Рост длительных вызовов и ожиданий на блокировках в ТЖ

Фоновые задания
Норма

Выполняются на выделенном сервере или вне пиковой нагрузки

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

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

Типичные ошибки администрирования кластера

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

Типичные ошибки
01
Разные версии платформы на серверах кластера — соединения отклоняются или ведут себя непредсказуемо
02
Отсутствие резервной копии каталога srvinfo — при сбое теряется вся конфигурация кластера
03
Один rphost на всех — отказ процесса роняет все сеансы сразу
04
Игнорирование технологического журнала — проблемы диагностируются вслепую
05
Добавление процессов вместо оптимизации запросов — нагрузка на СУБД только растёт
Перед изменением настроек кластера в продуктивной среде полезно поднять тестовый кластер на копии базы и проверить там распределение нагрузки и требования функциональности. Это занимает немного времени, но исключает обрыв сеансов пользователей из-за ошибки в параметрах.
ПЗ
Практическое замечание
Итог

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

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

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

Чем кластер серверов 1С отличается от кластера СУБД?

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

Нужен ли кластер, если пользователей всего пять?

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

Что произойдёт, если упадёт центральный сервер кластера?

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

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

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

Как понять, что рабочих процессов не хватает?

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

Обязательно ли выносить СУБД на отдельный сервер?

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