Міжнародна конференція розробників
і користувачів вільного програмного забезпечення

Высокопроизводительная отказоустойчивая масштабируемая кластерная ферма с балансировкой нагрузки

Александр Шубник – Системный администратор, Белторгинфосервис – Минск, Беларусь – a.shubnik@btis.by

Описана кластерная ферма, разработанная и используемая в вычислительном центре Министерства торговли для обеспечения бесперебойного проведения торгов Белорусской универсальной товарной биржи и выполнения ряда других отраслевых задач (торговый реестр).

Ферма построена на базе трехзвенной архитектуры приложений с применением многоуровневой кластеризации. Прикладные уровни включают в себя:

1. Веб-сервер.
2. Сервер приложений.
3. Сервер базы данных.

Кроме прикладных уровней в систему входит также служебный уровень балансировки нагрузки. Каждый уровень представляет собой двухнодовый кластер.

На верхнем уровне находятся два балансировщика нагрузки, реализованные на базе LVS в комбинации с Keepalived, которые выполняют следующие функции:

- поддержание внешних виртуальных IP-адресов;
- распределение клиентских запросов по веб-серверам и серверам приложений;
- отслеживание и оповещение состояния рабочих сервисов;
- резервирование друг друга.

В случае отказа одного из балансировщиков все его функции берет на себя другой.
Для коммутации узлов используются сетевые (витая пара) и волоконно-оптические соединения. И те и другие соединения продублированы; кроме того сетевые соединения на каждом сервере объединены попарно по протоколу LACP.


Рис. 1. Схема физических соединений фермы

Маршрут движения потоков данных, изображенный на рис. 2, включает следующие этапы:

1. Клиентские запросы поступают на один из балансировщиков, который держит виртуальный IP-адрес веб-сервиса системы.
2. Балансировщик распределяет запросы по веб-серверам.
3. Веб-сервера обращаются по виртуальному IP-адресу сервера приложений, который принадлежит второму балансировщику. Для организации веб-серверов использован Apache.
4. Второй балансировщик распределяет запросы веб-серверов по серверам приложений.
5. Запросы серверов приложений распределяются по серверам базы данных подсистемой Oracle RAC.
Назад данные следуют тем же маршрутом только в обратном направлении.


Рис. 2. Схема движения потока данных

Рисунок 2 также наглядно иллюстрирует изменение маршрутов данных при отказе одного из балансировщиков.

Работа кластера серверов баз данных организована средствами Oracle 10g RAC и OCFS2. Сервера приложений обращаются по виртуальному адресу, который держит Oracle Cluster Ready Service. Сервера базы данных имеют одновременный доступ к базе, находящейся на разделе с файловой системой OCFS2, позволяющей одновременный доступ к файлам нескольким компьютерам. Сам раздел с базой данных принадлежит тому дисковой стойки с RAID-5.

Система мониторинга и диагностики использует как HP Systems Insight Manager так и систему Ganglia.

Корректное завершение работы в случае сбоя питания и автоматический запуск всей системы при восстановлении питания обеспечивается при помощи APC PowerChute Network Shutdown и NUT.