+7 495 230 03 03 8 800 222 50 03

Кластер серверов 1С – построение высоконагру­женных систем

Дата публикации: 14 февраля 2017
Кластер серверов 1С – построение высоконагру­женных систем

В данной статье будут рассмотрены несколько вариантов структуры 1С для высоконагруженных систем (от 200 активных пользователей), построенных на базе клиент-серверной архитектуры – их преимущества и недостатки, стоимость инсталляции и сравнительные тесты производительности каждого варианта.

Мы не будем проводить описание, оценку и сравнение общепринятых и всем давно известных классических схем построения серверной структуры 1С, таких как отдельный сервер 1С и отдельный сервер СУБД, либо кластер Microsoft SQL с кластером 1С. Таких обзоров великое множество, в том числе и проведенных самими производителями программных продуктов. Мы предложим обзор схем построения структуры 1С, которые встречались за последние несколько лет в наших ИТ-проектах для среднего и крупного бизнеса.

Требования к высоконагру­женным системам 1С

Высоконагруженные системы 1С, работающие с крупными массивами данных в режиме 24/7/365 подвержены факторам риска, которые в стандартных ситуациях обычно не наблюдаются. Как следствие, для их устранения и упреждения требуется применение особенных схем архитектуры 1С и новых технологий.

Катастрофоустойчивость СУБД. В процессе проектирования архитектуры 1С делается упор на вычислительные мощности и высокую доступность сервисов, выраженную в их кластеризации. Серверы 1С:Предприятие по умолчанию способны работать в дублирующем кластере, а для кластера СУБД обычно применяется промышленная система хранения данных (СХД) и технология кластеризации (к примеру, Microsoft SQL Cluster). Однако, ситуация становится плачевной, когда проблемы случаются с самой СХД (зачастую, по нашему опыту последних лет – это проблемы программного характера). Тогда у ИТ-инженера резко возникают две проблемы – где взять актуальные данные и куда их развернуть в кратчайшие сроки, поскольку система хранения данных с нужным объемом быстрого массива дисков недоступна.

Требования к безопасности базы данных. Работая с проектами среднего и крупного бизнеса, мы регулярно сталкиваемся с требованиями по защите персональных данных (в частности, для выполнения пунктов ФЗ-152). Одним из условий выполнения этих требований является обеспечение должной сохранности персональных данных, что требует шифрования базы данных 1С.

Высокая загрузка вычислительных ресурсов. При разработке схемы высоконагруженных систем 1С обычно обращают внимание в первую очередь на параметры дисковой системы вводавывода, на которой расположены базы данных. Но помимо этого, еще существует активная утилизация ресурсов ЦПУ и потребление ОЗУ сервером 1С. Зачастую именно этого типа ресурсов и не хватает, возможности аппаратной модернизации текущего сервера 1С исчерпываются и требуется добавление новых серверов 1С , работающих с единым сервером СУБД.

Схемы организации кластеров серверов 1С

Схема с кластером 1С-серверов, подсоединенным к кластеру с синхронной репликацией SQL AlwaysOn по протоколу IP.

Данная схема является одним из качественных вариантов решения проблемы катастрофоустойчивости базы данных 1С (см. Рисунок 1). Технология кластеризации баз SQL AlwaysOn основана на принципе онлайн-синхронизации таблиц SQL между основным и резервным серверами без вмешательства конечного пользователя. С помощью SQL Listener есть возможность переключиться на резервный сервер SQL в случае выхода из строя основного, что позволяет назвать данную систему полноценным катастрофоустойчивым кластером SQL, благодаря использованию двух независимых серверов SQL. Технология SQL Always On доступна только в версии Microsoft SQL Enterprise.

Рисунок 1 – схема кластера серверов 1С + SQL AlwaysOn

Вторая схема идентична первой, добавлено только шифрование баз SQL на основном и резервном сервере.

Мы уже упоминали о том, что работа с последними ИТ-проектами показала, что компании начали гораздо больше внимания уделять вопросу безопасности данных, по различным причинам – требования ФЗ-152, рейдерские захваты серверов, утечка данных в облаке и тому подобное. Так что считаем данный вариант схемы 1С довольно актуальным (см. Рисунок 2).

Рисунок 2 – схема кластера серверов 1С + SQL AlwaysOn с шифрованием

Кластер серверов 1С “active-active”, подсоединенный к единственному серверу СУБД по протоколу IP.

В противовес потребностям в отказоустойчивости и безопасности – некоторым структурам в первую очередь требуется повышенная производительность, так сказать «вся вычислительная мощь». Поэтому максимальный приоритет отдается увеличению количества вычислительных кластеров сервера 1С, на которые современная платформа 1С позволяет дифференцировать различные типы вычислений и фоновые задания (см. Рисунок 3). Конечно же, комплектация основных ресурсов сервера SQL тоже должна быть на уровне, однако сам сервер баз данных представлен в единственном числе (видимо, расчет идет на своевременное резервное копирование баз).

