Кластер (группа компьютеров). Кластеры: базовые понятия

Кластерные технологии стали логическим продолжением развития идей, заложенных в архитектуре MPP систем. Если процессорный модуль в MPP системе представляет собой законченную вычислительную систему, то следующий шаг напрашивается сам собой: почему бы в качестве таких вычислительных узлов не использовать обычные серийно выпускаемые компьютеры. Развитие коммуникационных технологий, а именно, появление высокоскоростного сетевого оборудования и специального программного обеспечения, такого как система MPI, реализующего механизм передачи сообщений над стандартными сетевыми протоколами, сделали кластерные технологии общедоступными. Сегодня не составляет большого труда создать небольшую кластерную систему, объединив вычислительные мощности компьютеров отдельной лаборатории или учебного класса.

Привлекательной чертой кластерных технологий является то, что они позволяют для достижения необходимой производительности объединять в единые вычислительные системы компьютеры самого разного типа, начиная от персональных компьютеров и заканчивая мощными суперкомпьютерами. Широкое распространение кластерные технологии получили как средство создания систем суперкомпьютерного класса из составных частей массового производства, что значительно удешевляет стоимость вычислительной системы. В частности, одним из первых был реализован проект COCOA, в котором на базе 25 двухпроцессорных персональных компьютеров общей стоимостью порядка $100000 была создана система с производительностью, эквивалентной 48-процессорному Cray T3D стоимостью несколько миллионов долларов США.

Конечно, о полной эквивалентности этих систем говорить не приходится. Как указывалось в предыдущем разделе, производительность систем с распределенной памятью очень сильно зависит от производительности коммуникационной среды. Коммуникационную среду можно достаточно полно охарактеризовать двумя параметрами: латентностью - временем задержки при посылке сообщения, и пропускной способностью - скоростью передачи информации. Так вот для компьютера Cray T3D эти параметры составляют соответственно 1 мкс и 480 Мб/сек, а для кластера, в котором в качестве коммуникационной среды использована сеть Fast Ethernet, 100 мкс и 10 Мб/сек. Это отчасти объясняет очень высокую стоимость суперкомпьютеров. При таких параметрах, как у рассматриваемого кластера, найдется не так много задач, которые могут эффективно решаться на достаточно большом числе процессоров.

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


Для создания кластеров обычно используются либо простые однопроцессорные персональные компьютеры, либо двух- или четырех- процессорные SMP-серверы. При этом не накладывается никаких ограничений на состав и архитектуру узлов. Каждый из узлов может функционировать под управлением своей собственной операционной системы. Чаще всего используются стандартные ОС: Linux, FreeBSD, Solaris, Tru64 Unix, Windows NT. В тех случаях, когда узлы кластера неоднородны, то говорят о гетерогенных кластерах.

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

Разработано множество технологий соединения компьютеров в кластер. Наиболее широко в данное время используется технология Fast Ethernet. Это обусловлено простотой ее использования и низкой стоимостью коммуникационного оборудования. Однако за это приходится расплачиваться заведомо недостаточной скоростью обменов. В самом деле, это оборудование обеспечивает максимальную скорость обмена между узлами 10 Мб/сек, тогда как скорость обмена с оперативной памятью составляет 250 Мб/сек и выше. Разработчики пакета подпрограмм ScaLAPACK, предназначенного для решения задач линейной алгебры на многопроцессорных системах, в которых велика доля коммуникационных операций, формулируют следующим образом требование к многопроцессорной системе: "Скорость межпроцессорных обменов между двумя узлами, измеренная в Мб/сек, должна быть не менее 1/10 пиковой производительности вычислительного узла, измеренной в Mflops"http://rsusu1.rnd.runnet.ru/tutor/method/m1/liter1.html - . Таким образом, если в качестве вычислительных узлов использовать компьютеры класса Pentium III 500 Мгц (пиковая производительность 500 Mflops), то аппаратура Fast Ethernet обеспечивает только 1/5 от требуемой скорости. Частично это положение может поправить переход на технологии Gigabit Ethernet.

Ряд фирм предлагают специализированные кластерные решения на основе более скоростных сетей, таких как SCI фирмы Scali Computer (~100 Мб/сек) и Mirynet (~120 Мб/сек). Активно включились в поддержку кластерных технологий и фирмы-производители высокопроизводительных рабочих станций (SUN, HP, Silicon Graphics).

(К слову, говоря, при этом есть возможность собрать недорогой и эффективный кластер из xbox 360 или PS3, процессоры там примерно как Power, и на миллион можно купить не одну приставку.)

Исходя из этого отметим интересные по цене варианты построения высокопроизводительной системы. Разумеется, она должна быть многопроцессорной. У Intel для таких задач используются процессоры Xeon, у AMD – Opteron.

Если много денег


Отдельно отметим крайне дорогую, но производительную линейку процессоров на сокете Intel Xeon LGA1567.
Топовый процессор этой серии – E7-8870 с десятью ядрами 2,4 ГГц. Его цена $4616. Для таких CPU фирмы HP и Supermicro выпускают! восьмипроцессорные! серверные шасси. Восемь 10-ядерных процессоров Xeon E7-8870 2.4 ГГц с поддержкой HyperThreading поддерживают 8*10*2=160 потоков, что в диспетчере задач Windows отображается как сто шестьдесят графиков загрузки процессоров, матрицей 10x16.

Для того, чтобы восемь процессоров уместились в корпусе, их размещают не сразу на материнской плате, а на отдельных платах, которые втыкаются в материнскую плату. На фотографии показаны установленные в материнскую плату четыре платы с процессорами (по два на каждой). Это решение Supermicro. В решении HP на каждый процессор приходится своя плата. Стоимость решения HP составляет два-три миллиона, в зависимости от наполнения процессорами, памятью и прочим. Шасси от Supermicro стоит $10 000, что привлекательнее. Кроме того в Supermicro можно поставить четыре сопроцессорных платы расширения в порты PCI-Express x16 (кстати, еще останется место для Infiniband-адаптера чтобы собирать кластер из таких), а в HP только две. Таким образом, для создания суперкомпьютера восьмипроцессорная платформа от Supermicro привлекательнее. На следующем фото с выставки представлен суперкомпьютер в сборе с четырьмя GPU платами.


Однако это очень дорого.
Что подешевле
Зато есть перспектива сборки суперкомпьютера на более доступных процессорах AMD Opteron G34, Intel Xeon LGA2011 и LGA 1366.

Чтобы выбрать конкретную модель, я составил таблицу, в которой сосчитал для каждого процессора показатель цена/(число ядер*частота). Я отбросил из расчета процессоры частотой ниже 2 ГГц, и для Intel - с шиной ниже 6,4GT/s.

Модель
Кол-во ядер
Частота
Цена, $
Цена/ядро, $
Цена/Ядро/ГГц
AMD





6386 SE
16
2,8
1392
87
31
6380
16
2,5
1088
68
27
6378
16
2,4
867
54
23
6376
16
2,3
703
44
19
6348
12
2,8
575
48
17
6344
12
2,6
415
35
13
6328
8
3,2
575
72
22
6320
8
2,8
293
37
13
INTEL





E5-2690
8
2,9
2057
257
89
E5-2680
8
2,7
1723
215
80
E5-2670
8
2,6
1552
194
75
E5-2665
8
2,4
1440
180
75
E5-2660
8
2,2
1329
166
76
E5-2650
8
2
1107
138
69
E5-2687W
8
3,1
1885
236
76
E5-4650L
8
2,6
3616
452
174
E5-4650
8
2,7
3616
452
167
E5-4640
8
2,4
2725
341
142
E5-4617
6
2,9
1611
269
93
E5-4610
6
2,4
1219
203
85
E5-2640
6
2,5
885
148
59
E5-2630
6
2,3
612
102
44
E5-2667
6
2,9
1552
259
89
X5690
6
3,46
1663
277
80
X5680
6
3,33
1663
277
83
X5675
6
3,06
1440
240
78
X5670
6
2,93
1440
240
82
X5660
6
2,8
1219
203
73
X5650
6
2,66
996
166
62
E5-4607
6
2,2
885
148
67
X5687
4
3,6
1663
416
115
X5677
4
3,46
1663
416
120
X5672
4
3,2
1440
360
113
X5667
4
3,06
1440
360
118
E5-2643
4
3,3
885
221
67

Жирным курсивом выделена модель с минимальным показателем соотношения, подчеркнутым – самый мощный AMD и на мой взгляд наиболее близкий по производительности Xeon.

Таким, образом, мой выбор процессоров для суперкомпьютера – Opteron 6386 SE, Opteron 6344, Xeon E5-2687W и Xeon E5-2630.

Материнские платы

PICMG
На обычные материнские платы невозможно поставить более четырех двухслотовых плат расширения. Есть и другая архитектура – использование кросс-плат, таких как BPG8032 PCI Express Backplane.


В такую плату ставятся платы расширения PCI Express и одна процессорная плата, чем-то похожая на те, которые установлены в восьмипроцессорных серверах на базе Supermicro, о которых речь шла выше. Но только эти процессорные платы подчиняются отраслевым стандартам PICMG. Стандарты развиваются медленно и такие платы зачастую не поддерживают самые современные процессоры. Максимум такие процессорные платы сейчас выпускают на два Xeon E5-2448L - Trenton BXT7059 SBC.

Стоить такая система будет без GPU не меньше $5000.

Готовые платформы TYAN
За ту же примерно сумму можно приобрести готовую платформу для сборки суперкомпьютеров TYAN FT72B7015 . В такой можно установить до восьми GPU и два Xeon LGA1366.
«Обычные» серверные материнские платы
Для LGA2011
Supermicro X9QR7-TF - на эту материнскую плату можно установить 4 Платы расширения и 4 процессора.

Supermicro X9DRG-QF - эта плата специально разработана для сборки высокопроизводительных систем.

Для Opteron
Supermicro H8QGL-6F - эта плата позволяет установить четыре процессора и три платы расширения

Усиление платформы платами расширения

Этот рынок почти полностью захвачен NVidia, которые выпускают помимо геймерских видеокарт еще и вычислительные карты. Меньшую долю рынка имеет AMD, и относительно недавно на этот рынок пришла корпорация Intel.

Особенностью таких сопроцессоров является наличие на борту большого объема оперативной памяти, быстрые расчеты с двойной точностью и энергоэффективность.

FP32, Tflops FP64, Tflops Цена Память, Гб
Nvidia Tesla K20X 3.95 1.31 5.5 6
AMD FirePro S10000 5.91 1.48 3.6 6
Intel Xeon Phi 5110P 1 2.7 8
Nvidia GTX Titan 4.5 1.3 1.1 6
Nvidia GTX 680 3 0.13 0.5 2
AMD HD 7970 GHz Edition 4 1 0.5 3
AMD HD 7990 Devil 13 2x3,7 2х0.92 1.6 2x3

Топовое решение от Nvidia называется Tesla K20X на архитектуре Kepler. Именно такие карты стоят в самом мощном в мире суперкомпьютере Titan. Однако недавно Nvidia выпустила видеокарту Geforce Titan. Старые модели были с урезанной производительностью FP64 до 1/24 от FP32 (GTX680). Но в Титане производитель обещает довольно высокую производительность в расчетах с двойной точностью. Решения от AMD тоже неплохи, но они построены на другой архитектуре и это может создать трудности для запуска вычислений, оптимизированных под CUDA (технология Nvidia).

Решение от Intel - Xeon Phi 5110P интересно тем, что все ядра в сопроцессоре выполнены на архитектуре x86 и не требуется особой оптимизации кода для запуска расчетов. Но мой фаворит среди сопроцессоров – относительно недорогая AMD HD 7970 GHz Edition. Теоретически эта видеокарта покажет максимальную производительность в расчете на стоимость.

