Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВС Лекция 12.doc
Скачиваний:
130
Добавлен:
25.03.2015
Размер:
344.06 Кб
Скачать

2. Классификация архитектур кластерных систем

Существуют различные способы классификации кластеров. Простейший вариант основан на том, являются ли диски в кластере разделяемыми всеми узлами или нет. На рис. 12.1 показан кластер из двух узлов, совместная работа которых координируется за счет высокоскоростной линии, по которой проис-ходит обмен сообщениями. Такой линией может быть локальная сеть, исполь-зуемая также и не входящими в кластер компьютерами, либо выделенная ли- ния. В последнем случае один или несколько узлов кластера будут иметь вы- ход на локальную или глобальную сеть, благодаря чему обеспечивается связь между серверным кластером и удаленными клиентскими системами.

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

Более ясную картину дает группировка кластеров на основе сходства их функциональных особенностей. Такая классификация приведена в табл. 12.1.

Методы кластеризации Таблица 12.1.

Метод кластеризации

Описание

Пассивное резервирование

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

Резервирование с активным вторичным сервером

Вторичный сервер, как и первичный, использу-ется при решении задач

Самостоятельные серверы

Самостоятельные серверы имеют собственные диски, а данные постоянно копируются с первич-ного сервера на вторичный

Серверы с подключением ко всем дискам

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

Серверы с совместно используемыми дисками

Множество серверов работают в режиме коллек-тивного доступа к дискам.

Кластеризация с резервированием наиболее старый и универсальный метод. Один из серверов берет на себя всю вычислительную нагрузку, в то вре- мя как второй остается неактивным, но готовым перенять вычисления при от- казе основного сервера. Активный или первичный сервер периодически посы- лает резервному тактирующее сообщение. Отсутствие тактирующих сообщений рассматривается как отказ первичного сервера. В этом случае вторичный сер- вер берет управление на себя. Такой подход повышает коэффициент готовности, но не улучшает производительность. Более того, если единственным видом взаимодействия между узлами является обмен сообщениями и оба сервера кластера не используют диски коллективно, то резервный сервер не имеет доступа к базам данных, управляемым первичным сервером.

Пассивное резервирование не характерно для кластеров. Термин «клас- тер» относится к множеству взаимосвязанных узлов, активно участвующих в вычислительном процессе и совместно создающих иллюзию одной мощной ВМ. Такая конфигурация называется системой с активным вторичным серве- ром и для нее можно выделить три метода кластеризации:

  • самостоятельные серверы;

  • серверы без совместного использования дисков;

  • серверы с совместным использованием дисков.

При первом подходе каждый узел кластера рассматривается как само-стоятельный сервер с собственными дисками, причем ни один из дисков в системе не является общим (рис. 12.1). Схема обеспечивает высокую произво-дительность и высокий коэффициент готовности, однако требует специального программного обеспечения для планирования распределения клиентских запро-сов по серверам так, чтобы добиться сбалансированной и эффективной нагруз- ки на каждый из них. Необходимо также создать условия, чтобы при отказе одного из узлов в процессе выполнения какого-либо приложения другой узел мог перехватить и завершить оставшееся без управления приложение. Для это- го данные в кластере должны постоянно копироваться, чтобы каждый сервер имел доступ ко всем наиболее свежим данным в системе. Из-за этих издержек высокий коэффициент готовности достигается лишь за счет потери произво-дительности.

Для сокращения коммуникационных издержек кластеры формируются из серверов, подключенных к общему дисковому массиву RAID (рис. 12.2).

Рис. 12.2. Конфигурация кластера с совместно используемыми дисками

Один из вариантов такого подхода предполагает, что совместный доступ к дискам не применяется. Общие диски разбиваются на разделы, и каждому узлу кластера выделяется свой раздел. Если один из узлов отказывает, кластер может быть реконфигурирован так, что права доступа к его части общего диска передаются другому узлу.

Во втором варианте множество серверов разделяют во времени доступ к общим дискам, так что любой узел имеет возможность обратиться к любому разделу каждого общего диска. Эта организация требует наличия средств бло-кировки, гарантирующих, что в любой момент времени доступ к данным будет иметь только один из серверов.

Вычислительные машины (системы) в кластере взаимодействуют в соответствии с одним из двух транспортных протоколов. Первый из них, протокол TCP (Transmission Control Protocol), оперирует потоками байтов, гарантируя надежность доставки сообщения. Второй – UDP (User Datagram Protocol) пытается посылать пакеты данных без гарантии их доставки. В последнее время применяется специальный протокол VIA (Virtual Interface Architecture) для внутрикластерных коммуникаций, который работает намного лучше.

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

Кластеры обеспечивают высокий уровень доступности в них отсутству- ют единая операционная система и совместно используемая память, т.е. нет проблемы когерентности кэшей. Кроме того, специальное ПО в каждом узле постоянно контролирует работоспособность всех остальных узлов. Этот конт-роль основан на периодической рассылке каждым узлом сигнала «Пока жив» (keepalive). Если сигнал от некоторого узла не поступает, то такой узел счита- ется вышедшим из строя; ему не дается возможность выполнять ввод/вывод, его диски и другие ресурсы (включая сетевые адреса) переназначаются другим узлам, а выполнявшиеся им программы перезапускаются в других узлах.

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

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