Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кластеры.doc
Скачиваний:
15
Добавлен:
09.04.2015
Размер:
435.71 Кб
Скачать

Наращиваемость.

Современные архитектуры кластеров

Для повышения доступности компьютерных систем используется несколько подходов. Наиболее типичный – дублирование систем с полностью тиражируемыми компонентами. ПО такой системы постоянно отслеживает состояние работающей системы, а вторая система все это время простаивает. При сбое первой системы происходит переключение на вторую. Такой подход с одной стороны, заметно повышает стоимость оборудования без повышения производительности системы в целом, а с другой—не обеспечивает защиты от ошибок в приложениях.

Наращиваемость обеспечивается также обеспечивается сегодня по разному. Один из способов- симметричная мультипроцессорная обработка (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 могут приводить к дополнительному траффику сообщений в сети снизить производительность. Один из способов избежать этого эффекта ^ использовать модель без общих компонентов.