Можно соединить в кластер

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

Использовать в качестве сетевого интерфейса для связи компьютеров обычный гигабитный Ethernet слишком медленно. Для этих целей чаще всего используют Infiniband. Хост адаптер Infiniband относительно сервера стоит недорого. Например, на международном аукционе Ebay такие адаптеры продают по цене от $40. Например, адаптер X4 DDR (20Gb/s) обойдется с доставкой до России примерно в $100.

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

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

Сколько нужно видеокарт

В самом мощном суперкомпьютере современности Cray Titan отношение процессоров к «видеокартам» 1:1, то есть в нем 18688 16-ядерных процессоров и 18688 Tesla K20X.

В Тяньхэ-1А – китайском суперкомпьютере на ксеонах отношение следующее. Два шестиядерных процессора к одной «видюшке» Nvidia M2050 (послабее, чем K20X).

Такое отношение мы и примем для наших сборок за оптимальное (ибо дешевле). То есть 12-16 ядер процессоров на один GPU. На таблице ниже жирным обозначены практически возможные варианты, подчеркиванием – наиболее удачные с моей точки зрения.

GPU Cores 6-core CPU 8-core CPU 12-core CPU 16-core CPU
2 24 32 4
5
3
4
2
3
2
2
3 36 48 6
8
5
6
3
4
2
3
4 48 64 8
11
6
8
4
5
3
4

Если система с уже установленным отношением процессоров/видеокарт сможет принять «на борт» еще дополнительно вычислительных устройств, то мы их добавим, чтобы увеличить мощность сборки.

Итак, сколько стоит

Представленные ниже варианты – шасси суперкомпьютера без оперативной памяти, жестких дисков и ПО. Во всех моделях используется видеоадаптер AMD HD 7970 GHz Edition. Его можно заменить на другой, по требованию задачи (например, на xeon phi). Там, где система позволяет, одна из AMD HD 7970 GHz Edition заменена на трехслотовую AMD HD 7990 Devil 13.
Вариант 1 на материнской плате Supermicro H8QGL-6F


Материнская плата Supermicro H8QGL-6F 1 1200 1200
Процессор AMD Opteron 6344 4 500 2000
Кулер Процессора Thermaltake CLS0017 4 40 160
Корпус 1400Вт SC748TQ-R1400B 1 1000 1000
Графический ускоритель AMD HD 7970 GHz Edition 3 500 1500
5860

Теоретически, производительность составит около 12 Tflops.
Вариант 2 на материнской плате TYAN S8232, кластерный


Эта плата не поддерживает Opteron 63xx, поэтому используется 62xx. В этом варианте два компьютера объединены в кластер по Infiniband x4 DDR двумя кабелями. Теоретически скорость соединения в этом случае упрется в скорость PCIe x8 то есть 32Гб/с. Блоков питания используется два. Как их согласовать между собой, можно найти в интернете.
Количество Цена Сумма
Материнская плата TYAN S8232 1 790 790
Процессор AMD Opteron 6282SE 2 1000 2000
Кулер Процессора Noctua NH-U12DO A3 2 60 120
Корпус Antec Twelve Hundred Black 1 200 200
Блок питания FSP AURUM PRO 1200W 2 200 400
Графический ускоритель AMD HD 7970 GHz Edition 2 500 1000
Графический ускоритель AX7990 6GBD5-A2DHJ 1 1000 1000
Infiniband адаптер X4 DDR Infiniband 1 140 140
Infiniband кабель X4 DDR Infiniband 1 30 30
5680 (за один блок)

Для кластера таких конфигураций нужно две и стоимость их составит $11360 . Его энергопотребление при полной нагрузке будет около 3000Вт. Теоретически, производительность составит до 31Tflops.

Кластерные вычислительные системы стали продолжением развития идей, заложенных в архитектуре MPA-систем. Если в MPAсистеме в качестве законченного вычислительного узла выступает процессорный модуль, то в кластерных системах в качестве таких вычислительных узлов используют серийно выпускаемые компьютеры. Развитие коммуникационных технологий, а именно, появление высокоскоростного сетевого оборудования и специальных программных библиотек, например, MPI (Message Passing Interface), реализующих механизм передачи сообщений по стандартным сетевым протоколам, сделали кластерные технологии общедоступными. В настоящее время создается множество небольших кластерных систем посредством объединения вычислительных мощностей компьютеров лаборатории или учебного класса.

Привлекательной чертой кластерных технологий является то, что для достижения необходимой производительности они позволяют строить гетерогенные системы, т. е. объединять в единые вычислительные системы компьютеры самого разного типа, начиная от персональных компьютеров и заканчивая мощными суперкомпьютерами. Широкое распространение кластерные технологии получили как средство создания систем суперкомпьютерного класса из составных частей массового производства, что значительно удешевляет стоимость вычислительной системы. В частности, одним из первых в 1998 году был реализован проект The COst effective COmputing Array (COCOA), в котором на базе 25 двухпроцессорных персональных компьютеров общей стоимостью порядка 100000 долларов была создана система с производительностью, эквивалентной 48-процессорному Cray T3D стоимостью несколько миллионов долларов.

Лайал Лонг (Lyle Long), профессор аэрокосмической инженерии в университете штата Пенсильвания (Penn State University), считает, что относительно дешевые кластерные вычислительные системы вполне могут служить альтернативой дорогим суперкомпьютерам в научных организациях. Под его руководством в университете был построен кластер COCOA. В рамках данного проекта объединены 25 ра-

бочих станций от DELL, каждая из которых включает два процессора Pentium II/400 МГц, 512 МБ оперативной памяти, 4-гигабайтный жесткий диск SCSI и сетевой адаптер Fast Ethernet. Для связи узлов используется 24-портовый коммутатор Baynetworks 450T с одним модулем расширения. Установленное программное обеспечение включает операционную систему RedHat Linux, компиляторы Fortran 90 и HPF от Portland Group, свободно распространяемую реализацию MPI - Message Passing Interface Chameleon (MPICH) и систему поддержки очередей DQS.

В работе, представленной на 38-й конференции Aerospace Science Meeting and Exhibit, Лонг описывает параллельную версию расчетной программы с автоматическим распределением вычислительной нагрузки, используемой для предсказания уровня шума от вертолетов в различных точках. Для сравнения данная расчетная программа была запущена на трех различных 48-процессорных компьютерах для расчета шума в 512 точках. На системе Cray T3E расчет занял 177 секунд, на системе SGI Origin2000 - 95 секунд, а на кластере COCOA - 127 секунд. Таким образом, кластеры являются очень эффективной вычислительной платформой для задач такого класса.

Преимущество кластерных систем перед суперкомпьютерами состоит еще и в том, что их владельцам не приходится делить процессорное время с другими пользователями, как в крупных суперкомпьютерных центрах. В частности, COCOA обеспечивает более 400 тысяч часов процессорного времени в год, тогда как в суперкомпьютерных центрах бывает трудно получить 50 тысяч часов.

Конечно, о полной эквивалентности этих систем говорить не приходится. Как известно, производительность систем с распределенной памятью очень сильно зависит от производительности коммутационной среды, которую можно охарактеризовать двумя параметрами: латентностью - временем задержки при посылке сообщения, и пропускной способностью - скоростью передачи информации. Например, для компьютера Cray T3D эти параметры составляют соответственно 1 мкс и 480 Мб/с, а для кластера, в котором в качестве коммутационной среды использована сеть Fast Ethernet, - 100 мкс и 10 Мб/с. Это отчасти объясняет очень высокую стоимость суперкомпьютеров. При таких параметрах, как у рассматриваемого кластера, найдется не так много задач, которые могут эффективно решаться на достаточно большом числе процессоров.

На основе вышеизложенного дадим определение: кластер - это связанный набор полноценных компьютеров, используемый в качестве единого вычислительного ресурса. В качестве узлов кластеров могут использоваться как одинаковые (гомогенные кластеры), так и разные (гетерогенные кластеры) вычислительные машины. По своей архитектуре кластерная вычислительная система является слабосвязанной. Для создания кластеров обычно используются либо простые однопроцессорные персональные компьютеры, либо двухили четырехпроцессорные SMP-серверы. При этом не накладывается никаких ограничений на состав и архитектуру узлов. Каждый из узлов может функционировать под управлением своей собственной операционной системы. Чаще всего используются стандартные операционные системы Linux, FreeBSD, Solaris, Tru64 Unix, Windows NT.

В литературе отмечают четыре преимущества, достигаемые с помощью кластеризации вычислительной системы:

абсолютная масштабируемость;

наращиваемая масштабируемость;

высокий коэффициент готовности;

соотношение цена/производительность.

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

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

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

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

И наконец, кластерные системы обеспечивают недостижимое для суперкомпьютеров соотношение цена/качество . Кластеры любой производительности можно создать, используя стандартные «строительные блоки», при этом стоимость кластера будет ниже, чем оди-

ночной вычислительной машины с эквивалентной вычислительной мощностью.

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

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

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

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

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

Различие между представленными кластерами заключается в том, что в случае локальной сети узлы используют локальные дисковые массивы, а в случае выделенной линии узлы совместно используют один избыточный массив независимых жестких дисков или так называемый RAID (Redundant Array of Independent Disks). RAID состоит из нескольких дисков, управляемых контроллером, взаимосвязанных скоростными каналами и воспринимаемых внешней системой как единое целое. В зависимости от типа используемого массива могут обеспечиваться различные степени отказоустойчивости и быстродействия.

Процессор

Процессор

Высокоскоростная

Процессор

Процессор

магистраль

Устройство

Устройство

Устройство

Устройство

ввода/вывода

ввода/вывода

ввода/вывода

ввода/вывода

Дисковый

Дисковый

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

Дисковый

Устройство

Устройство

Процессор

Процессор

ввода/вывода

ввода/вывода

Процессор

Процессор

Устройство

Устройство

Устройство

Устройство

ввода/вывода

ввода/вывода

ввода/вывода

ввода/вывода

Дисковый

Высокоскоростная

Дисковый

магистраль

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

Рассмотрим наиболее распространенные типы дисковых масси-

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

RAID1 (mirroring - зеркалирование) - массив, состоящий как минимум из двух дисков. Достоинствами являются приемлемая скорость записи и выигрыш в скорости чтения при распараллеливании запросов, а также высокая надежность: работает до тех пор, пока функционирует хотя бы один диск в массиве. Вероятность выхода из строя сразу двух дисков равна произведению вероятностей отказа каждого диска. На практике при выходе из строя одного из дисков следует срочно принимать меры: вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва. Достоинство такого подхода - поддержание постоянной доступности. Недостаток заключается в том, что приходится оплачивать стоимость двух жестких дисков, получая полезный объем одного жесткого диска.

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

Более полное представление о кластерных вычислительных системах дает классификация кластеров по используемым методам кластеризации, которые определяют основные функциональные особенности системы:

кластеризация с пассивным резервированием;

кластеризация с активным резервированием;

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

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

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

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

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

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

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

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

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

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

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

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

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

Разработано множество технологий объединения компьютеров в кластер. Наиболее широко в данное время применяется технология Ethernet, что обусловлено простотой ее использования и низкой стоимостью коммуникационного оборудования. Однако за это приходится расплачиваться заведомо недостаточной скоростью обменов.

Разработчики пакета подпрограмм ScaLAPACK, предназначенного для решения задач линейной алгебры на многопроцессорных системах, в которых велика доля коммуникационных операций, формулируют требование к многопроцессорной системе следующим образом: «Скорость межпроцессорных обменов между двумя узлами, измеренная в МБ/с, должна быть не менее 1/10 пиковой производительности вычислительного узла, измеренной в MFLOPS».

