Балансировка нагрузки кластера 1с сервера
Обеспечение бесперебойной и эффективной работы 1С – наиболее значимый этап проектирования ИТ-системы для бизнеса. При этом порядок архитектуры 1С сервера всегда зависит от специфики компании. Например, для небольших компаний, где доступ к программному обеспечению требуется 10-15 сотрудникам, достаточно файловой архитектуры. Такую модель может настроить сотрудник компании без специальных навыков в ИТ. Однако если речь идет о масштабных предприятиях, то файловой архитектуры недостаточно – ИТ-архитекторы выбирают трехступенчатую клиент-серверную архитектуру. Эта модель позволяет обеспечить продуктивную работу сотен и тысяч сотрудников компании, хотя и отличается сложностью настройки.
Для подключения крупных корпоративных структур одного сервера 1С недостаточно: ИТ-архитектор формирует кластер серверов 1С, который представляет собой единую систему из нескольких серверов, взаимозаменяющих и взаимодополняющих друг друга. После подключения такой системы необходимо выполнить балансировку нагрузки, чтобы обеспечить рациональное распределение процессов между серверами в зависимости от сложности задач.
Балансировка нагрузки 1С
Создание кластера 1С актуально для компаний, поскольку позволяет не только оптимизировать работу сотрудников, но также и сократить затраты на обновление программного обеспечения. В этом случае все процессы по настройке и адаптации 1С выносят на сервер, а клиенты-пользователи получают доступ к базе данных. Так, не требуется модернизация отдельных рабочих мест. Несмотря на то, что с технической точки зрения клиент-серверная архитектура сложнее по сравнению с файловой, она обеспечивает высокую скорость работы вне зависимости от технических характеристик отдельной машины. При этом для корректной работы с данными требуется установка системы управления базой данных, которую обычно выносят на отдельный сервер.
Кластер 1С предполагает дубликаты серверов на случай внезапного или планового выхода из строя одного из составляющих системы. Благодаря балансировке нагрузки, встроенный алгоритм утилиты позволяет перераспределять задачи между отдельными серверами и обеспечивать максимальную производительность каждого сотрудника. При этом утилита оценивает различные факторы: например, количество подключенных клиентов, их уровень вовлеченности, сложность задач и т.д.
Как настроить 1С на рабочем сервере
Формально для клиент-серверной архитектуры допустимо размещение кластера 1С и соответствующей базы данных на одном компьютере, но в большинстве случаев ИТ-инженеры используют различные машины для стабилизации системы. При этом вся ИТ-структура включает четыре основных элемента: кластер сервера 1С, базу данных, а также систему управления базой данных и клиентское приложение, через которые каждый пользователь работает в 1С. В зависимости от конкретной установленной СУБД меняется скорость работы в приложении. Сейчас большинство ИТ-инженеров отдают предпочтение СУБД от Microsoft: несмотря на высокую стоимость по сравнению с аналогами она гарантирует высокую продуктивность системы.
Если недавно было популярно 1С: Предприятие 8.2, то теперь опытные ИТ-специалисты устанавливают 1С: Предприятие 8.3: именно эта версия позволяет создать кластер серверов и запустить балансировку нагрузки. Программное обеспечение устанавливают на компьютер в зависимости от текущей операционной системы – Windows или Linux посредством запуска приложения или через командную строку. После этого необходимо настроить общий доступ и подключение к базам данных.
Что такое балансировка серверов
Самой по себе кластеризации серверов недостаточно для оптимизации работы: следует провести балансировку для эффективного распределения процессов между отдельными серверами. Простыми словами, балансировка и есть распределение нагрузки между составляющими ИТ-системы. В зависимости от специфики конкретной структуры и потребности в вертикальном и горизонтальном масштабировании ИТ-инженер подбирает наиболее подходящую методику балансировки – механическую или программную. Задача балансировки – сделать так, чтобы в каждый момент времени серверы работали на максимальной продуктивности. В действительности добиться подобного эффекта получается редко, поэтому важно привлечь опытного ИТ-специалиста для выбора оптимального метода балансировки.
Перед процедурой проводят комплексный анализ ИТ-системы и выполняют настройки таким образом, чтобы учесть мощность и производительность каждого включенного сервера. В случае корректной балансировки вероятность полного выхода из строя сервера сводится к нулю, при этом упрощается бэкап и масштабирование системы.
Что такое балансировщик нагрузки
Для того, чтобы выполнить распределение нагрузки, применяют специальные сервисы – балансировщики или обратные прокси-серверы. Существуют различные балансировщики, которые отличаются уровнем балансировки, типом алгоритмов, методом балансировки, показателями производительности и т.д. Однако независимо от типа балансировщика он выполняет одни и те же функции в кластере серверов:
- Анализирует мощности отдельных серверов, а также время отклика от них;
- Распределяет задачи между серверами в соответствии с текущей загруженностью каждого элемента ИТ-системы;
- Позволяет незаметно для пользователя масштабировать систему: например, если требуется подключить дополнительных сотрудников к программному обеспечению;
- Обеспечивает отказоустойчивость в соответствии с уровнем балансировки.
Многие ИТ-инженеры дублируют не только серверы, но и самого балансировщика – такая модель гарантирует стабильность системы, а также упрощает ее масштабирование. При выборе балансировщика также стоит ориентироваться и на технические характеристики конкретного варианта: его пропускную способность, форм-фактор, поддержку совместного управления и другие параметры.
Балансировщик в клиент-серверной архитектуре
Механика работы пользователя в трехступенчатой клиент-серверной архитектуре мало чем отличается от обычного файлового сервера. В этом случае каждый пользователь взаимодействует с кластером серверов через балансировщика. Этот модуль самостоятельно выбирает наилучший путь решения задачи, и пользователь получает ответ от базы данных за минимальный срок. Вне зависимости от выбранного алгоритма балансировщика такая схема продуктивнее и быстрее для предприятия с количеством сотрудников свыше 10 человек, чем работа в программе, установленной на одной физической машине.
В компаниях среднего и крупного бизнеса балансировщик часто направлен не только на распределение нагрузки между отдельными серверами 1С, но также и распределяет запросы пользователей между дубликатами базы данных. Это обеспечивает отказоустойчивость системы и сохранение информации в случае сбоев в системе или действий злоумышленников. Если у компании нет текущей потребности в кластеризации, но собственник предполагает масштабирование, систему настраивают таким образом, чтобы серверы работали по модели «холодного резерва». В этом случае один из серверов не используется до тех пор, пока не появится потребность в повышении мощности системы.
Типы балансировки
Глобально балансировку нагрузки различают на программную и механическую (техническую). Последняя предполагает увеличение мощности сервера за счет повышения технических характеристик физического оборудования. Однако в большинстве случаев она неэффективна: ее следует применять только для небольших компаний, когда масштабирование процессов не влияет критически на быстродействие системы.
Программную балансировку различают по уровням и алгоритмам. Так, выделяют три основных уровня балансировки – транспортный, сетевой и прикладной. Оптимальный вариант выбирают на основе особенностей конкретной ИТ-системы. К примеру, транспортный уровень считают самым легким для настройки, но анализ процессов балансировщиком здесь не всегда эффективен. Сетевой уровень балансировки предполагает различные методы привязки нескольких компьютеров к единому IP-адресу. Прикладной уровень основан на аналитических алгоритмах, которые распределяют задачи между отдельными элементами в соответствии с настройками выбранной утилиты.
Алгоритмы балансировки нагрузки
Продуктивность балансировщика зависит по большей мере не от уровня балансировки, а от его алгоритма. Выделяют несколько различных алгоритмов, которые ИТ-инженеры подбирают в зависимости от особенностей конкретной структуры – количества пользователей и их объема работы, потребности в защите базы данных, максимальную загруженность процессов и т.д. Выбранный для ИТ-системы алгоритм балансировки нагрузки должен рационально распределять задачи в рамках кластера серверов и обеспечивать высокую скорость работы пользователей.
Один из самых простых и популярных алгоритмов - Round Robin, который предполагает круговое последовательное распределение задач между серверами. Несмотря на визуальную простоту алгоритма, у него есть и негативные стороны. Так, он не учитывает мощности отдельных серверов. Алгоритм Sticky Sessions привязан к IP-адресу конкретного пользователя, который отправляет задачу балансировщику. Алгоритм Least Connections распределяет задачи между серверами в соответствии с количеством активных процессов на каждом из них. Причем, у всех популярных алгоритмов есть и усовершенствованные версии, которые позволяют сохранить схему распределения нагрузки, но снизить недочеты.
Статическая и динамическая балансировка
Хотя большинство ИТ-специалистов отождествляют понятия балансировки и распределения нагрузки, в действительности первое относится к динамической балансировке, а второе – к разовой статической процедуре. При статическом распределении ИТ-специалист ориентируется на географический или количественный фактор. К примеру, если у компании есть два сервера и ограниченное количество сотрудников, ИТ-инженер равномерно распределяет их между серверами. При этом стоит учитывать мощность каждого сервера. Статическую балансировку можно выполнять механически, в то время как динамическая балансировка – всегда следствие алгоритмов.
Под балансировкой нагрузки серверов 1С понимают в большинстве случаев именно динамическое распределение процессов, когда задачи разделяют между несколькими серверами за счет программных или аппаратных балансировщиков. Встроенный алгоритм балансировщика анализирует изменение параметров ИТ-системы и распределяет задачи в соответствии с текущими условиями. В этом основное отличие от статической балансировки, которая ориентируется только на начальные условия системы.
Как выполнить статическую балансировку
Первичную балансировку ИТ-системы обычно выполняют именно статическим методом. При этом ИТ-инженер предполагает отсутствие потенциального горизонтального и вертикального масштабирования системы, поскольку в этом случае выполненная статическая балансировка может стать неактуальной. Для распределения нагрузки между серверами следует отталкиваться от нескольких статических факторов:
- Количество 1С серверов в кластере;
- Технические показатели каждого сервера;
- Количество сотрудников компании;
- Минимальное и максимальное количество одновременных процессов;
- Скорость обработки единичной задачи каждым процессором;
- Текущая производительность системы.