Кластер серверов 1С:Предприятия 8 (1C:Enterprise 8 Server Cluster)
Кластер серверов 1С:Предприятия 8 является основным компонентом платформы, который обеспечивает взаимодействие между системой управления базами данных и пользователем в случае варианта клиент-серверной работы. Кластер дает возможность организовать бесперебойную, устойчивую к отказам, конкурентную работу для значительного количества пользователей с объемными информационными базами.
Кластер серверов 1С:Предприятия 8 – это логическое понятие, которое обозначает совокупность процессов, которые обслуживают один и тот же комплект информационных баз.
Можно выделить следующие возможности кластера серверов, как основные:
- возможность функционировать как на нескольких, так и на одном компьютере (рабочих серверах);
- каждый рабочий сервер может поддерживать функционирование как одного, так и нескольких рабочих процессов, которые обслуживают клиентские соединения в границах этого кластера;
- включение новых клиентов в рабочие процессы кластера происходит, основываясь на долгосрочном анализе статистики загруженности рабочих процессов;
- взаимодействие всех процессов кластера между собой, с клиентскими приложениями и сервером баз данных осуществляется по протоколу TCP/IP;
- запущены процессы кластера, могут быть как сервис, так и как приложение
Клиент-серверный вариант. Схема работы
При этом варианте работы с сервером взаимодействует клиентское приложение. Кластер серверов, в свою очередь, взаимодействует с сервером баз данных.
Роль центрального сервера кластеров играет один из компьютеров, которые входят в состав кластера серверов. Кроме того, что центральный сервер обслуживает клиентские соединения, он еще управляет работой, в целом, всего кластера и хранит реестр данного кластера.
Кластер адресуется для клиентского соединения по имени центрального сервера и, возможно, номеру сетевого порта. В случае если сетевой порт используется стандартный, то для соединения хватает просто указать имя центрального сервера.
Во время установки соединения к центральному серверу кластера обращается клиентское приложение. Основываясь на анализе статистики загруженности рабочих процессов, центральный сервер переправляет клиентское приложение к необходимому рабочему процессу, который должен его обслуживать. Данный процесс может быть активирован на любом рабочем сервере кластера, в частности и на центральном сервере.
Обслуживание соединения и аутентификация пользователя поддерживаются этим рабочим процессом до момента прекращение работы клиента с конкретной информационной базой.
Кластер серверов
Элементарный кластер серверов может представлять собой единственный компьютер и содержать только один рабочий процесс.
На рисунке можно наблюдать все элементы, которые, так или иначе, принимают участие в работе кластера серверов. Это следующие элементы:
- процессы кластера серверов:
o ragent.exe;
o rmngr.exe;
o rphost.exe; - хранилища данных:
o список кластеров;
o реестр кластера.
Процесс ragent.exe, называемый – агент сервера, обеспечивает функционирование компьютера как составной части кластера. Следовательно, компьютер, на котором запущен процесс ragent.exe, следует называть рабочим сервером. В частности одной из функциональных обязанностей ragent.exe является ведение реестра кластеров, которые находятся на конкретном рабочем сервере.
Ни реестр кластеров, ни агент сервера не являются составной частью кластера серверов, а только лишь дают возможность функционировать серверу и кластерам, расположенным на нем.
Сам кластер серверов состоит из таких элементов:
- один или несколько процессов rmngr.exe
- реестр кластера
- один или несколько процессов rphost.exe.
Менеджер кластера (процесс rmngr.exe). Он служит для управления функционирования всего кластера. В состав кластера может входить несколько процессов rmngr.exe, один их которых всегда будет главным менеджером данного кластера, а остальные процессы – дополнительными менеджерами. Центральным сервером кластера следует называть рабочий сервер, на котором действует главный менеджер кластера, и который содержит список кластера. Именно ведение реестра кластера является одной из функций главного менеджера кластера.
Рабочий процесс (процесс rphost.exe). Именно он, непосредственно, обслуживает клиентские приложения, взаимодействуя с сервером баз данных. В этом процессе могут исполняться некоторые процедуры конфигурации серверных модулей.
Масштабируемость 1С версии 8.3
Масштабируемость кластера серверов осуществляется следующими способами:
- увеличивают количество менеджеров в кластере и распределение сервисов между ними
- увеличивают количество рабочих процессов, которые функционируют на данном рабочем сервере
- увеличивают количество рабочих серверов, из которых состоит кластер.
Использование одновременно нескольких менеджеров.
Функции, которые исполняет менеджер кластера, разделяются на несколько сервисов. Данные сервисы можно назначить разным менеджерам кластера. Это дает возможность равномерно распределить нагрузку по нескольким процессам.
Однако некоторые сервисы могут быть использованы только главным менеджером кластера:
- сервис конфигурации кластера
- сервис управления предметами отладки
- сервис блокировок кластера.
Для прочих сервисов допустимы в назначение произвольные менеджеры кластера:
- сервис журналов регистрации
- сервис блокировки объектов
- сервис заданий
- сервис полнотекстового поиска
- сервис сеансовых данных
- сервис нумерации
- сервис пользовательских настроек
- сервис времени
- сервис транзакционных блокировок.
Использование одновременно нескольких рабочих процессов.
С одной стороны использование нескольких рабочих процессов дает возможность понизить нагрузку каждого конкретного рабочего процесса. С другой стороны, применение нескольких рабочих процессов приводит к более эффективному использованию аппаратных ресурсов рабочего сервера. Более того, процедура запуска нескольких рабочих процессов повышает надежность сервера, так как изолирует группы клиентов, которые работают с разными информационными базами. Рабочий процесс в кластере, в котором допустим запуск нескольких рабочих процессов, может быть перезапущен автоматически, в рамках временного интервала, указанного администратором кластера.
Возможность использования большего количества рабочих процессов (увеличение количества клиентских соединений) не увеличивая нагрузки на конкретный рабочий процесс, дает изменение, в большую сторону, количества рабочих серверов, которые входят в кластер.
Отказоустойчивость 1С версии 8.3
Устойчивость к отказам в работе кластера обеспечивается тремя направлениями:
- резервированием самого кластера
- резервированием рабочих процессов
- устойчивостью к обрыву канала связи.
Резервирование кластера 1С версии 8.3
Несколько кластеров объединяются в группу резервирования. Кластеры, которые находятся в такой группе, автоматически синхронизируются.
В случае выхода из строя активного кластера, его заменяет следующий рабочий кластер группы. После того, как неработоспособный кластер будет восстановлен, он станет активным после синхронизации данных.
Резервирование рабочих процессов 1С версии 8.3
Для каждого из рабочих процессов есть возможность указания вариантов его использования:
- использовать
- не использовать
- использовать как резервный.
В случае аварийного завершения работы какого-либо процесса, кластер начинает использовать вместо него неактивный на данный момент резервный процесс. При этом происходит автоматическое перераспределение имеющейся на него нагрузки.
Устойчивость 1С версии 8.3 к обрыву канала связи
Так как каждому пользователю обеспечивается собственный сеанс связи, то кластер сохраняет данные о подключавшихся пользователях и о том, какие действия ими выполнялись.
При исчезновении физического соединения кластер будет находиться в состоянии ожидания соединения с данным пользователем. В большинстве случаев, после того, как соединение восстановится пользователь будет иметь возможность продолжить работу именно с того места, момента, на котором произошел разрыв связи. Повторное подключение к информационной базе не потребуется.
Сеансы работы в 1С версии 8.3
Сеанс дает возможность определить активного пользователя конкретной информационной базы и определить поток управления от этого клиента. Различают следующие типы сеансов:
- Тонкий клиент, Веб-клиент, Толстый клиент – эти сеансы возникают при обращении соответствующих клиентов к информационной базе
- Соединение типа «Конфигуратор» — оно возникает при обращении к информационной базе конфигуратора
- СОМ-соединение – образовывается при использовании внешнего соединения для обращения к информационной базе
- WS-соединение – возникает в случае обращения к информационной базе веб-сервера, как следствие обращения к опубликованному на веб-сервере Web-сервису
- Фоновое задание – образовывается, когда рабочий процесс кластера обращается к информационной базе. Служит такой сеанс для исполнения кода процедуры фонового задания,
Консоль кластера – создается, когда утилита администрирования клиент-серверного варианта обращается к рабочему процессу - СОМ-администратор – возникает в случае обращения к рабочему процессу с использованием внешнего соединения.
- Работа при использовании различных операционных систем
Любые процессы кластера серверов могут функционировать как под операционной системы Linux, так и под операционной системы Windows. Это достигается тем, что взаимодействие кластеров происходит под управлением протокола TCP/IP. Также в состав кластера могут входить рабочие серверы под управлением любой из этих операционных систем.
Утилита администрирования кластера серверов 8.3
В комплекте поставки системы имеется утилита для администрирования варианта клиент-серверной работы. Эта утилита дает возможность изменения состава кластера, управления информационными базами, и оперативно анализировать транзакционные блокировки.