- •Кластеры (Зубанов с. 260)
- •Кластеры: доступность данных
- •Наращиваемость.
- •Архитектура кластера с сетевой балансировкой нагрузки
- •Модель без общих компонентов
- •Модель 1. Высокая доступность и статическая балансировка нагрузки
- •Прежде чем начать
- •3. Не менее 2 сетевых плат в каждом компьютере. Узлы в кластере должны быть связаны между собой надежным каналом — интерконнектом (interconnect), по которому они обмениваются информацией о своем со-
- •Что такое кластер
- •Предназначение кластеров
- •Как устроен кластер
Наращиваемость.
Современные архитектуры кластеров
Для повышения доступности компьютерных систем используется несколько подходов. Наиболее типичный – дублирование систем с полностью тиражируемыми компонентами. ПО такой системы постоянно отслеживает состояние работающей системы, а вторая система все это время простаивает. При сбое первой системы происходит переключение на вторую. Такой подход с одной стороны, заметно повышает стоимость оборудования без повышения производительности системы в целом, а с другой—не обеспечивает защиты от ошибок в приложениях.
Наращиваемость обеспечивается также обеспечивается сегодня по разному. Один из способов- симметричная мультипроцессорная обработка (SMP.
В SMP системах несколько процессоров используют общую память и устройства ввода/вывода
В традиционной модели совместного использования памяти выполняется одна копия ОС, а процессы прикладных задач работают так, будто в системе всего 1 процессор. При запуске в такой системе приложений, не обращающихся к общим данным, достигается высокая степень наращиваемости.
Главный тормоз в системах с симметричной обработкой — физические ограничения скорости шины и доступа к памяти. По мере увеличения скорости процессоров возрастает их стоимость. Сегодня пользователь, пожелавший добавить 2-4 процессора (особенно более 8), должен заплатить кучу денег, совершенно непропорциональную числу процессоров.
На рынке кластеров представлены сегодня кластеры со следующими архитектурами:
-
кластеры с сетевой балансировкой нагрузки (Network Load Balancing Clus ter — NLBC);
-
кластеры серверов (server clusters);
-
кластеры приложений (application clusters).
Архитектура кластера с сетевой балансировкой нагрузки
NLBC-кластер представляет собой набор серверов, связанных друг с другом по локальной сети. Каждый из серверов выбирается маршрутизатором при поступлении запроса к кластеру. Примером такого кластера является ряд HTTP-серверов. Каждый сервер работает независимо от другого и исполняет собственный экземпляр службы. У серверов, как правило, нет совместно используемых ресурсов. Представленная на них информация просто тиражируется. При этом предполагается, что данные изменяются сравнительно редко. Классический пример такого рода информации — Web-сервер.
Когда один из серверов выходит из строя, механизм сетевой балансировки обнаруживает это и перенаправляет запросы оставшимся серверам. Схематично такой кластер можно изобразить так:
Когда на такой кластер приходит запрос на обслуживание, то он поступает сразу на все серверы кластера. Прежде чем приходящие на порты TCP и UDP запросы попадут на обработку, их отфильтрует служба балансировки. Служба NLB обрабатывает запросы для каждого из портон и только для протоколов TCP и UDP. Другой сетевой трафик, скажем, IGMP или ICMP, не обрабатывается. Поэтому, например, выполняя ping кластера по его основному адресу, можно получить дубли ответов, так как на них будут отвечать все серверы в кластере. Поскольку запрос поступает сразу на все серверы в кластере, можно, с одной стороны, эффективно распределять нагрузку, а с другой — исключить точку потенциального сбоя (Single point of failure — SPOF).
Для координации действий серверы кластера периодически обмениваются групповыми (multicast) или широковещательными (broadcast) сообщениями. При изменении состояния кластера (например, при выходе узла из строя или добавлении нового сервера) служба NLB вызывает процесс конвергенции, в результате которого определяется новое состояние кластера и выбирается сервер с наивысшим приоритетом — хост умолчания (default host). Он-то и обслуживает трафик, не оговоренный правилами, которые установлены для портов. При конвергенции кластер продолжает обслуживать запросы клиентов.
Сообщения между серверами в кластере передаются через определенные интервалы времени (по умолчанию — 1 сек). Если в течение некоторого интервала (по умолчанию 5 периодов) от сервера не приходят сообщения, он считается вышедшим из строя, и начинается конвергенция.
Обязательными условиями кластера с сетевой балансировкой нагрузки являются:
-
подключение клиентов с использованием протокола TCP/IP;
-
независимая работа нескольких экземпляров одного приложения; если при этом приложения используют совместные данные и модифицируют их, то должны обеспечиваться средства синхронизации данных на всех серверах;
-
использование Windows 2000 Advanced Server.
Для повышения производительности рекомендуется в каждом сервере установить по 2 сетевых платы: одну — для обслуживания запросов клиентов, вторую — для связи между собой компьютеров, входящих в кластер. Можно использовать и по одной сетевой плате, но при этом производительность может снизиться.
Если доступ к кластеру выполняется через маршрутизатор, последний должен принимать:
-
ответы ARP (Address resolution protocol), приходящие от станции с одним МАС-адресом, но в ARP-структуре имеющие другой МАС-адрес;
-
в групповом режиме — ARP-ответ, что ARP-структура содержит групповой ARP-адрес.
Если маршрутизатор не удовлетворяет этим требованиям, надо создать статические строки ARP в маршрутизаторе. Например, в маршрутизаторах Cisco нужны статические ARP-записи, так как там не поддерживается разрешение персональных IP-адресов для групповых MAC- адресов.
Осуществляя доступ к кластеру с сетевой балансировкой нагрузки, пользователь применяет один IP-адрес. Если при обращении к службе на кластере произойдет сбой сервера, на котором исполнялся запрос, то запрос будет прерван, и его надо будет повторить. Повторный запрос будет перенаправлен на другой сервер кластера.
Для работы службы сетевой балансировки нагрузки требуется "1 Мб дискового пространства и 250 Кб — 4 Мб оперативной памяти
Архитектура кластера приложений
Кластеры приложений иногда называются кластерами с балансировкой загрузки компонентов. Б состав такого кластера входит маршрутизатор, который занимается распределением загрузки компонентов СОМ-К Компоненты расположены на всех серверах кластера. Если один из них выходит из строя, маршрутизатор перераспределяет компоненты между серверами так, чтобы продолжить исполнение приложения. Например, если в момент сбоя сервер, входящий в кластер, выполнял запрос к базе данных, запрос будет переадресован компоненту на другом сервере.
Изначально планировалось, что такой тип кластеров (Component Load Balancing — CLB) будет включен в Windows 2000 Datacenter Server. Однако его решили перенести в Microsoft AppCenter Server. Поэтому в данной книге кластеры приложений не рассматриваются.
Архитектура кластера серверов
Кластеры могут иметь разные формы. Например, в качестве кластера может выступать несколько компьютеров, связанных по сети Ethernet. Примером кластера высокого уровня являются высокопроизводительные многопроцессорные SMP-системы, связанные высокоскоростной шиной связи и ввода/вывода. В обоих случаях увеличение вычислительной мощности достигается небольшими шагами при добавлении очередной системы. С точки зрения клиента, кластер является одним сервером или образом одной системы, хотя реально состоит из нескольких компьютеров.
Сегодня в кластерах используются в основном две модели: с общими дисками и без общих компонентов.
Модель с общими дисками
В этой модели ПО, исполняемое на любой из систем кластера, имеет доступ к ресурсам систем кластеоа. Если двум системам нужны одни данные, то они либо дважды считываются с диска, либо копируются с одной системы на другую.
В SMP-системах приложение должно синхронизировать и превратить в последовательный вид доступ к общим данным. Обычно для организации синхрониза ции используется Диспетчер распределенных блокировок (Distributed Lock Manager - DLM). DLM позволяет приложениям отслеживать обращения к пе сурсам кластера. Если к одному ресурсу обращается более двух систем одно" временно, DLM распознает и предотвращает потенциальный конфликт Процессы DLM могут приводить к дополнительному траффику сообщений в сети снизить производительность. Один из способов избежать этого эффекта ^ использовать модель без общих компонентов.