Титани кластерного фронту рішення для побудови кластерів від microsoft і oracle

Як відомо, кластери дозволяють вирішувати проблеми, пов'язані з продуктивністю, балансуванням навантаження і отказоустойчивостью. Для побудови кластерів використовуються різні рішення і технології, як на програмному, так і на апаратному рівні. У цій статті будуть розглянуті програмні рішення, пропоновані компаніями Microsoft і Oracle.

види кластерів

Кластер - це група незалежних комп'ютерів (так званих вузлів або нодов), до якої можна отримати доступ як до єдиної системи. Кластери можуть бути призначені для вирішення однієї або декількох завдань. Традиційно виділяють три типи кластерів:

  • Кластери високої готовності або відмовостійкі кластери (high-availability clusters або failover clusters) використовують надлишкові вузли для забезпечення роботи в разі відмови одного з вузлів.
  • Кластери балансування навантаження (load-balancing clusters) служать для розподілу запитів від клієнтів по декількох серверах, що створює кластер.
  • Обчислювальні кластери (compute clusters), як випливає з назви, використовуються в обчислювальних цілях, коли завдання можна розділити на кілька підзадач, кожна з яких може виконуватися на окремому вузлі. Окремо виділяють високопродуктивні кластери (HPC - high performance computing clusters), які становлять близько 82% систем в рейтингу суперкомп'ютерів Top500.

Системи розподілених обчислень (gird) іноді відносять до окремого типу кластерів, який може складатися з територіально рознесених серверів з відмінними операційними системами і апаратною конфігурацією. У разі грід-обчислень взаємодії між вузлами відбуваються значно рідше, ніж в обчислювальних кластерах. У грід-системах можуть бути об'єднані HPC-кластери, звичайні робочі станції та інші пристрої.

Таку систему можна розглядати як узагальнення поняття «кластер». Ластер можуть бути налаштовані в режимі роботи active / active, в цьому випадку все вузли обробляють запити користувачів і жоден з них не простоює в режимі очікування, як це відбувається в варіанті active / passive.

Oracle RAC і Network Load Balancing є прикладами active / active кластера. Failover Cluster в Windows Server служить прикладом active / passive кластера. Для організації active / active кластера потрібні більш витончені механізми, які дозволяють декільком вузлам звертатися до одного ресурсу і синхронізувати зміни між усіма вузлами. Для організації кластера потрібно, щоб вузли були об'єднані в мережу, для чого найбільш часто використовується або традиційний Ethernet, або InfiniBand.

Windows Clustering

NLB-кластер використовується для фільтрації та розподілу TCP / IPтрафіка між вузлами. Такий тип кластера призначений для роботи з мережевими додатками - наприклад, IIS, VPN або фаєрволом.

Можуть виникати складнощі з додатками, які покладаючись ються на сесійні дані, при перенаправлення клієнта на інший вузол, на якому цих даних немає. У NLB-кластер можна включати до тридцяти двох вузлів на x64-редакціях, і до шістнадцяти - на x86.

Failoverclustering - це кластеризації з переходом щодо відмови, хоча досить часто термін перекладають як «відмовостійкі кластери».

Додатки з підтримкою кластерів (cluster-aware), розроблені з використанням ClusterAPI, можуть бути захищені від програмних і апаратних збоїв.

Розгортання failover-кластера

На другому етапі на кожен вузол потрібно додати компонент Failover Clustering - наприклад, через Server Manager. Це завдання можна виконати з використанням облікового запису, що володіє адміністративними правами на кожному вузлі. Сервери повинні належати до одного домену. Бажано, щоб всі вузли кластера були з однаковою роллю, причому краще використовувати роль member server, так як роль domain controller чревата можливими проблемами з DNS і Exchange.

Третій не обов'язковий, але бажаний етап полягає в перевірці конфігурації. Перевірка запускається через оснащення Failover Cluster Management. Якщо для перевірки конфігурації вказано тільки один вузол, то частина перевірок буде пропущена.

Після цього можна настроювати програму, яку потрібно настроїти для забезпечення його високої доступності.

Для цього необхідно запустити High Availability Wizard, який можна знайти в Services and Applications оснащення Failover Cluster Management.

Cluster Shared Volumes

У разі failover-кластера доступ до LUN, що зберігає дані, може здійснювати тільки активний вузол, який володіє цим ресурсом. При перемиканні на інший вузол відбувається Демонтується LUN і монтування його для іншого вузла. У більшості випадків ця затримка не є критичною, але при віртуалізації може вимагатися взагалі нульова затримка на перемикання віртуальних машин з одного вузла на інший.

CSV дозволяє розміщувати на загальному сховищі віртуальні машини, що запускаються на різних вузлах кластера - тим самим розбивається залежність між ресурсами додатки (в даному випадку віртуальними машинами) і дисковими ресурсами. В якості файлової системи CSV використовує звичайну NTFS. Для включення CSV необхідно в Failover Cluster Manage виконати команду Enable Cluster Shared Volumes. Відключити підтримку CSV можна тільки через консоль:

Для використання цієї команди повинен бути завантажений Failover Clusters, модуль PowerShell. Використання CSV спільно з live migration дозволяє переміщати віртуальні машини між фізичними серверами в лічені мілісекунди, без обриву мережевих з'єднань і зовсім прозоро для користувачів. Варто відзначити, що копіювати будь-які дані (наприклад, готові віртуальні машини) на загальні диски, що використовують CSV, слід через вузол-координатор.

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

Oracle RAC

Oracle Real Application Clusters (RAC) - це додаткова опція Oracle Database, яка вперше з'явилася в Oracle Database 9i під назвою OPS (Oracle Parallel Server). Опція надає можливість декількох екземплярах спільно звертатися до однієї бази даних. Базою даних в Oracle Database називає ся сукупність файлів даних, що лог-файли, файлів параметрів і деяких інших типів файлів. Для того, щоб призначені для користувача процеси могли отримати доступ до цих даних, повинен бути запущений екземпляр. Примірник (instance) в свою чергу складається з структур пам'яті (SGA) і фонових процесів. У відсутності RAC отримати доступ до бази даних може строго один екземпляр.

Опція RAC не поставляється з Enterprise Edition і купується окремо. Варто відзначити, що при цьому RAC йде в складі Standard Edition, але дана редакція має велику кількість обмежень у порівнянні з Enterprise Edition, що ставить під сумнів доцільність її використання.

Oracle Grid Infrastructure

Для роботи Oracle RAC потрібно Oracle Clusterware (або стороннє ПО) для об'єднання серверів в кластер. Для більш гнучкого управління ресурсами вузли такого кластера можуть бути організовані в пули (з версії 11g R2 підтримується два варіанти управління - на підставі політик для пулів або, в разі їх відсутності, адміністратором).

У другому релізі 11g Oracle Clusterware був об'єднаний з ASM під загальною назвою Oracle Grid Infrastructure, хоча обидва компонента і продовжують встановлюватися за різними шляхами.

Automatic Storage Management (ASM) - менеджер томів і файлова система, які можуть працювати як в кластері, так і з singleinstance базою даних. ASM розбиває файли на ASM Allocation Unit.

Розмір Allocation Unit визначається параметром AU_SIZE, який задається на рівні дискової групи і становить 1, 2, 4, 8, 16, 32 або 64 MB. Далі Allocation Units розподіляються по ASM-дискам для балансування навантаження або віддзеркалення. Надмірність може бути реалізована, як засобами ASM, так і апаратно.

ASM-диски можуть бути об'єднані в Failure Group (тобто групу дисків, які можуть вийти з ладу одночасно - наприклад, диски, під'єднані до одного контролеру), при цьому віддзеркалення здійснюється на диски, що належать різним Failure Group. При додаванні або видаленні дисків ASM автоматично здійснює розбалансування, швидкість якої задається адміністратором.

На ASM можуть поміщатися лише файли, що відносяться до бази даних Oracle, такі як керуючі і журнальні файли, файли даних або резервні копії RMAN. Примірник бази даних не може взаємодіяти безпосередньо з файлами, які розміщені на ASM. Для забезпечення доступу до даних дискова група повинна бути попередньо змонтована локальним ASM-екземпляром.

Oracle рекомендує використовувати ASM як рішення для управління зберіганням даних замість традиційних менеджерів томів, файлових систем або RAW-пристроїв.

Розгортання Oracle RAC

Розглянемо етапи установки різних компонентів, необхідних для функціонування Oracle RAC в режимі active / active кластера з двома вузлами. Як дистрибутива будемо розглядати останню на момент написання статті версію Oracle Database 11g Release 2. В якості операційної системи візьмемо Oracle Enterprise Linux 5. Oracle Enterprise Linux - операційна система, що базується на RedHat Enterprise Linux. Її основні відмінності - ціна ліцензії, технічна підтримка від Oracle і додаткові пакети, які можуть використовуватися додатками Oracle.

Підготовка ОС до установки Oracle стандартна і полягає в створенні користувачів і груп, завданні змінних оточення і параметрів ядра. Параметри для конкретної версії ОС і БД можна знайти в Installation Guide, який поставляється разом з дистрибутивом.

На вузлах повинен бути налаштований доступ до зовнішніх загальних дисків, на яких будуть зберігатися файли бази даних і файли Oracle Clusterware. До останніх відносяться votingdisk (файл, який визначає учасників кластера) і Oracle Cluster Registry (містить конфігураційну інформацію - наприклад, які екземпляри і сервіси запущені на конкретному вузлі). Рекомендується створювати непарна кількість votingdisk. Для створення і налаштування ASMдісков бажано використовувати ASMLib, яку треба встановити на всіх вузлах:

# Rpm -Uvh oracleasm-support-2.1.3-1.el4.x86_64.rpm

Спочатку здійснюється установка Grid Infrastructure. Для цього завантажуємо і розпаковуємо дистрибутив, потім запускаємо інсталятор. В процесі установки необхідно вказати ім'я кластера; вказати вузли, які будуть входити в кластер; вказати призначення мережевих інтерфейсів; налаштувати сховище.

В кінці потрібно виконати з правами root скрипти orainstRoot.sh і root.sh. Першим на всіх вузлах виконується скрипт orainstRoot.sh, причому запуск на наступний вузол здійснюється тільки після завершення роботи скрипта на попередньому. Після виконання orainstRoot.sh послідовно на кожному вузлі виконується root.sh. Перевірити успішність установки можна за допомогою команди:

/ U01 / grid / bin / crsctl check cluster -all

Виконавши перевірку, можна приступати до установки бази даних. Для цього запускаємо Oracle Universal installer, який використовується і для звичайної установки бази.

Крім active / active-кластера в версії 11g R2 існують дві можливості для створення active / passive-кластера. Одна з них - Oracle RACOneNode. Інший варіант не вимагає ліцензії для RAC і реалізується засобами Oracle Clusterware. У цьому випадку спочатку створюється загальне сховище; потім встановлюється Grid Infrastructure, з використанням ASM_CRS і SCAN; а після цього на вузли встановлюється база даних в варіанті Standalone. Далі створюються ресурси і скрипти, які дозволяють запускати екземпляр на іншому вузлі в разі недоступності першого.

висновок

Oracle RAC спільно з Oracle Grid Infrastructure дозволяють реалізувати різноманітні сценарії побудови кластерів. Гнучкість налаштування і широта можливостей компенсуються ціною такого рішення.

Рішення ж Microsoft обмежені не тільки можливостями самої кластеризації, а й продуктами, які можуть працювати в такому середовищі. Хоча варто відзначити, що набір таких продуктів все одно ширше, ніж одна база даних.

Посилання по темі