Топологии кластеров

Рассмотрим топологии, характерные для так называемых «малых» кластеров, состоящих из двух - четырех узлов.

Топология кластерных пар используется при организации двухили четырехузловых кластеров (рис.5.5.3 ). Узлы группируются попарно, дисковые массивы присоединяются к обоим узлам, входящим в состав пары, причем каждый узел пары имеет доступ ко всем дисковым массивам данной пары. Один из узлов пары используется как резервный для другого.

Четырехузловая кластерная пара представляет собой простое расширение двухузловой топологии. Обе кластерные пары с точки зрения администрирования и настройки рассматриваются как единое целое.

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

Коммутатор

кластера

кластера

кластера

кластера

Дисковый

Дисковый

Дисковый

Дисковый

Рис. 5.5.3. Топология кластерных пар

Топология + 1 позволяет создавать кластеры из двух, трех и четырех узлов (рис.5.5.4 ). Каждый дисковый массив подключается только к двум узлам кластера. Дисковые массивы организованы по схеме RAID1 (mirroring). Один сервер имеет соединение со всеми дисковыми массивами и служит в качестве резервного для всех остальных (основных или активных) узлов. Резервный сервер может использоваться для обеспечения высокой степени готовности в паре с любым из активных узлов.

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

Топология × аналогично топологии + 1 позволяет создавать кластеры из двух, трех и четырех узлов, но в отличие от нее обладает большей гибкостью и масштабируемостью (рис.5.5.5 ).

Коммутатор

кластера

кластера

кластера

кластера

Коммутатор

кластера

кластера

кластера

кластера

Коммутатор

Дисковый

Дисковый

Дисковый

Рис. 5.5.5. Топология ×

Только в этой топологии все узлы кластера имеют доступ ко всем дисковым массивам, которые, в свою очередь, строятся по схеме RAID1 (mirroring). Масштабируемость топологии проявляется в простоте добавления к кластеру дополнительных узлов и дисковых массивов без изменения соединений в системе.

кластера

кластера

кластера

кластера

Дисковый

Дисковый

Дисковый

Дисковый

Рис. 5.5.6. Топология с полностью раздельным доступом

Топология с полностью раздельным доступом допускает соединение каждого дискового массива только с одним узлом кластера (рис. 5.5.6 ). Рекомендуется лишь для тех приложений, для которых характерна архитектура полностью раздельного доступа.

Контрольные вопросы

1. Дайте определение кластерной вычислительной системы.

2. Назовите основные достоинства и недостатки кластерных вычислительных систем.

3. Какие классификации кластерных вычислительных систем вы

4. Какие топологии кластерных систем вам известны? Назовите их достоинства и недостатки.

Литература

1. Архитектуры и топологии многопроцессорных вычислительных систем / А.В. Богданов, В.В. Корхов, В.В. Мареев, Е.Н. Станкова . - М.: ИНТУИТ.РУ, 2004. - 176 с.

2. Микропроцессорные системы: учеб. пособие для вузов /

Е.К. Александров, Р.И. Грушвицкий, М.С. Куприянов и др.; под ред. Д.В. Пузанкова. - СПб.: Политехника, 2002. - 935 с.

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

Аналитики из IDC подсчитали, что объем рынка кластеров в 1997 году составлял всего 85 млн. долл., тогда как в прошлом году этот рынок «стоил» уже 367,7 млн. долл. Тенденция роста налицо.

Итак, попробуем расставить все точки над «i». На сегодняшний день не существует какого-либо четкого определения кластера. Более того, нет ни одного стандарта, четко регламентирующего кластер. Однако не стоит отчаиваться, ведь сама суть кластеризации не подразумевает соответствие какому-либо стандарту. Единственное, что определяет, что кластер - это кластер, так это набор требований, предъявляемых к таким системам. Перечислим эти требования (четыре правила):l надежность;l доступность функции (готовность);l масштабируемость;l вычислительная мощность. Исходя из этого сформулируем определение кластера. Кластер - это система произвольных устройств (серверы, дисковые накопители, системы хранения и пр.), обеспечивающих отказоустойчивость на уровне 99,999%, а также удовлетворяющая «четырем правилам». Для примера: серверный кластер - это группа серверов (обычно называемых узлами кластера), соединенных и сконфигурированных таким образом, чтобы предоставлять пользователю доступ к кластеру как к единому целостному ресурсу.

Отказоустойчивость

Несомненно, основной характеристикой в кластере является отказоустойчивость. Это подтверждает и опрос пользователей: 95% опрошенных ответили, что в кластерах им необходимы надежность и отказоустойчивость. Однако не следует смешивать эти два понятия. Под отказоустойчивостью понимается доступность тех или иных функций в случае сбоя, другими словами, это резервирование функций и распределение нагрузки. А под надежностью понимается набор средств обеспечения защиты от сбоев. Такие требования к надежности и отказоустойчивости кластерных систем обусловлены спецификой их использования. Приведем небольшой пример. Кластер обслуживает систему электронных платежей, поэтому если клиент в какой-то момент останется без обслуживания для компании-оператора, это ему будет дорого стоить. Другими словами, система должна работать в непрерывном режиме 24 часа в сутки и семь дней в неделю (7Ѕ24). При этом отказоустойчивости в 99% явно не достаточно, так как это означает, что почти четыре дня в году информационная система предприятия или оператора будет неработоспособной. Это может показаться не таким уж и большим сроком, учитывая профилактические работы и техническое обслуживание системы. Но сегодняшнему клиенту абсолютно безразличны причины, по которым система не работает. Ему нужны услуги. Итак, приемлемой цифрой для отказоустойчивости становится 99,999%, что эквивалентно 5 минутам в год. Таких показателей позволяет достичь сама архитектура кластера. Приведем пример серверного кластера: каждый сервер в кластере остается относительно независимым, то есть его можно остановить и выключить (например, для проведения профилактических работ или установки дополнительного оборудования), не нарушая работоспособность кластера в целом. Тесное взаимодействие серверов, образующих кластер (узлов кластера), гарантирует максимальную производительность и минимальное время простоя приложений за счет того, что:l в случае сбоя программного обеспечения на одном узле приложение продолжает функционировать (либо автоматически перезапускается) на других узлах кластера;l сбой или отказ узла (или узлов) кластера по любой причине (включая ошибки персонала) не означает выхода из строя кластера в целом;l профилактические и ремонтные работы, реконфигурацию и смену версий программного обеспечения в большинстве случаев можно осуществлять на узлах кластера поочередно, не прерывая работу приложений на других узлах кластера.Возможные простои, которые не в состоянии предотвратить обычные системы, в кластере оборачиваются либо некоторым снижением производительности (если узлы выключаются из работы), либо существенным сокращением (приложения недоступны только на короткий промежуток времени, необходимый для переключения на другой узел), что позволяет обеспечить уровень готовности в 99,99%.

