Организация ЭВМ и систем / 551-668
.pdf
Симметричные мультипроцессорныесистемы 5 9 1
Общая шина позволяет легко расширять систему путем подключения к себе большего числа процессоров. Кроме того, напомним, что шина — это, по существу, пассивная среда, и отказ одного из подключенных к ней устройств не влечет отказа всей совокупности.
В то же время SMP-системам на базе общей шины свойственен и основной недостаток шинной организации — невысокая производительность: скорость системы ограничена временем цикла шины. По этой причине каждый процессор снабжен кэш-памятью, что существенно уменьшает число обращений к шине. Наличие множества кэшей порождает проблему их когерентности, и это одна из основных причин, по которой системы на базе общей шины обычно содержат не слишком много процессоров. Так, в системах Compaq AlphaServer GS140 и 8400 используется неболее 14 процессоров Alpha 21264. SMP-система HPN9000 в максимальном варианте состоит из 8 процессоров РА-8500, а система SMP Thin Nodes для RS/6000 фирмы IBM может включать в себя от двух до четырех процессоров PowerPC 604.
Архитектура с общей шиной широко распространена в SMP-системах, построенных на микропроцессорах х86. В эту группу входят: DELL Power Edge, IBM Netfinity, HP NetServer. На рис. 14.6 показана структура симметричной мультипроцессорной вычислительной системы на базе микропроцессоров Pentium III.
Рис, 14.6. Структура SMP-системы на базе микропроцессоров Pentium III
Архитектура с коммутатором типа «кроссбар»
Архитектура с коммутатором типа «кроссбар»- (рис. 14.7) ориентирована на модульное построение общей памяти и призвана разрешить проблему ограниченной цропускной способности систем с общей шиной.
5 9 2 Глава 14. Вычислительные системы класса MIMD
Рис. 14.7. СтруктураSMP-системыс коммутатором типа «кроссбар»
Коммутатор обеспечивает множественность путей между процессорами и банками памяти, причем топология связей можетбыть как двумерной, так и трехмерной. Результатом становится более высокая полоса пропускания, что позволяет строить SMP-системы, содержащие больше процессоров, чем в случае общей шины. Типичное число процессоров в SMP-системах на базе матричного коммутатора составляет 32 или 64. Отметим, что выигрыш в производительности достигается, лишь когда разные процессоры обращаются к разным банкам памяти.
По логике кроссбара строится и взаимодействие процессоров с устройствами ввода/вывода.
В качестве примера ВС с рассмотренной архитектурой можно привести систему Enterprise 10000, состоящую из 64 процессоров, связанных с памятью посредством матричного коммутатора Gigaplane-XB фирмы Sun Microsystems (кроссбар 16 х 16), В IBM RS/6000 Enterprise Server Model S70 коммутатор типа «кроссбар» обеспечивает работу 12 процессоров RS64. В SMP-системах ProLiant 8000 и 8500 фирмы Compaq для объединения с памятью и между собой восьми процессоров Pentium III Хеоп применена комбинация нескольких шин и кроссбара.
Концепция матричного коммутатора (кроссбара) не ограничивается симметричными мультипроцессорами. Аналогичная структурасвязей применяется для объединения узлов в ВС типа CC-NUMA и кластерных вычислительных системах.
Архитектура с многопортовой памятью
Многопортовая организация запоминающего устройства обеспечивает любому процессору и модулю ввода/вывода прямой и непосредственный доступ к банкам основной памяти (ОП). Такой подход сложнее, чем при использовании шины,
Кластерные вычислительные системы 5 9 3
поскольку требует придания ЗУ основной памяти дополнительной, достаточно сложной логики. Тем не менее это позволяет поднять производительность, так как каждый процессор имеет выделенный тракт к каждому модулю ОП. Другое преимущество многопортовой организации — возможность назначить отдельные модули памяти в качестве локальной памяти отдельного процессора. Эта особенность позволяет улучшить защиту данных от несанкционированного доступа со стороны других процессоров.
Архитектура с централизованным устройствомуправления
Централизованное устройство управления (ЦУУ) сводит вместе отдельные потоки данных между независимыми модулями: процессором, памятью, устройствами ввода/вывода. ЦУУ может буферйзировать запросы, выполнять синхронизацию и арбитраж. Оно способно передавать между процессорами информацию о состоянии и управляющие сообщения, а также предупреждать об изменении информации в кэшах. Недостаток такой организации заключается в сложности устройства управления, что становится потенциальнымузким местом в плане производительности. В настоящее время подобная архитектура встречается достаточно редко, но она широко использовалась при создании вычислительных систем на базе машин семейства IBM 370.
Кластерные вычислительные системы
Одно из самых современных направлений в области создания вычислительных систем — это кластеризация. По производительности и коэффициенту готовности кластеризация представляет собой альтернативу симметричным мультипроцессорным системам. Понятие кластер определим как группу взаимно соединенных вычислительных систем (узлов), работающих совместно, составляя единый вычислительный ресурс и создавая иллюзию наличия единственной ВМ. В качестве узла кластера может выступать как однопроцессорная ВМ, так и ВС типа SMP или МРР. Важно лишь то, что каждый узел в состоянии функционировать самостоятельно и отдельно от кластера. В плане архитектуры суть кластерных вычислений сводится к объединению нескольких узлов высокоскоростной сетью. Для описания такого подхода, помимо термина «кластерные вычисления», достаточно часто применяют такие названия, как: кластеррабочихстанций (workstationcluster),гипервычисления(hypercomputing), параллельные вычисления на базе сети (network-based concurrent computing), ультравычисления (ultracomputing).
Изначально перед кластерами ставились две задачи: достичь большой вычислительной мощности и обеспечить повышенную надежность ВС. Пионером в области кластерных архитектур считается корпорация DEC, создавшая первый коммерческий кластер в начале 80-х годов прошлого века.
В качестве узлов кластеров могут использоваться как одинаковые ВС (гомогенные кластеры), так и разные (гетерогенные кластеры). По своей архитектуре кластерная ВС является слабо связанной системой.
5 9 4 Глава 14. Вычислительные системы класса MIMD
В работе [65] перечисляются четыре преимущества, достигаемые с помощью кластеризации:
-Абсолютная масштабируемость. Возможно создание больших кластеров, превосходящих по вычислительной мощности даже самые производительные одиночные ВМ. Кластер в состоянии содержать десятки узлов, каждый из которых представляет собой мультипроцессор.
-Наращиваемая масштабируемость. Кластер строится так, что его можно наращивать, добавляя новыеузлы небольшими порциями. Таким образом, пользователь может начать с умеренной системы, расширяя ее по мере необходимости.
-Высокий коэффициент готовности. Поскольку каждый узел кластера — самостоятельная ВМ или ВС, отказ одного из узлов не приводит к потере работоспособности кластера. Во многих системах отказоустойчивость автоматически поддерживается программным обеспечением.
-Превосходное соотношение цена/производительность. Кластер любой производительности можно создать, соединяя стандартные «строительные блоки»-, при этом его стоимость будет ниже, чем у одиночной ВМ с эквивалентной вычислительной мощностью.
На уровне аппаратного обеспечения кластер — это просто совокупность независимых вычислительных систем, объединенных сетью. При соединении машин в кластер почти всегда поддерживаются прямые межмашинные связи. Решения могут быть простыми, основывающимися на аппаратуре Ethernet, или сложными с высокоскоростными сетями с пропускной способностью в сотни мегабайтов в секунду. К последней категории относятся RS/6000 SP компании IBM, системы фирмы Digital на основе Memory Channel, ServerNet корпорации Compaq.
Узлы кластера контролируют работоспособность друг друга и обмениваются специфической,характернойдля кластераинформацией. Контрольработоспособности осуществляется с помощью специального сигнала, часто называемого heartbeat, что можно перевести как «сердцебиение». Этот сигнал передается узлами кластера друг другу, чтобы подтвердить их нормальное функционирование.
Неотъемлемая часть кластера — специализированное программное обеспечение (ПО), на которое возлагается задача обеспечения бесперебойной работы при отказе одного или нескольких узлов. Такое ПО производит перераспределение вычислительной нагрузки при отказеодного или нескольких узлов кластера, а также восстановление вычислений при сбое в узле. Кроме того, при наличии в кластере совместно используемых дисков кластерное ПО поддерживает единую файловую систему.
Классификация архитектур кластерных систем
Влитературе приводятся различные способы классификации кластеров. Так,
впростейшем варианте ориентируются на то, являются ли диски в кластере разделяемыми всеми узлами. На рис. 14.8, а показан кластер из двух узлов, совместная работа которых координируется за счет высокоскоростной линии, по которой происходит обмен сообщениями. Такой линией может быть локальная сеть, используемая также и не входящими в кластер компьютерами, либо выделенная линия.
Кластерныевычислительные системы 5 9 5
В последнем случае один или несколько узлов кластера будут иметь выход на локальную или глобальную сеть, благодаря чему обеспечивается связь между серверным кластером и удаленными клиентскими системами.
б
Рис. 14.8. Конфигурации кластеров:а — безсовместно используемыхдисков; б — с совместно используемыми дисками
Более ясную картину дает группировка кластеров на основе сходства их функциональных особенностей. Такая классификация приведена в табл. 14.1.
Таблица 14.1. Методы кластеризации
5 9 6 Глава 14. Вычислительные системы класса MIMD
Кластеризация с резервированием — наиболее старый и универсальный метод. Один из серверов берет на себя всю вычислительную нагрузку, в то время как второй остается неактивным, но готовым перенять вычисления при отказе основного сервера. Активный или первичный сервер периодически посылает резервномутактирующее сообщение. При отсутствии тактирующих сообщений (это рассматривается как отказ первичного сервера) вторичный сервер берет управление на себя. Такой подход повышает коэффициент готовности, но не улучшает производительности. Более того, если единственный вид взаимодействия между узлами — обмен сообщениями, и если оба сервера кластера не используют диски коллективно, то резервный сервер не имеет доступа к базам данных, управляемым первичным сервером.
Пассивное резервирование для кластеров не характерно. Термин «кластер» относят к множеству взаимосвязанных узлов, активно участвующих в вычислительном процессе и совместно создающих иллюзию одной мощной вычислительной машины. Ктакой конфигурации обычно применяют понятие системысактивным вторичным сервером, и здесь выделяют три метода кластеризации: самостоятельные серверы, серверы без совместного использования дисков и серверы с совместным использованием дисков.
При первом подходе каждый узел кластера рассматривается как самостоятельный сервер с собственными дисками, причем ни один из дисков в системе не является общим (см. рис. 14.8, я). Схема обеспечивает высокую производительностьи высокийкоэффициентготовности, однакотребуетспециального программного обеспечения для планирования распределения клиентских запросов по серверам так, чтобы добиться сбалансированной и эффективной нагрузки на каждый из них. Необходимо также создать условия, чтобы при отказе одного из узлов в процессе выполнения какого-либо приложения другой узел мог перехватить и завершить оставшееся без управления приложение. Для этого данные в кластере должны постоянно копироваться, чтобы каждый сервер имел доступ ко всем наиболее свежим данным в системе. Из-за этих издержек высокий коэффициент готовности достигается лишь за счет потери производительности.
Для сокращения коммуникационных издержек большинство кластеров в настоящее время формируют из серверов, подключенных к общим дискам, обычно представленных дисковым массивом RAID ('рис. 14.8,6).
Один из вариантов такого подхода предполагает, что совместный доступ кдискам не применяется. Общие диски разбиваются на разделы, и каждому узлу кластера выделяется свой раздел. Если один из узлов отказывает, кластер может быть реконфигурирован так, что права доступа к его части общего диска передаются другому узлу.
Во втором варианте множество серверов разделяют во времени доступ к общим дискам, так что любой узел имеет возможность обратиться к любому разделу каждого общего диска. Эта организация требует наличия каких-либо средств блокировки, гарантирующих, что в любой момент времени доступ к данным будет иметь только один из серверов.
Вычислительные машины (системы) в кластере взаимодействуют в соответствии с одним их двух транспортных протоколов. Первый из них, протокол TCP (Transmission Control Protocol), оперирует потоками байтов, гарантируя надеж-
Кластерные вычислительные системы 5 9 7
ность доставки сообщения. Второй — UDP (User Datagram Protocol) пытается посылать пакеты данных без гарантии их доставки, В последнее время применяют специальные протоколы, которые работают намного лучше. Так, возглавляемый компанией Intel консорциум (Microsoft, Compaq и др.) предложил новый протокол для внутрикластерных коммуникаций, который называется Virtual Interface Architecture (VIA) и претендует на роль стандарта.
При обмене информацией используются два программных метода: передачи сообщенийираспределеннойсовместноиспользуемойпамяти.Первыйопирается на явную передачу информационных сообщений между узлами кластера. В альтернативном варианте также происходит пересылка сообщений, но движение данных между узлами кластера скрыто от программиста.
Кластеры обеспечивают высокий уровень доступности — в них отсутствуют единая операционная система и совместно используемая память, то есть нет проблемы когерентности кэшей. Кроме того, специальное программное обеспечение в каждом узле постоянно контролирует работоспособность всех остальных узлов. Этот контроль основан на периодической рассылке каждым узлом сигнала «Пока жив» (keepalive). Если сигнал от некоторого узла не поступает, то такой узел считается вышедшим из строя; ему не дается возможность выполнять ввод/вывод, его диски и другие ресурсы (включая сетевые адреса) переназначаются другим узлам, а выполнявшиеся им программы перезапускаются в других узлах.
Кластеры хорошо масштабируются в плане производительности при добавлении узлов. В кластере может выполняться несколько отдельных приложений, но для масштабирования отдельного приложения требуется, чтобы его части согласовывали свою работу путем обмена сообщениями. Нельзя, однако, не учитывать, что взаимодействия между узлами кластера занимают гораздо больше времени, чем в традиционных ВС.
Возможность практически неограниченного наращивания числа узлов и отсутствие единой операционной системы делают кластерные архитектуры исключительно успешно масштабируемыми, и даже системы с сотнями и тысячами узлов показывают себя на практике с положительной стороны.
Топологии кластеров
При создании кластеров с большим количеством узлов могут применяться самые разнообразные топологии (см. главу 12). В данном разделе остановимся на тех, которые характерны для наиболее распространенных «малых»- кластеров, состоящих из 2-4 узлов.
Топология кластерныхпар
Топология кластерных пар находит применение при организации двухили четырехузловых кластеров (рис. 14.9).
Узлы группируются попарно. Дисковые массивы присоединяются к обоим узлам пары, причем каждый узел имеет доступ ко всем дисковым массивам своей пары. Один из узлов является резервным для другого.
Четырехузловая кластерная «пара»- представляет собой простое расширение двухузловой топологии. Обе кластерные пары с точки зрения администрирования и настройки рассматриваются как единое целое.
5 9 8 Глава 14. Вычислительные системы класса MIMD
Рис. 14.9.Топологиякластерныхпар
Эта топология подходит для организации кластеров с высокой готовностью данных, но отказоустойчивость реализуется только в пределах пары, так как принадлежащие ей устройства хранения информации не имеют физического соединения с другой парой.
Пример: организация параллельной работы СУБД Informix XPS.
Топология N +1
Топология N+ 1 позволяет создавать кластеры из2,3и4 узлов (рис. 14.10).
Рис. 14.10. Топология N +1
Каждый дисковый массив подключаются только к двум узлам кластера. Дисковые массивы организованы по схеме RAID 1. Один сервер имеет соединение со всеми дисковыми массивами и служит в качестве резервного для всех остальных (основных или активных) узлов. Резервный сервер может использоваться для поддержания высокой степени готовности в паре с любым из активных узлов.
Топология рекомендуется для организации кластеров высокой готовности. В тех конфигурациях, где имеется возможность выделить один узел для резервирования, эта топология способствует уменьшению нагрузки на активные узлы и гарантирует, что нагрузка вышедшего из строя узла будет воспроизведена на резервном узле без потери производительности. Отказоустойчивость обеспечивается между
Кластерные вычислительные системы 5 9 9
любым из основных узлов и резервным узлом. В то же время топология не позволяет реализовать глобальную отказоустойчивость, поскольку основные узлы кластера и их системы хранения информации не связаны друг с другом.
Топология N x N
Аналогично топологии N+ 1, топология Nх N(рис. 14,11) рассчитана на создание кластеров из 2, 3 и 4 узлов, но в отличие от первой обладает большей гибкостью и масштабируемостью.
Рис. 14.11. Топология N x N
Только в этой топологии все узлы кластера имеют доступ ко всем дисковым массивам, которые, в свою очередь, строятся по схеме RAID 1 (с дублированием). Масштабируемость проявляется в простоте добавления к кластеру дополнительных узлов и дисковых массивов без изменения соединений в существующей системе.
Топология позволяеторганизовать каскадную систему отказоустойчивости, при которой обработка переносится с неисправного узла на резервный, а в случае его выхода из строя — на следующий резервный узел и т. д. Кластеры с топологией
Рис. 14.12. Топология с полностью раздельным доступом
6 0 0 Глава 14. Вычислительные системы класса MlМD
N x N обеспечивают поддержку приложения Oracle Parallel Server, требующего соединения всех узлов со всеми системами хранения информации. В целом топология характеризуется лучшей отказоустойчивостью и гибкостью по сравнению с другими решениями.
Топология с полностью раздельным доступом
В топологии с полностью раздельным доступом (рис. 14.12) каждый дисковый массив соединяется только с одним узлом кластера.
Топология рекомендуется только для тех приложений, для которых характерна архитектура полностью раздельного доступа, например для уже упоминавшейся СУБД Informix XPS.
Системы с массовой параллельной обработкой (МРР)
Основным признаком, по которому вычислительную систему относят к архитектуре с массовой параллельной обработкой (МРР, Massively Parallel Processing), служит количество процессоров п. Строгой границы не существует, но обычно при п>=128считается,чтоэтоужеМРР,априп<=32—ещенет.Обобщеннаяструктура МРР-системы показана на рис. 14.13.
Рис. 14.13. Структура вычислительной системы с массовой параллельной обработкой
Главные особенности, по которым вычислительную систему причисляют к классу МРР, можно сформулировать следующим образом:
-стандартные микропроцессоры;
-физически распределенная память;
-сеть соединений с высокой пропускной способностью и малыми задержками;
-хорошая масштабируемость (до тысяч процессоров);
-асинхронная MIMD-система с пересылкой сообщений;
-программа представляет собой множество процессов, имеющих отдельные адресные пространства.
