Ефективні кластерні рішення
* Апаратура SCI (і програмне забезпечення підтримки) допускає побудову так званих MASH топологій без використання комутаторів
Малюнок 10. Тісно пов'язана мультипроцессорная система з несиметричним доступом до пам'ятіОднією цікавою особливістю комунікаційних інтерфейсів, які забезпечують низькі затримки, є те, що на їх основі можна будувати системи з архітектурою NUMA, а також системи, які на рівні програмного забезпечення можуть моделювати багатопроцесорні SMP системи. Перевагою такої системи є те, що ви можете використовувати стандартні операційні системи і програмне забезпечення, орієнтоване на використання в SMP рішеннях, але в зв'язку з високою, в кілька разів вище в порівнянні з SMP затримкою междупроцессорного взаємодії, швидкодія такої системи буде Малопрогнозована.
Існує кілька різних підходів до програмування паралельних обчислювальних систем:
на стандартних широко поширених мовах програмування з використанням комунікаційних бібліотек і інтерфейсів для організації межпроцессорного взаємодії (PVM, MPI, HPVM, MPL, OpenMP, ShMem)
використання спеціалізованих мов паралельного програмування і паралельних розширень (паралельні реалізації Fortran і C / C ++, ADA, Modula-3)
використання засобів автоматичного і напівавтоматичного розпаралелювання послідовних програм (BERT 77, FORGE, KAP, PIPS, VAST)
програмування на стандартних мовах з використанням паралельних процедур із спеціалізованих бібліотек, які орієнтовані на вирішення завдань в конкретних областях, наприклад: лінійної алгебри, методів Монте-Карло, генетичних алгоритмів, обробки зображень, молекулярної хімії, і т.п. (ATLAS, DOUG, GALOPPS, NAMD, ScaLAPACK).
Існує також чимало інструментальних засобів, які спрощують проектування паралельних програм. наприклад:
CODE - Графічна система для створення паралельних програм. Паралельна програма зображується у вигляді графа, вершини якого є послідовні частини програми. Для передачі повідомлень використовуються PVM і MPI бібліотеки.
TRAPPER - Комерційний продукт німецької компанії Genias. Графічне середовище програмування, яка містить компоненти побудови паралельного програмного забезпечення.
З досвіду користувачів високошвидкісних кластерних систем, найбільш ефективно працюють програми, спеціально написані з урахуванням необхідності межпроцессорного взаємодії. І навіть незважаючи на те, що програмувати на пакетах, які використовують shared memory interface або засоби автоматичного розпаралелювання, значно зручніше, найбільше поширені сьогодні бібліотеки MPI і PVM.
З огляду на масову популярність MPI (The Message Passing Interface), хочеться трохи про нього розповісти.
Для оцінки функціональності MPI, хочу представити вашій увазі графік залежності часу обчислення завдання рішення систем лінійних рівнянь в залежності від кількості задіяних процесорів в кластері. Кластер побудований на процесорах Intel і системі міжвузлових з'єднань SCI (Scalable Coherent Interface). Природно, завдання приватна, і не треба розуміти отримані результати як загальну модель прогнозування швидкодії бажаної системи.
Малюнок 11. Залежність часу обчислення завдання рішення систем лінійних рівнянь в залежності від кількості задіяних процесорів в кластеріЗасоби реалізації High Availability кластерів
High Availability кластери можна розподілити на:
Shared Nothing Architecture (архітектура без поділу ресурсів)
Shared Disk Architecture (архітектура з загальними дисками)
Малюнок 12. Архітектура без поділу ресурсівАрхітектура без розподілу ресурсів не використовує загальної системи зберігання даних. При її використанні кожен вузол має свої дискові накопичувачі, які не використовуються спільно вузлами кластерної системи. Фактично, на апаратному рівні поділяються тільки комунікаційні канали.
Малюнок 13. Архітектура з загальними дискамиАрхітектура з загальними дисками класично використовується для побудови кластерних систем високої готовності, орієнтованих на обробку великих обсягів даних. Така система складається із загальної системи зберігання даних і вузлів кластера, які розподіляють доступ до загальних даних. При високій потужності системи зберігання даних, при роботі з завданнями, орієнтованими на їх обробку, архітектура із загальними дисками є більш ефективною. В цьому випадку не потрібно тримати кілька копій даних і в той же час, при виході з ладу вузла, завдання можуть бути миттєво доступні для інших вузлів.
У разі, якщо в задачі вдається логічно розділити дані для того, щоб запит з деякого підмножини запитів можна було б обробити з використанням частини даних, то система без поділу ресурсів може виявитися більш ефективним рішенням.
Малюнок 14. Гетерогенна кластерна системаНайпопулярнішими комерційними системами сьогодні є двовузлового відмовостійкі кластери. Розрізняють Активний-Активний (Active-Active) і Активний-Пасивний (Active-Passive) моделі реалізації відмовостійких кластерних систем щодо розподілу програмних ресурсів.
Малюнок 15. Модель Активний-Активний Малюнок 16. Активний-Активний кластер на 3-х вузлахДуже часто користувачі зустрічаються з такою проблемою, коли потрібно забезпечити відмовостійке функціонування вже готових програмних рішень. На жаль, модель Активний-Активний в такому випадку не працює. Для подібних ситуацій використовується модель, в якій забезпечується міграція цілей, які виконували на вузлі, що вийшов з ладу, на інші вузли. Таким чином, ми отримуємо реалізацію Активний-Пасивний.
Малюнок 17. Модель Активний-ПасивнийЗ огляду на те, що в багатьох випадках ми можемо розбити одну задачу на кілька розподілом зон відповідальності, а також те, що в загальному випадку на підприємстві потрібно виконувати багато різних завдань, реалізується так звана модель кластерної системи псевдо Активний-Активний.
Малюнок 18. Псевдо Активний-Активний кластер на 3-х вузлахЯкщо вам потрібно забезпечити отказоустойчивую роботу декількох програмних ресурсів, то досить додати в систему новий вузол і запустити на кластері потрібні вам завдання, які в разі відмови цього вузла перейдуть на виконання на іншому вузлі. Така модель реалізована в програмному забезпеченні ReliantHA для ОС Caldera OpenUnix і Unixware, яке підтримує кластеризацію від 2-х до 4-х вузлів, в MSCS (Microsoft Cluster Service) і Linux Failover Cluster моделі.
Система комунікацій в відмовостійких кластерних системах може бути побудована на такому ж обладнанні, як і в високошвидкісних кластерах. Але в разі реалізації архітектури з розділяються дисковим накопичувачем, виникає необхідність забезпечення високошвидкісного доступу до загальної системи зберігання даних. Це завдання має сьогодні безліч варіантів рішень.
Якщо використовується найпростіша 2-х вузлова модель, то доступ до дисків може бути побудований через їх пряме підключення до загальної SCSI шині,
Малюнок 19. Архітектура із загальною SCSI шиноюабо за допомогою автономної дискової підсистеми з вбудованим контролером SCSI to SCSI. В останньому випадку диски підключаються до внутрішніх незалежних каналах дискової підсистеми.
Малюнок 20. Варіант з використанням SCSI to SCSI дискової підсистемиВаріант з використанням SCSI to SCSI дискової підсистеми є більш масштабованим, функціональним і ВІДМОВОСТІЙКО. Незважаючи на те, що з'являється ще один місток між вузлом і дисками, швидкість такої системи зазвичай вище, так як ми отримуємо комутований доступ до накопичувача (ситуація схожа на використання концентратора і комутатора в локальній мережі). На відміну від варіанту з поділом доступу до дисків на загальну SCSI шині, окрема незалежна дискова підсистема має також зручну можливість побудови систем без точок відмови і можливість побудови багатовузлових конфігурацій.
Останнім часом починає набувати популярності новий послідовний інтерфейс для протоколу SCSI - FC (Fibre Channel). На базі FC будуються так звані мережі зберігання даних - SAN (Storage Area Network).
Малюнок 21. Кластерна система з використанням SAN на базі Fibre ChannelДо основних переваг Fibre Channel можна віднести практично всі його особливості.
Високі швидкості передачі даних
Протокол-незалежність (0-3 рівні)
Великі відстані між точками
Низькі затримки при передачі коротких пакетів
Висока надійність передачі даних
Практично необмежена масштабування
Ці чудові особливості Fibre Channel отримав завдяки тому, що в його проектуванні брали участь фахівці в областях як канальних, так і мережевих інтерфейсів, причому їм вдалося об'єднати в одному FC інтерфейсі позитивні риси обох.
Для розуміння значущості FC я приведу порівняльну табличку FC і паралельного SCSI інтерфейсу.
Таблиця 2. Таблиця порівняльних характеристик FC і паралельного SCSI інтерфейсу
точка-точка, надзвичайно складна реалізація пристрою комутації каналів
Сьогодні FC пристрої коштують дорожче, ніж пристрої з паралельним SCSI, але різниця в ціні в останнім часом різко зменшується. Диски і системи зберігання даних вже практично рівні за вартістю з паралельними SCSI реалізаціями, значну різницю у вартості забезпечують тільки FC адаптери.
Існує ще один дуже цікавий варіант реалізації кластерної архітектури - кластерна система з пам'яттю (в т.ч. оперативної) Shared Memory Cluster. Фактично цей кластер може функціонувати як в моделі помірно пов'язаної багатопроцесорноїсистеми, так і тісно пов'язаної. Така система, як уже говорилося на початку статті, називається NUMA.
Малюнок 22. Модель кластера з пам'яттюКластер з пам'яттю, що використовує програмне забезпечення (кластерні сервіси), яке забезпечує один образ системи (single system image), навіть якщо кластер побудований як архітектура без розподілу ресурсів, яким його відповідно бачить операційна система.
На завершення розповіді про кластерні системах високої готовності, хочу привести статистику по простоїв різних систем.
Малюнок 23. Порівняння середнього часу простою різних системЯк бачимо, кластерні системи високої готовності не є панацеєю при мінімізації простоїв. Якщо простий системи є надзвичайно критичним, тоді слід використовувати системи класу Fault Tolerant або Continuous Availability, системи такого класу мають коефіцієнт готовності на порядок вище, ніж системи класу High Availability.
Приклади перевірених рішень
Так як успішність будь-якої технології доводиться прикладами її практичного використання, я хочу показати конкретні варіанти реалізації декількох найважливіших, на мій погляд, кластерних рішень.
Спершу про високошвидкісних кластерах.
У IBM SP2 в якості вузлів використовуються машини RS / 6000, з'єднані комутатором SP Switch2. Пропускна здатність комутатора - 500MB / s в одному напрямку, величина затримки - 2.5 мксек.
Compaq AlphaServer SC. Вузли - 4-х процесорні системи типу Compaq AlphaServer ES45, з'єднані за допомогою комунікаційного інтерфейсу QsNet, параметри якого згадувалися вище.
У тому ж суперкомпьютерном списку знаходяться машини, побудовані на звичайних Intel платформах і комутаторах SCI і Myrinet і навіть звичайному Fast і Gigabit Ethernet. Причому як в перших двох варіантах, так і на високошвидкісних кластерних системах, побудованих на рядовому обладнанні, для програмування використовуються пакети MPI.
Ну і наостанок хочеться привести красивий приклад масштабируемой кластерної системи високої готовності. Апаратна модель кластерного рішення для відмовостійкої високошвидкісної обробки бази даних IBM DB / 2.
Малюнок 24. Кластер IBM DB2На цьому все. Якщо у кого виникнуть питання, поради чи бажання поспілкуватися - ласкаво просимо. Мої координати ви знайдете в кінці статті.
"Sizing Up Parallel Architectures", - Greg Pfister, старший технічний фахівець компанії IBM.
"Чи можлива відмовостійкість для Windows?", - Наталя Пирогова, матеріали видавництва «Відкриті системи».
"Використання систем розпаралелювання завдань в слабо зв'язаної кластері", - М.Н.Іванов.
"Відмовостійкі комп'ютери компанії Stratus", - Віктор Шнітман, матеріали видавництва «Відкриті системи».
"Сучасні високопродуктивні комп'ютери", - В. Шнітман, інформаційно-аналітичні матеріали Центру Інформаційних Технологій.
"Крок до мереж зберігання даних", інформаційно-аналітичні матеріали компанії ЮСТАР.
"Еволюція архітектури віртуального інтерфейсу", - Торстен фон Айкен, Вернер Фогельс, матеріали видавництва «Відкриті системи».
Матеріали Лабораторії Паралельних Інформаційних Технологій "НИВЦ МГУ".
Матеріали Cluster Computing Info Centre.
Матеріали SCI Europe.
Матеріали VI Forum (Virtual Architecture Developers Forum).
Матеріали компанії Caldera.
Матеріали компанії Dolphinics.
Матеріали компанії Emulex.
Матеріали компанії KAI Software, a Division of Intel Americas, Inc. (KAI).
Матеріали компанії Myricom, Inc.
Матеріали компанії Oracle.
Рекомендації технічної підтримки корпорації Intel.