Масштабируемость

Высокая стоимость кластерных систем обусловлена их сложностью. Поэтому масштабируемость кластера довольно актуальна. Ведь компьютеры, производительность которых удовлетворяет сегодняшние требования, не обязательно будет удовлетворять их и в будущем. Практически при любом ресурсе в системе рано или поздно приходится сталкиваться с проблемой производительности. В этом случае возможно два варианта масштабирования: горизонтальное и вертикальное. Большинство компьютерных систем допускают несколько способов повышения их производительности: добавление памяти, увеличение числа процессоров в многопроцессорных системах или добавление новых адаптеров или дисков. Такое масштабирование называется вертикальным и позволяет временно улучшить производительность системы. Однако в системе будет установлено максимальное поддерживаемое количество памяти, процессоров или дисков, системные ресурсы будут исчерпаны. И пользователь столкнется с той же проблемой улучшения характеристик компьютерной системы, что и ранее.Горизонтальное масштабирование предоставляет возможность добавлять в систему дополнительные компьютеры и распределять работу между ними. Таким образом, производительность новой системы в целом выходит за пределы предыдущей. Естественным ограничением такой системы будет программное обеспечение, которые вы решите на ней запускать. Самым простым примером использования такой системы является распределение различных приложений между разными компонентами системы. Например, вы можете переместить ваши офисные приложения на один кластерный узел приложения для Web на другой, корпоративные базы данных - на третий. Однако здесь возникает вопрос взаимодействия этих приложений между собой. И в этом случае масштабируемость обычно ограничивается данными, используемыми в приложениях. Различным приложениям, требующим доступ к одним и тем же данным, необходим способ, обеспечивающий доступ к данным с различных узлов такой системы. Решением в этом случае становятся технологии, которые, собственно, и делают кластер кластером, а не системой соединенных вместе машин. При этом, естественно, остается возможность вертикального масштабирования кластерной системы. Таким образом, за счет вертикального и горизонтального масштабирования кластерная модель обеспечивает серьезную защиту инвестиций потребителей.В качестве варианта горизонтального масштабирования стоит также отметить использование группы компьютеров, соединенных через коммутатор, распределяющий нагрузку (технология Load Balancing). Об этом довольно популярном варианте мы подробно расскажем в следующей статье. Здесь мы лишь отметим невысокую стоимость такого решения, в основном слагаемую из цены коммутатора (6 тыс. долл. и выше - в зависимости от функционального оснащения) и хост-адаптер (порядка нескольких сот долларов за каждый; хотя, конечно, можно использовать и обыкновенные сетевые карты). Такие решения находят основное применение на Web-узлах с высоким трафиком, где один сервер не справляется с обработкой всех поступающих запросов. Возможность распределения нагрузки между серверными узлами такой системы позволяет создавать на многих серверах единый Web-узел.

Beowulf, или Вычислительная мощность

