Кластер серверов 1С
Содержание
- Кластер 1С
- 1С:Предприятие 8.1
- Схемы архитектур кластеров серверов 1С
- Результаты тестирования схем архитектур кластеров серверов 1С
Кластер серверов — это распределённая система, которая состоит из нескольких связанных между собой компьютеров (серверов) и используется как единый, унифицированный вычислительный ресурс.
Известны такие основные виды кластеров:
· Кластеры высокой доступности HA (High-availability), которые также называют отказоустойчивыми кластерами;
· Кластеры с балансировкой нагрузки LBC (Load balancing clusters);
К кластерам иногда относят также grid-системы распределённых вычислений, которые могут состоять из территориально разнесенных и некоторым образом связанных между собой компьютеров или серверов, выполняющих одну вычислительную задачу. Однако, они взаимодействуют между собой значительно меньше, чем серверы в кластерах, поэтому относить их к кластерам не совсем корректно.
Основные возможности кластера серверов:
- может работать как на нескольких, так и на одном компьютере (рабочих серверах);
- каждый сервер кластера может поддерживать работу как одного, так и нескольких рабочих процессов, которые обслуживают подключения клиентов в данном кластере;
- включение новых клиентов в рабочие процессы кластера происходит на основе анализа и прогнозирования загруженности рабочих процессов и серверов;
- процессы кластера могут быть запущены как сервис и как приложение.
Кластер 1С
Кластер серверов 1С:Предприятия 8 – это логическая система, представляющая собой совокупность процессов, которые обслуживают множество баз данных.
Традиционно платформа 1С работала в режиме «клиент-сервер» и данные хранились в базе данных под управлением SQL-сервера Microsoft. Бизнес-логика при этом работала на машине-клиенте.
В версии 1С:Предприятие 8.0 впервые была использована архитектура «клиент – сервер приложений – СУБД».
Сервер 1С в платформе 8.0 построен по модели компонентного объекта СОМ+ (Component Object Model), разработанной Microsoft для того, чтобы взаимодействующие компоненты объекта могли совместно использоваться во многих программах.
Платформу 1С:Предприятие 8.0 было легко настраивать, однако, её масштабируемость, доступность и балансировка нагрузки оставляли желать лучшего.
Поэтому в версии 1С:Предприятие 8.1 была использована концепция вычислительного кластера. Сервер 1С в этой версии является платформенно-независимым, и может работать как на Windows, так и на Linux.
Процессы сервера в версии 8.1 разбиты на три вида:
- рабочий процесс, обслуживающий клиентов и исполняющий прикладной код;
- процесс агента сервера, запускающий все другие виды процессов, а также ведущий список кластеров на сервере;
- управляющий процесс «менеджер кластера».
В составе кластера может быть более одного рабочего процесса, причём, рабочие процессы могут исполняться на разных физических серверах, что позволяет обеспечить требуемую масштабируемость.
Рис. 1. Кластер 1С:Предприятие 8.1 (источник: 1С).
Центральный сервер кластера – один из компьютеров, которые входят в состав кластера. Центральный сервер обслуживает клиентские соединения, управляет работой всего кластера и хранит его реестр.
Клиентское приложение обращается к центральному серверу кластера для установки соединения с рабочим процессом. На основе анализа загруженности рабочих процессов, центральный сервер устанавливает соединение клиентского приложения к соответствующему рабочему процессу. Данный процесс может быть активирован на любом сервере кластера, в т.ч и на центральном сервере. Обслуживание соединения и аутентификация пользователя поддерживаются этим рабочим процессом до прекращения работы клиента с базой данных.
Процесс агента сервера (ragent) обеспечивает работу компьютера как составной части кластера. Процесс ragent также ведёт реестр кластеров, которые находятся на рабочем сервере.
1С:Предприятие 8.1
В следующей версии 8.3 была улучшена масштабируемость, отказоустойчивость, балансировка нагрузки, а также усовершенствован механизм резервирования кластеров.
Масштабируемость. Масштабируемость кластера серверов в версии 8.3 реализуется следующими способами:
- увеличение количества менеджеров в кластере и распределение сервисов между ними;
- увеличение количества рабочих процессов на рабочем сервере;
- увеличение количества рабочих серверов, из которых состоит кластер;
- использование нескольких менеджеров одновременно.
Отказоустойчивость. При возникновении ошибки рабочего процесса по каким-либо причинам, клиентское приложение может повторить вызов процесса, установив новое соединение с ним. При неудаче повторного вызова, клиент получит сообщение о неисправимой ошибке, в таком случае клиентское приложение будет перезапущено. Если произошел обрыв сетевого соединения, вызов также повторяется, и для клиентского приложения это происходит практически незаметно. Каждому пользователю обеспечивается собственный сеанс связи и кластер сохраняет данные о подключавшихся пользователях и об их действиях. При разрыве физического соединения, кластер находится в состоянии ожидания соединения с данным пользователем. После того, как соединение восстановится, пользователь может продолжить работу с момента разрыва связи. Повторное подключение к базе данных при этом не потребуется.
Три основных способа повышения отказоустойчивости:
- резервирование самого кластера;
- резервирование рабочих процессов;
- повышение устойчивости к обрыву канала связи.
Несколько кластеров могут объединяться в группу резервирования с автоматической синхронизацией. В случае выхода из строя активного кластера, его заменяет следующий рабочий кластер группы. После восстановления отказавшего кластера, он вновь становится активным после синхронизации данных.
Балансировка нагрузки. Балансировки нагрузки требуется, если в систему входит новый клиент, или существующий клиент совершает новый вызов рабочего процесса. Менеджер кластера определяет, на какой сервер и рабочий процесс наиболее оптимально направить вызов клиента. Запрос нового клиента направляется на наименее загруженный в данный момент сервер. Новый запрос от существующего клиента чаще всего направляется на сервер и рабочий процесс, который использовался ранее, а случае недоступности этого процесса по причине его сбоя – на другой процесс и/или другой сервер.
В версии 8.2 резервирование кластеров производилось по схеме Active/Passive для рабочего и резервного кластера. В случае недоступности рабочего кластера клиентские вызовы автоматически перенаправлялись на резервный кластер.
В новой версии 1С:Предприятие 8.3 схема Active/Passive для кластеров больше не используется, и имеется только один распределённый кластер, в которой запросы на отказавший узел распределяются между оставшимися рабочими узлами.
Схемы архитектур кластеров серверов 1С
Кластер 1С с катастрофоустойчивой синхронной репликацией SQL AlwaysOn
Кластеризация баз SQL AlwaysOn использует принцип автоматической онлайн-синхронизации таблиц между основным и резервным SQL-серверами. Катастрофоустойчивость обеспечивается благодаря использованию двух независимых серверов SQL. Репликация SQL Always On доступна только в версии Microsoft SQL Enterprise.
Рис. 2. Схема катастрофоустойчивого кластера серверов 1С 8.3 SQL AlwaysOn (источник: 1С).
В последнее время предприятия стали гораздо больше внимания уделять вопросу безопасности данных в соответствии с требованиями ФЗ-152, а также для минимизации возможности взлома баз данных и пр. Поэтому в такой схеме часто используют шифрование баз данных при репликации.
Кластер 1С "active-active" с одним сервером баз данных
Если в первую очередь требуется повышенная производительность, то лучше использовать увеличение числа вычислительных кластеров 1С с единственным сервером баз данных для повышения скорости обмена данными.
Рис. 3. Кластер 1С "active-active" с одним сервером баз данных.
Сервер 1С и сервер SQL на одном аппаратном сервере с SharedMemory.
В случае ограничения ресурсов на предприятии, можно использовать схему расположения сервера 1С и SQL на одном аппаратном сервере без виртуализации с общей памятью SharedMemory.
Рис. 4. Сервер 1С и сервер SQL на одном аппаратном сервере с SharedMemory.
Результаты тестирования схем архитектур кластеров серверов 1С
Результаты тестирования по т.н. «тесту Гилева» и методике специализированного центра тестирования «Тест центр» с использованием инструментария 1С: КИП приведены в таблице ниже.
«Тест Гилева» оценивает скорости работы в одном потоке, включая скорость отрисовки интерфейса пользователя на мониторе, обслуживание ресурсов виртуальной среды, повторный ввод документов, и т.п.
С помощью теста «Тест центр» можно моделировать работу 1С:Предприятие без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях.
Источник: