Кластер »- що це значить, about netapp

Модне слово «кластер», на жаль, зараз зовсім девальвувалося від частого, часто невірного і невиправданого вживання.
Давайте для початку визначимо поняття з тим, щоб в подальшому визначити, що «кластером» є, а що ні.

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

Як правило це продукт, в тій чи іншій мірі копіює свого найбільш послідовного представника - обчислювальний кластер проекту Beowulf. Зазвичай це безліч приблизно однотипних обчислювальних систем під управлінням OS Linux, на яких встановлені «вузли» обчислювального кластера, і комп'ютер-планувальник, що розподіляє завдання за такою многоузловой мережі для їх паралельної обробки.
Beowulf-кластер є майже ідеальний кластер, він практично лінійно масштабується до сотень і тисяч вузлів, він нечутливий до виходу з ладу як одного, так і кількох своїх вузлів. За винятком одного мінуса: в задачах реальному житті його застосовність досить обмежена.
Beowulf прекрасно працює на завданнях, які алгоритмічно діляться на безліч однотипних операцій. Але, на жаль, такі операції зустрічаються головним чином в науці. Це такі операції як розкладання на множники, перетворення Фур'є, будь-які інші операції, що вимагають якоїсь мінімальної порції даних і виконання над нею якийсь відносно невеликий операції, незалежно від всіх інших учасників процесу.
Якщо ми візьмемо, наприклад, найбільш функціонально придатну завдання «реальному житті» - вибірку з бази даних, а до такого завдання найчастіше і зводиться більшість бізнес-задач, то ми побачимо, що завдання «SELECT * FROM TABLE», як не прикро, не може бути распараллелена. На такому завданні Beowulf-type cluster практично не має переваги перед одиночним комп'ютером.

Відмов кластер (active-passive)
Традиційним представником такого роду продуктів є добре відомий і широко застосовуваний продукт Veritas Cluster Server (VCS, нині належить компанії Symantec). Також відомі продукти Microsoft Cluster Services (поставляється в складі Windows Server Enterprise Edition) і Legato AAM (Automated Availability Manager, нині EMC AutoStart).
Це в чистому вигляді відмовостійкий кластер. Додаток виповнюється на якійсь платформі, стан платформи контролюється ПО кластера, в разі недостатності тих чи інших ресурсів (обсягу пам'яті, продуктивності процесора) або недоступності, прикладна задача (по можливості коректно) зупиняється на існуючому вузлі і рестарт на іншому, наявному в розпорядженні кластерного софта . Тим самим забезпечується доступність прикладної задачі і якийсь заданий рівень Quality of Service.
Конкретне додаток в кожен конкретний момент часу виповнюється на якійсь одній конкретній платформі (сервері).

Паралельний кластер (active-active)

На відміну від вищеописаного кластера моделі active-passive, в якому лише один вузол в будь-який момент часу є активним, а інший вузол або вузли знаходяться в «гарячому резерві», чекаючи відмови або відсутності активного вузла з тим, щоб запустити на собі додаток і продовжити виконання завдання, всі вузли кластера моделі active-active активні і виконують прикладну задачу паралельно. Це трохи нагадує раніше розглянутий обчислювальний кластер Beowulf, в якому обчислювальні вузли отримують свої порції даних для обробки від вузла діспетчера- «планувальника». Однак, як ми вже розглянули вище, це вимагає дуже непростий організації як самого завдання, що дозволяє себе распараллеливать на незалежні потоки, так і можливості забезпечувати спільне використання даних як на читання, так і на запис.
Саме складність, а отже і дорожнеча вирішення цих завдань обмежувала поява і застосування кластерів додатків типу active-active. В іншому ж він функціонально подібний до вже розглянутим.
Найбільш відомим представником такого виду кластерів є продукт Oracle RAC (Real Application Cluster).

Всі перераховані вище варіанти кластера відносяться до розряду кластерів додатків. Зрозуміло, дані, з якими працюють ці програми (наприклад база даних) зберігаються десь, але це знаходиться поза «компетенції» і «сфери відповідальності» кластера додатки. З його точки зору дані апріорі завжди коректні і доступні. Більшість кластерів додатків встановлюються так, щоб використовувати common storage, «загальний диск», загальний і доступний для всіх вузлів кластера, де і зберігаються при необхідності дані виконуваного на них додатки. Або організовується реплікація для підтримки консистентним копії, в разі якщо систем зберігання кілька, наприклад у кожного вузла кластера свій. Однак, дискова підсистема зберігання також може так чи інакше вийти з ладу. Відмовостійку організацію системи зберігання будемо називати «кластером зберігання».

Як ні парадоксально, але навіть проста структура RAID відповідає нашим визначенням кластера, так RAID-1 або RAID-5 є «пристроями, що вони бережуть свою функціональність при виході з ладу довільних складових їх компонентів (дисків)». Але спробуємо розглянути більш просунуті і складні варіанти отказоустойчивого сховища, адже система зберігання складається не тільки зі складових її дисків.

Відмов кластер (active-passive)

Такими нині є практично всі наявні на ринку серйозні системи зберігання. Будь-яка система зберігання enterprise-класу поставляється з дубльованими блоками харчування і модулями контролера управління, вихід з ладу будь-якого з пари контролерів не призводить до виходу з ладу або тривалої відсутності системи зберігання і зберігаються на ній даних. Зазвичай кожна дискова група закріплена за якимось конкретним контролером, її обслуговуючим (т.зв «ownership»), в разі виходу його з ладу, операції доступу до дискового розділу, який обслуговувався вийшли з ладу контролером, перехоплюються справним контролером, який починає обслуговувати як свої розділи, так і розділи загиблого товариша.
Таким чином, можна говорити, що така конструкція буде «кластером active-passive», тому що не дивлячись на те, що обидва контролера працюють, виконуючи операції введення-виведення, для кожного конкретного дискового розділу один контролер буде owner-му, що забезпечує операції, а другий - резервним, а для іншого розділу - навпаки.

Паралельний кластер (active-active)

Паралельний кластер в системах зберігання поки представлений одиничними продуктами.
Такими насамперед є кластерні конфігурації систем зберігання Network Appliance (двох-і більше вузлові, в версії Data ONTAPGX до 24 вузлів), які до того ж можуть бути, на відміну від розглянутих вище, і територіально розподіленими: що толку від високонадійній системи, яку заллє гарячої водою лопнула вночі батареї?
Такі системи прийнято називати grid-системами. Компоненти таких систем активно розвиваються в даний час, наприклад, в OS Linux, і на базі таких систем зі спеціальною Global File System будуються багатовузловий обчислювальні і "охоронна" кластерні системи.
Без сумніву за grid-системами велике майбутнє, але поки такі системи (за перерахованими вище винятками від того ж NetApp) знаходяться в стані експериментальних.