Часто решения, похожие на вышеописанные, носят названия Beowulf-кластера. Такие системы прежде всего рассчитаны на максимальную вычислительную мощность. Поэтому дополнительные системы повышения надежности и отказоустойчивости просто не предусматриваются. Такое решение отличается чрезвычайно привлекательной ценой, и, наверное, поэтому наибольшую популярность приобрело во многих образовательных и научно-исследовательских организациях. Проект Beowulf появился в 1994 году - возникла идея создавать параллельные вычислительные системы (кластеры) из общедоступных компьютеров на базе Intel и недорогих Ethernet-сетей, устанавливая на эти компьютеры Linux и одну из бесплатно распространяемых коммуникационных библиотек (PVM, а затем MPI). Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с суперкомпьютерной. Как показывает практика, построить такую систему довольно просто. Все, что для этого нужно, это высокопроизводительный коммутатор и несколько подсоединенных к нему рабочих станций (серверов) с установленной операционной системой Linux. Однако этого недостаточно. Для того чтобы эта груда железа ожила, необходимо специальное программное обеспечение для параллельных вычислений.Наиболее распространенным интерфейсом параллельного программирования в модели передачи сообщений является MPI (Message Passing Interface). Название «Интерфейс передачи сообщений» говорит само за себя. Это хорошо стандартизованный механизм для построения параллельных программ в модели обмена сообщениями. Существуют бесплатные (!) и коммерческие реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и Windows NT. В настоящее время MPI - наиболее широко используемый и динамично развивающийся интерфейс своего класса. Рекомендуемая бесплатная реализация MPI - пакет MPICH, разработанный в Аргоннской Национальной Лаборатории. Стандартизацией MPI занимается MPI Forum. Последняя версия стандарта - 2.0. В этой версии к MPI добавлены такие важные функции, как динамическое управление процессами, односторонние коммуникации (Put/Get), параллельный ввод-вывод.Постоянный спрос на высокие вычислительные мощности обусловил появление привлекательного для многих производителей рынка. Некоторые из них разработали собственные технологии соединения компьютеров в кластер. Наиболее известные из них - Myrinet производства MyriCom и cLAN фирмы Giganet. Myrinet является открытым стандартом. Для его реализации MyriCom предлагает широкий выбор сетевого оборудования по сравнительно невысоким ценам. На физическом уровне поддерживаются сетевые среды SAN (System Area Network), LAN (CL-2) и оптоволокно. Технология Myrinet дает высокие возможности масштабирования сети и в настоящее время очень широко используется при построении высокопроизводительных кластеров. Giganet занимается разработкой программных и аппаратных средств для непосредственного взаимодействия центральных процессорных устройств серверов кластера на гигабитных скоростях, минуя функции ОС. Стоимость решения составляет: около 2500 долл. - за 8-портовый коммутатор, 150 долл. - за адаптер для Myrinet, около 6250 долл. - за 8-портовый коммутатор и 800 долл. - за адаптер для Giganet. Последняя, кстати, получила на выставке Microsoft Tech Ed 2000 премию «Best of Show». В качестве примера приведем реализацию Beowulf-кластера в Институте высокопроизводительных вычислений и баз данных Министерства науки и технической политики РФ. Кластер, получивший название «ПАРИТЕТ», создан на базе общедоступных комплектующих для персональных компьютеров и рабочих станций и обеспечивает суммарную пиковую производительность 3,2 GFLOP/sec. Кластер состоит из четырех двухпроцессорных вычислительных узлов, на базе процессоров Intel Pentium II/450MHz. На каждом узле установлена оперативная память объемом 512 Мбайт и 10-гигабайтный жесткий диск на интерфейсе Ultra Wide SCSI. Вычислительные узлы кластера объединены высокопроизводительным коммутатором Myrinet (каналы с пропускной способностью 1,28 Гбайт/с, полный дуплекс). Имеется также резервная сеть, используемая для управления и конфигурирования (100 Mbit Fast Ethernet). На узлах вычислительного кластера установлена операционная система Linux (дистрибутив Red Hat 5,2). Для программирования параллельных приложений используются интерфейсы передачи сообщений MPI/PVM.

Мини-кластер от Dell и Compaq

Помимо коммутаторного решения для построения кластера существует еще целый ряд решений - как аппаратных, так и программных. Некоторые решения являются комплексными и поставляются «As is» - «все в одной коробке». Последний вариант - назовем его «кластер в коробке» - также является довольно популярным решением, поскольку рассчитан на массовый рынок и является кластером начального уровня (по производительности и параметрам масштабирования). Однако построение таких систем, взаимосвязь внутренних компонентов, надежность и отказоустойчивость полностью соответствуют «большим» системам. Для того чтобы разобраться, как устроен кластер, рассмотрим две похожие системы производства - Compaq и Dell. Кластеры от этих известных игроков компьютерного рынка построены из двух серверов DELL - PowerEdge 6100 либо PowerEdge 4200 и, в свою очередь, Compaq - Proliant 1850R. В качестве программного обеспечения используется Microsoft Cluster Server (Compaq, Dell) или Novell High-Availability Services for NetWare 4.0 / Clustering Services for NetWare 5.0 (Compaq). Программное обеспечение позволяет сконфигурировать два сервера таким образом, что, если в одном из серверов кластера происходит сбой, выполняемая им работа и приложения будут сразу же автоматически перенесены на другой сервер, что позволяет устранить простои. Оба сервера кластера предоставляют свои ресурсы для выполнения производственной работы, поэтому ни один из них не простаивает зря в ожидании, пока другой не выйдет из строя.Представленная на рисунке конфигурация является типичным кластером с реализацией принципа безотказности, обеспечивающим высокую степень работоспособности и дублирования компонентов на системном уровне. Связь между двумя серверами осуществляется по так называемому пульсирующему соединению (Heartbeat) выделенного участка локальной сети. При возникновении сбоя на основном сервере второй сервер, следящий за поступающими по пульсирующему соединению сообщениями, узнает об отключении основного сервера и перекладывает на себя рабочую нагрузку, выполнявшуюся вышедшей из строя машиной. В число выполняемых функций входит запуск прикладных программ, процессов и обслуживания, требуемых для ответа на запросы клиентов на предоставление доступа к вышедшему из строя серверу. Хотя каждый из серверов кластера должен иметь все ресурсы, требуемые для возложения на себя функций другого сервера, основные выполняемые обязанности могут быть абсолютно разными. Вторичный сервер, входящий в кластер с реализацией принципа безотказности, отвечает требованию предоставления возможности «горячего» резервирования, но помимо этого он может выполнять и свои собственные приложения. Однако, несмотря на массовое дублирование ресурсов, у такого кластера есть «узкое» место (bottle neck) - интерфейс шины SCSI и разделяемой системы внешней памяти, выход которых из строя влечет за собой сбой кластера. Хотя, по утверждениям производителей, вероятность этого ничтожно мала.Такие мини-кластеры прежде всего рассчитаны на автономную работу без постоянного контроля и администрирования. В качестве примера использования можно привести решение для удаленных офисов больших компаний для обеспечения высокой готовности (7Ѕ24) наиболее ответственных приложений (баз данных, почтовых систем и т.д.). С учетом повышения спроса на мощные и в то же время отказоустойчивые системы начального уровня рынок для этих кластеров выглядит довольно благоприятным. Единственное «но» в том, что не каждый потенциальный потребитель кластерных систем готов выложить за двухсерверную систему около 20 тыс. долл.

Сухой остаток