Рисунок 3 – схема кластера серверов 1С с одним сервером СУБД

Сервер 1С и СУБД на одном аппаратном сервере с SharedMemory.

Поскольку наши практические тесты ориентированы на сравнение производительности разных схем, то обязательно требуется некий эталон для сравнения нескольких вариантов (см. Рисунок 4). В качестве эталона, по нашему мнению, нужно взять схему расположения сервера 1С и СУБД на одном аппаратном сервере без виртуализации с взаимодействием по SharedMemory.

Рисунок 4 – схема сервера 1С и СУБД на одном аппаратном сервере с SharedMemory

Ниже приведена общая сравнительная таблица, в которой показаны общие результаты по ключевым критериям оценки организации структуры системы 1С (см. Таблица 1).

Таблица 1 – сравнение вариантов построения систем 1С

Критерии оценки архитектур 1С Кластер 1С + SQL AlwaysOn Кластер 1С + SQL AlwaysOn с шифрованием Кластер 1С с одним сервером СУБД Классический 1С+СУБД SharedMemory
Легкость инсталляции и обслуживания Удовл. Удовл. Хорошо Отлично
Отказоустойчивость Отлично Отлично Удовл. Не применимо
Безопасность Удовл. Отлично Удовл. Удовл.
Бюджетность Удовл. Удовл. Хорошо Отлично

Как видим, остается один важный критерий, значение которого предстоит выяснить – это производительность. Для этого мы проведем серию практических тестов на выделенном тестовом стенде.

Описание методики тестирования

Этап тестирования состоит из двух ключевых инструментов синтетической генерации нагрузки и имитации работы пользователей в 1С. Это тест Гилева (TPC-1C) и «Тест центр» из инструментария 1С: КИП.

Тест Гилева. Тест относится к разделу универсальных интегральных кроссплатформенных тестов. Он может применяться как для файлового, так и для клиент-серверного вариантов 1С:Предприятие. Тест оценивает количество работы в единицу времени в одном потоке и подходит для оценки скорости работы однопоточных нагрузок, включая скорость отрисовки интерфейса, влияния ресурсных затрат на обслуживание виртуальной среды, перепроведения документов, закрытия месяца, расчета зарплаты и т.п. Универсальность позволяет делать обобщенную оценку производительности не привязываясь к конкретной типовой конфигурации платформы. Результатом теста является сводная оценка измеряемой системы 1С, выраженная в условных единицах.

Специализированный «Тест центр» из инструментария 1С: КИП. Тест-центр – инструмент автоматизации многопользовательских нагрузочных испытаний информационных систем на платформе 1С:Предприятие 8. С его помощью можно моделировать работу предприятия без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях. Используя инструментарий 1С: КИП, на основании процессов и контрольных примеров формируется матрица «Список Объектов макета базы ERP 2.2» для сценария тестирования производительности. В макете базы 1С: ERP 2.2 генерируются обработкой данные по Нормативно-справочной информации (НСИ):

  • Несколько тысяч номенклатурных позиций;
  • Несколько организаций;
  • Несколько тысяч контрагентов.

Тест осуществляется в рамках нескольких групп пользователей. Группа состоит из 4 пользователей, у каждого из которых есть своя роль и перечень последовательных операций. Благодаря гибкому механизму задания параметров для тестирования, можно запускать тест на разное количество пользователей, что позволит оценить поведение системы при различных нагрузках и определить параметры, которые могут привести к снижению показателей производительности. Проводится 3 теста по 3 итерации в которых разработчик 1С запускает тест с эмуляцией работы пользователей и замеряет время выполнения каждой операции. Выполняются замеры всех трех итераций для каждой из схем структуры 1С. Результатом теста является получение среднего времени выполнения операции для каждого документа матрицы.

Показатели «Тест центра» и теста Гилева будут отражены в сводной таблице 2.

Тестовый стенд

1
Сервер терминального доступа – виртуальная машина, использовалась для управления инструментами тестирования:
  • vCPU – 16 ядер 2.6GHz
  • RAM – 32 ГБ
  • Io: Intel Sata SSD Raid1
2
Сервер 1С и СУБД – физический сервер:
  • CPU – Intel Xeon Processor E5-2670 8C 2.6GHz – 2 шт
  • RAM – 96 ГБ
  • Io: Intel Sata SSD Raid1
  • Роли: Сервер 1С 8.3.8.2137, Сервер MS SQL 2014 SP 2
3
Сервер 1С и СУБД – физический сервер:
  • CPU – Intel Xeon Processor E5-2670 8C 2.6GHz – 2 шт
  • RAM – 96 ГБ
  • Io: Intel Sata SSD Raid1
  • Роли: Сервер 1С 8.3.8.2137, Сервер MS SQL 2014 SP 2

