Администрирование · 12 мин
Кластер серверов 1С:Предприятия: что это и как он работает
Что такое кластер серверов 1С:Предприятия, из чего он состоит, как работают процессы ragent, rmngr и rphost, когда нужен кластер и как его администрировать.
Кластер серверов 1С:Предприятия — это компонент серверной части платформы, который объединяет один или несколько физических (или виртуальных) серверов в единую систему обработки запросов пользователей. Именно кластер принимает подключения клиентских приложений, распределяет нагрузку между рабочими процессами и обеспечивает взаимодействие с сервером баз данных. Без кластера работа в клиент-серверном варианте невозможна: файл с базой лежит не в общей папке, а управляется СУБД, а посредником между пользователями и данными выступает именно сервер 1С.
Понятие «кластер» здесь часто вводит в заблуждение. Даже если сервер 1С установлен на одной единственной машине, кластер всё равно существует — он создаётся автоматически при установке сервера и называется «локальный кластер». То есть кластер — это не обязательно отказоустойчивая ферма из нескольких машин, а прежде всего управляющая структура: набор процессов, списков информационных баз, сеансов и соединений.
Администратор сталкивается с кластером ежедневно, даже если не осознаёт этого: регистрация новой информационной базы, блокировка сеансов на время обновления, просмотр активных пользователей, настройка требований назначения функциональности — всё это операции с кластером через консоль администрирования. Понимание его устройства позволяет грамотно масштабировать систему, диагностировать «зависания» и не допускать типичных ошибок вроде нехватки лицензий или переполнения памяти рабочими процессами.
Из чего состоит кластер: основные процессы
Работающий кластер — это несколько системных процессов, каждый из которых выполняет свою роль. В диспетчере задач сервера их легко отличить по именам исполняемых файлов платформы.
Процесс ragent (агент сервера) — точка входа в кластер. Он слушает сетевой порт (по умолчанию 1540), ведёт реестр кластера — файл с описанием информационных баз, настроек и рабочих серверов — и отвечает на запросы консоли администрирования. Если агент остановлен, кластер недоступен целиком.
Процесс rmngr (менеджер кластера) управляет распределением: решает, какой рабочий процесс обслужит конкретное обращение, следит за требованиями назначения функциональности и сериализацией вызовов. Менеджеров может быть несколько — один активный, остальные резервные.
Процессы rphost (рабочие процессы) — основные «трудяги». Именно в них исполняется код конфигурации: проведение документов, построение отчётов, фоновые задания. Каждый rphost потребляет оперативную память, и при росте числа пользователей их количество увеличивают. Дополнительно работает rphost-служебный и процесс rmnds в некоторых конфигурациях, но ключевая тройка — ragent, rmngr, rphost.
Как клиент подключается к базе через кластер
Когда пользователь запускает тонкий или толстый клиент и выбирает базу, происходит последовательность обращений. Сначала клиент обращается к агенту сервера по имени компьютера и порту (например, server1c:1540). Агент возвращает адрес менеджера кластера, менеджер подбирает подходящий рабочий процесс, и дальше клиент работает напрямую с конкретным rphost. Рабочий процесс, в свою очередь, обращается к СУБД (MS SQL, PostgreSQL, Oracle, IBM Db2) за данными.
Важное следствие этой схемы: между клиентом и сервером 1С, а также между сервером 1С и СУБД должны быть открыты сетевые порты. По умолчанию используются диапазоны 1540–1541 для агента, 1560–1591 для рабочих процессов. Если часть пользователей «не видит» сервер, а часть работает — первым делом проверяют файрвол и доступность этих портов.
Ещё одно следствие — сессии «живут» внутри рабочих процессов. Если rphost аварийно завершился, все пользователи, которых он обслуживал, получают ошибку соединения и вынуждены перезайти. Незавершённые транзакции при этом откатываются на стороне СУБД, поэтому данные не портятся, но несохранённая работа пользователя теряется.
netstat -an | findstr "1540 1541 1560"Эта команда на Windows-сервере показывает, слушаются ли стандартные порты кластера. Если порт 1540 отсутствует в выводе — агент сервера не запущен или работает на нестандартном порту.
Один сервер или несколько: когда нужен настоящий кластер
Слово «кластер» в контексте 1С используется в двух смыслах. Локальный кластер на одной машине покрывает потребности большинства небольших внедрений: десятки одновременных пользователей спокойно обслуживаются одним сервером с несколькими rphost. Многосерверный кластер оправдан в двух случаях — когда требуется отказоустойчивость и когда один сервер физически не справляется с нагрузкой.
Отказоустойчивость достигается добавлением резервных рабочих серверов и настройкой уровня отказоустойчивости кластера. Если основной сервер выходит из строя, кластер переключает обслуживание на резервный. При этом важно понимать ограничение: кластер 1С не решает вопрос отказоустойчивости самой базы данных — СУБД защищается собственными средствами (репликация, AlwaysOn, кластеризация SQL Server).
Варианты организации сервера 1С
Подходит для небольших и средних внедрений. Простое администрирование, но отказ сервера останавливает работу всех пользователей.
Нужен при жёстких требованиях к непрерывности работы и большом числе пользователей. Требует больше лицензий, ресурсов и квалификации администратора.
Вариант для совсем маленьких команд. Кластер не используется вовсе, но есть ограничения по одновременной работе и риски целостности данных при сбоях сети.
Масштабирование нагрузки — второй мотив. Когда один rphost упирается в лимиты памяти, а сервер — в ресурсы процессора, добавляют рабочие серверы и распределяют по ним процессы. Требования назначения функциональности позволяют, например, выделить отдельный сервер под фоновые задания, чтобы регламентные операции не мешали интерактивной работе пользователей.
Консоль администрирования: основные операции с кластером
Управление кластером выполняется через консоль «Администрирование серверов 1С:Предприятия» (оснастка MMC на Windows) или через кроссплатформенные утилиты rac/ras. Консоль подключается к агенту сервера и показывает дерево: кластеры → рабочие серверы → информационные базы → сеансы и соединения.
Типовые задачи администратора: регистрация новой информационной базы с указанием типа СУБД и параметров подключения; установка блокировки начала сеансов на время регламентных работ; принудительное завершение «зависших» сеансов; просмотр, какие пользователи сейчас работают и в каких процессах; настройка параметров кластера — интервалов перезапуска рабочих процессов, допустимого объёма памяти, уровня отказоустойчивости.
- 1Откройте консоль администрирования и подключитесь к агенту сервера по имени и порту
- 2Разверните нужный кластер, откройте ветку «Информационные базы» и выберите создание новой
- 3Укажите имя базы, тип СУБД, сервер баз данных, имя базы на сервере СУБД и учётные данные
- 4При необходимости сразу задайте блокировку сеансов и разрешение выдачи лицензий
- 5Проверьте подключение: запустите клиент 1С и войдите в зарегистрированную базу
Отдельное внимание — учётная запись, под которой работает служба агента сервера. По умолчанию создаётся пользователь USR1CV8. Этой учётной записи нужны права на каталоги сервера (srvinfo, где лежит реестр кластера и журналы), а при использовании Windows-аутентификации к СУБД — и соответствующие права на базы данных. Смена пароля этого пользователя без перенастройки службы — частая причина внезапной остановки кластера.
Типичные проблемы и как их диагностировать
Большинство жалоб пользователей сводится к трём симптомам: «не пускает в базу», «всех выкинуло», «всё тормозит». За каждым стоит свой класс причин на уровне кластера.
«Не пускает в базу» чаще всего означает недоступность агента (служба остановлена, порт закрыт), отсутствие свободных лицензий или включённую блокировку сеансов, о которой забыли после обновления. «Всех выкинуло» — признак аварийного завершения или перезапуска рабочих процессов: проверяйте журнал событий операционной системы и технологический журнал платформы. «Всё тормозит» — повод смотреть на загрузку памяти и процессора rphost, а также на взаимные блокировки на стороне СУБД.
Как проверить состояние кластера
Служба запущена, порт 1540 прослушивается
Служба остановлена или завершается с ошибкой после старта
Распределение памяти равномерное, запас свободной памяти сервера есть
Один процесс занимает почти всю память, начинается свопинг
Сеансы соответствуют реально работающим пользователям
Много «спящих» сеансов от давно закрытых клиентов
Нет повторяющихся ошибок процессов rphost
Регулярные аварийные завершения процессов
Лицензии и кластер: что важно учесть
Клиентские лицензии 1С могут выдаваться сервером 1С — этот механизм настраивается на уровне информационной базы в кластере (флаг «Выдавать лицензии сервером»). Это удобно для терминальных и веб-доступов, но требует, чтобы файлы лицензий были активированы на самом сервере или были доступны через HASP-ключ в сети.
При построении многосерверного кластера лицензионные вопросы усложняются: для каждого рабочего сервера, как правило, требуется лицензия на сервер 1С соответствующего уровня. Перед расширением кластера стоит заранее сверить имеющиеся лицензии с планируемой архитектурой — иначе дополнительный сервер просто не запустится в составе кластера или не сможет выдавать клиентские лицензии.
FAQ
Чем кластер серверов 1С отличается от сервера баз данных?
Это разные уровни. Сервер 1С (кластер) исполняет код прикладного решения и управляет сеансами пользователей, а СУБД хранит сами данные и выполняет запросы. Кластер обращается к СУБД как клиент. Для отказоустойчивости нужно защищать оба уровня независимо.
Можно ли работать без кластера вообще?
Да, в файловом варианте работы кластер не используется — клиенты обращаются к файлу базы напрямую или через веб-сервер. Но этот режим имеет ограничения по числу одновременных пользователей и устойчивости к сбоям, поэтому для сколько-нибудь заметных внедрений выбирают клиент-серверный вариант с кластером.
Сколько рабочих процессов rphost должно быть в кластере?
Универсального числа нет: оно зависит от количества пользователей, тяжести операций и объёма памяти сервера. Практический подход — следить за потреблением памяти каждым процессом и добавлять процессы, когда существующие приближаются к безопасному пределу, не доводя сервер до свопинга.
Что делать, если в консоли видны «спящие» сеансы уволенных или отключившихся пользователей?
Такие сеансы можно завершить принудительно через консоль администрирования. Чтобы проблема не повторялась, настройте в параметрах информационной базы таймауты завершения неактивных сеансов и разрыв соединений при неактивности.
Нужен ли отказоустойчивый кластер небольшой компании?
Чаще всего нет. Для небольшого коллектива достаточно локального кластера на одном сервере плюс регулярные резервные копии баз. Многосерверная схема оправдана, когда простой даже в десятки минут критичен для бизнеса или нагрузка превышает возможности одной машины.
Где кластер хранит свои настройки?
В каталоге srvinfo (путь задаётся при установке, обычно внутри каталога сервера 1С). Там лежит реестр кластера со списком баз и параметров, а также служебные журналы. Удаление или повреждение этого каталога приводит к потере конфигурации кластера, поэтому его включают в план резервного копирования.
Что важно запомнить
Кластер серверов 1С — это управляющая структура из процессов ragent, rmngr и rphost, которая связывает пользователей с базой данных и существует даже на одиночном сервере. Многосерверный кластер нужен для отказоустойчивости и масштабирования, но не заменяет защиту СУБД. Основа стабильной работы — контроль памяти рабочих процессов, корректное администрирование сеансов и резервное копирование реестра кластера и баз данных.