В качестве резюме следует отметить, что у кластеров наконец-то появился массовый рынок. Такой вывод легко можно сделать исходя из прогнозов аналитиков Standish Group International, которые утверждают, что в следующие два года общемировой рост количества установленных кластерных систем составит 160%. Кроме того, аналитики из IDC подсчитали, что объем рынка кластеров в 1997 году составлял всего 85 млн. долл., а в прошлом году этот рынок «стоил» уже 367,7 млн. долл. Тенденция роста налицо. И действительно, потребность в кластерных решениях сегодня возникает не только в крупных центрах обработки данных, но и в небольших компаниях, которые не хотят жить по принципу «скупой платит дважды» и вкладывают свои деньги в высоконадежные и легкомасштабируемые кластерные системы. Благо, что вариантов реализации кластера более чем достаточно. Однако при выборе какого-либо решения не следует забывать, что все параметры кластера взаимозависимы. Другими словами, нужно четко определить приоритеты на необходимые функциональные возможности кластера, поскольку при увеличении производительности уменьшается степень готовности (доступность). Увеличение производительности и обеспечение требуемого уровня готовности неизбежно ведет к росту стоимости решения. Таким образом, пользователю необходимо сделать самое важное - найти золотую середину возможностей кластера на текущий момент. Это сделать тем труднее, чем больше разнообразных решений предлагается сегодня на рынке кластеров.При подготовке статьи использованы материалы WWW-серверов: http://www.dell.ru/ , http://www.compaq.ru/ , http://www.ibm.ru/ , http://www.parallel.ru/ , http://www.giganet.com/ , http://www.myri.com/

КомпьютерПресс 10"2000

Государственный Университет Информационно-Коммуникационных Технологий

Реферат

с дисциплины «Компьютерная схемотехника»

на тему: «Современные кластерные системы и их использование»

Выполнил: студент группы КСД-32

Музалевский Евгений


Вступление 3

1. Общие принципы клстерных систем 4

2. Классификация 4

3. Использование кластерный систем 5

Выводы 6

Список литературы 6
Вступление

Кластер - это модульная многопроцессорная система, созданная на базе стандартных вычислительных узлов, соединенных высокоскоростной коммуникационной средой. Сейчас слова «кластер» и «суперкомпьютер» в значительной степени синонимы, но прежде чем об этом стало можно с уверенностью говорить, аппаратные средства прошли длительный цикл эволюции. В течение первых 30 лет с момента появления компьютеров, вплоть до середины 1980-х гг., под «суперкомпьютерными» технологиями понимали исключительно производство специализированных особо мощных процессоров. Однако появление однокристального микропроцессора практически стерло разницу между «массовыми» и «особо мощными» процессорами, и с этого момента единственным способом создания суперкомпьютера стал путь объединения процессоров для параллельного решения одной задачи.

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


1. Общие принципы кластерных систем

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

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

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

В качестве вычислительных узлов в кластере обычно используются
однопроцессорные персональные компьютеры, двух- или четырехпроцессорные SMP-
серверы. Каждый узел работает под управлением своей копии операционной
системы, в качестве которой чаще всего используются стандартные
операционные системы: Linux, NT, Solaris и т.п. Состав и мощность узлов
может меняться даже в рамках одного кластера, давая возможность создавать
неоднородные системы. Выбор конкретной коммуникационной среды определяется
многими факторами: особенностями класса решаемых задач, необходимостью
последующего расширения кластера и т.п. Возможно включение в конфигурацию
специализированных компьютеров, например, файл-сервера, и, как правило,
предоставлена возможность удаленного доступа на кластер через Internet.
Из определения архитектуры кластерных систем следует, что она включает в
себя очень широкий спектр систем.

2. Классификация

Кластерные системы могут использовать самые разные платформы и, как правило, классифицируются не по набору комплектующих, а по областям применения. Выделяют четыре типа кластерных систем: вычислительные кластеры, кластеры баз данных, отказоустойчивые кластеры и кластеры для распределения загрузки. Самая многочисленная группа - вычислительные кластеры. Она может быть разбита на подгруппы; правда, классификации внутри этой группы подлежат уже не собственно вычислительные машины, а готовые программно-аппаратные кластерные решения. Такие системы «под ключ» имеют предустановленное прикладное ПО, необходимое заказчику для решения его задач. Решения, оптимизированные для разных приложений, различаются подбором компонентов, обеспечивающим наиболее производительную работу именно этих приложений при наилучшем соотношении цена/качество.

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

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

Работа кластерных систем обеспечивается четырьмя видами специализированных приложений, как то: операционные системы (как правило, Linux), средства коммуникации, средства разработки параллельных приложений и ПО для администрирования кластеров.

3. Использование кластерных систем

Разработчики архитектур кластерных систем преследовали различные цели при
их создании. Первой была фирма Digital Equipment с кластерами VAX/VMS.
Целью создания этой машины было повышение надежности работы системы,
обеспечение высокой готовности и отказоустойчивости. В настоящее
время существует множество аналогичных по архитектуре систем от других
производителей.

Другой целью создания кластерных систем является создание дешевых
высокопроизводительных параллельных вычислительных систем. Один из первых
проектов, давший имя целому классу параллельных систем – кластер Beowulf
– возник в центре NASA Goddard Space Flight Center для поддержки
необходимыми вычислительными ресурсами проекта Earth and Space Sciences.
Проект Beowulf начался летом 1994 года, и вскоре был собран 16-процессорный
кластер на процессорах Intel 486DX4/100 МГц. На каждом узле было
установлено по 16 Мбайт оперативной памяти и по 3 сетевых Ethernet-
адаптера. Эта система оказалась очень удачной по отношению
цена/производительность, поэтому такую архитектуру стали развивать и
широко использовать в других научных организациях и институтах.
Для каждого класса кластеров характерны свои особенности архитекуры и
применяемые аппаратные средства.

В среднем отечественные суперкомпьютеры пока еще сильно уступают западным по производительности: машины, используемые для научных исследований, в 15 раз, вычислительные ресурсы финансовых компаний - в 10 раз, промышленные суперкомпьютеры - в 9 раз.


Выводы

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

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

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