Выводы

Можем сделать вывод, что по среднему времени выполнения операции наиболее оптимальной является схема №3 «Кластер серверов 1С “active-active”, подсоединенный к единственному серверу СУБД по протоколу IP» (см. Таблица 2). Для обеспечения отказоустойчивости такой архитектуры мы рекомендуем строить классический отказоустойчивый кластер MSSQL с размещением базы данных на отдельной СХД.

Важно отметить, что наиболее оптимальное соотношение факторов минимизации простоя, отказоустойчивости и сохранности данных – у схемы №1 «Кластер 1С-серверов, подсоединенный к кластеру с синхронной репликацией SQL AlwaysOn по протоколу IP», при этом падение производительности по отношению к самому производительному варианту составляет примерно 10%.

Как мы видим по результатам тестов, синхронная репликация базы SQL AlwaysOn достаточно негативно влияет на производительность. Объясняется это тем, что система SQL ждет окончания репликации каждой транзакции на резервный сервер, не позволяя работать с базой в это время. Этого можно избежать если настроить асинхронную репликацию между MSSQL серверами, но при таких настройках мы не получим автоматического переключения приложений на резервную ноду в случае сбоя. Переключение придется выполнять вручную.

На базе облака EFSOL мы предлагаем нашим клиентам кластер серверов 1С в аренду. Это позволяет существенно сэкономить средства на построение собственной отказоустойчивой архитектуры для работы с 1С.

Таблица 2 – Итоговая таблица (сокращенный вариант) практических испытаний разных вариантов построения систем 1С

Схема архитектуры 1С Среднее время выполнения операции, сек Средний процент отклоне­ния от эталона Тест Гилева, усл. ед.
50 пользова­телей 100 пользова­телей 150 пользова­телей
Схема структуры №1 «Кластер 1С-серверов, подсоединенный к кластеру с синхронной репликацией SQL AlwaysOn по протоколу IP» 0,42245 0,44433 0,4391 На 14% 25,13
Схема структуры №2 «Кластер 1С-серверов, подсоединенный к кластеру с синхронной репликацией SQL AlwaysOn по протоколу IP с шифрованием» 0,435505 0,425227 0,425909 На 12% 21,65
Схема структуры №3 «Кластер серверов 1С «active-active», подсоединенный к единственному серверу СУБД по протоколу IP.» 0,40901 0,41368 0,42852 На 9% 28,09
Эталон. Схема структуры №4 «Расположение сервера 1С и СУБД на одном аппаратном сервере без виртуализации с взаимодействием по SharedMemory» 0,36020 0,42385 0,36335 34,23
Лого ES мини

EFSOL

  • https://plus.google.com/+AlekseyMaksimovFromRussiaWithLove Aleksey Maksimov

    Здравствуйте. А почему не рассматривается вариант с классическим Failover-кластером SQL Server на редакции Standard (active-passive) ?
    SQL Server Enterprise со своим AlwaysOn стоит чуть меньше самолёта.

    • https://efsol.ru/ EFSOL

      Здравствуйте. Не рассматривали по нескольким причинам
      1) В интернет тестов по классическому кластеру SQL великое множество. Мы хотели продемонстировать менее заезженные модели архитектур.
      2) Классический кластер требует единого хранилища СХД. А по нашему опыту – даже самые именитые брендированые СХД выходят из строя с утерей информации.
      Варианты же с организацией общего логического тома на нескольких распределенных физических хранилищах, по нашему мнению, имеют сомнительную надежность и пока что слабо развиты для Enterprise-сектора.
      3) Статью писали с ориентированием на высоконагруженные системы, т.к. именно там мы сталкивались с проблемой торможения классического кластера SQL на СХД. А по нашему опыту, наполнение брендовых СХД SSD-дисками по стоимости гораздо выше закупки SQL Enterprise.
      4) В последнее время повсеместно распространена модель аренды ПО Microsoft SPLA. В таком случае стоимость лицензии SQL Enterprise в месяц довольно необременительна

      • Аноним

        Как вы его, а))

        • Аноним

          Как? По моему все аргументы высосаны из пальца.
          п.1 – пропустим, так как не аргумент вовсе.
          п.2. – тут манипуляция понятий, ну или их недопонимание. попытка смешать в одну кучу отказоустойчивость и повышение доступности. это разные вещи и достигаются они разными инструментами. и это никак не делает интересней использование убойно дорогого ынтырпраза скуля.
          п.3 – это не правда. торомзить классический кластер может только изза кривых рук (ваврианты и/или)
          А: сетевика
          Б:администратора сервера
          В:DBA
          п.4 – не нужно приплетать схемы с арендой к простому вопросу сравнения решений на лицензиях постоянного действия. это как бы тоже не совсем честно.

          • https://efsol.ru/ EFSOL

            Добрый день

            п2. Отказоустойчивость и высокая доступность не одно и тоже.
            Первая является средством достижения второй.
            Но здесь суть ответа была в том, что в классическом вариант при использовании версии STD, нужно использовать единое хранилище.

            п3. Не спорим с Вашими аргументами. Но здесь был ответ на вопрос почему версия STD.
            п4. Возможно. Но так как в вопросе было упоминание стоимости, решили этот момент также написать.

  • Аноним

    Добрый день. Мы крупная торговая компания и производим более 1000 “отгрузок” в день. У нас есть 4 склада и 2 офиса. Перед нами стоит задача объединить все склады и офисы в одну систему и работать в единой 1С. Для нас очень важна отказоустойчивость, т.к. каждый сбой в работе сервера или 1С, приводит к убыткам компании. На сколько кластеризация сервера и 1С сможет помочь решить нашу задачу и какой уровень отказоустойчивости можно получить в такой реализации?

    • https://efsol.ru/ EFSOL

      Здравствуйте. Мы твердо считаем, что каждый инструмент хорош для своего дела. Конечно же, в данном случае “отказоустойчивость единой системы 1С” и “кластеризация сервисов” – слова синонимы. Хорошим решением было бы поставить в Вашей высокотехнологичной серверной комнате сервера-носители, единую систему хранения данных, оптические коммутаторы и сделать классический отказоустойчивый кластер сервисов + еще и подстраховку аппаратных платформ в виде средств миграции либо репликации виртуальных машин.

      Но:
      * Вдруг у Вас единая база 1С является очень требовательной к производительности и Вам нужен аппаратный сервер 1С? Тогда нужно смотреть в сторону AlwaysOn.
      * Вдруг у Вас проблемы с техническим обеспечением локального офиса, а требования к нагрузкам не “перевешивают” крупные капитальные затраты на вышеуказанную собственную структуру и лицензии? Тогда Вам идеально подойдет VDS (личный виртуальный сервер в Облаке со своими лицензиями и обслуживанием).
      * А если ваши склады и офисы из-за географического положения имеют ужасные каналы Интернет – о какой удаленной работе может быть речь? Тогда нужно рассматривать варианты с РИБ (распределенной базой данных), локальными недорогими серверными структурами на каждом объекте с обеспечением требуемого технического уровня.

      Рекомендуем пообщаться с нашими ИТ-архитекторами. Их задача – понять, что реально поможет решить Ваши проблемы.

  • Аноним

    Добрый день, несколько раз перечитал статью, и нигде не увидел описание работы кластера 1С, хотя у него есть нюансы, как и у фермы терминальных серверов. Если, например, с СУБЛ в Active-Active режиме вопросов нет, активные сессии сохраняеются при сбое одной из нод, то в 1с с этим проблема, не правда ли? Почему нигде не указан такой технический нюанс, что кластер 1С – не такой уже и кластер и работает так сказать в режиме 0-RAID, а еще масса нюансов с COM-Соедиениями и другими проблемами?

    • https://efsol.ru/ EFSOL

      Здравствуйте. Спасибо за Ваше замечание. Да, Вы правы – кластер 1С работает в режиме фермы, т.е. при падении одной из нод сервера 1С:Предприятие – сессии пользователей 1С, находящиеся на этом сервере, будут завершены и пользователи вынуждены будут перезайти в программу 1С (переподключиться к рабочему серверу 1С). Основной плюс этого решения в том, что пользователи уже через 10 секунд продолжат работу в базе 1С.

  • Аноним

    Добрый день. Спасибо за довольно крутой обзор нераспространенных архитектур. В тексте встречал фразу “катастрофоустойчивость” – были ли у вас действительно подобные проекты? Как синхронная репликация отрабаывает, если SQL сервера расположены в разных датацентрах и, например, в разных странах, когда отклик считается в 10-ках мс? КАк себя ведет система, оправдано ли использование такой технологии?

    • https://efsol.ru/ EFSOL

      1. Да, подобные проекты прорабатывались, дата-центры находились в разных районах Москвы.
      2. Синхронная репликация при отклике более 10 мс отрабатывает не очень хорошо. При плотной загрузке 1С будут ощущаться притормаживания из-за ожидания проведения транзакции всеми участниками кластера SQL. Если есть необходимость в резервировании информации онлайн между дата-центрами на большом расстоянии – можно арендовать MPLS-туннели по оптическим каналам, либо как более бюджетное решение – перейти на асинхронную репликацию.
      3. Система ведет себя стабильно, использование такой технологии более чем оправдано, т.к. это единственная работоспособная схема, по нашему мнению, не имеющая единой аппаратной точки сбоя с практически 100% сохранением актуальных данных в базе SQL.

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.