Як би не ставитися до Microsoft сьогодні, не можна не визнати, що вся історія компанії пройшла під гаслом зведення високих технологій до рівня простих смертних. Домени і служби каталогів, СУБД і бізнес-аналітика, віртуалізація і приватні «хмари» ... Так, все це відбувалося в контексті конкурентної боротьби (і в результаті багато конкурентів були істотно потіснили на ринку або взагалі зникли), але, тим не менш , сучасний стан ІТ в значній мірі визначено саме Microsoft - не випадково ще в 2007 р в її екосистемі було задіяно 42% всіх ІТ-фахівців в світі. Звичайно, не завжди всецелевие технології і продукти Microsoft відразу ж ставали врівень зі спеціалізованими рішеннями, проте ключові незмінно вибивалися в лідери за показником ціна / можливості і простоті впровадження. Одним з таких прикладів як раз і є кластери.
Взагалі, кластери бувають різні, наприклад, обчислювальні . Однак до останніх Microsoft явно втратила інтерес, так що в лінійці Windows Server 2012 редакції HPC вже немає. Крок досить логічний, оскільки на цій ниві Windows так і не вдалося досягти значних результатів (про що свідчить статистика Top500 суперкомп'ютерів ), А крім того, в силу специфіки високопродуктивних обчислень, набагато перспективніше виглядає Windows Azure. Тому ми, як і Microsoft, зосередимося на кластерах високої доступності.
Кластери в Windows
Вперше їх підтримку Microsoft реалізувала ще в Windows NT 4 Server Enterprise Edition у вигляді Microsoft Cluster Service (MSCS), яка в Windows Server 2008 перетворилася в роль Failover Clustering. Такі кластери часто не цілком коректно називають відмовостійкими, хоча правильніше було б говорити про високодоступних кластерах або кластерах з обробкою відмови (що, власне, і означає failover). У загальному випадку (тобто без спеціальних додаткових заходів) вихід з ладу того вузла кластера, до якого йде звернення, буде означати саме відмова в обслуговуванні, однак кластерізуемие сервіси автоматично перезапустити на іншому вузлі і, таким чином, будуть готові до роботи в найкоротший термін.
Високодоступних кластер на Windows повинен об'єднувати як мінімум два вузла з відповідними ОС і ролями, підключені до зовнішньої і внутрішньої (призначеної для обміну службовими повідомленнями, heartbeat) мереж і загальним сховища для службових ресурсів (диск-свідок для кворуму, witness) і даних кластерізуемих додатків . Вузли можуть працювати за схемою Active-Passive, коли сервіси виконуються тільки на одному з них, а інший працює в черговому режимі, або Active-Active, коли обидва вузла несуть корисне навантаження.
Зрозуміло, що за свою досить довгу історію підтримка кластерів в Windows зазнала великих змін. Спочатку вони, втім, були в основному екстенсивними - поліпшувалася масштабованість (до 64 вузлів в Windows Server 2012), розширювався список кластерізуемих сервісів. В першу чергу були підтримані файлові і мережеві служби, потім - SQL Server (Windows Server 2000), Exchange Server (Windows Server 2003), багато інших стандартні ролі і служби, в тому числі і Hyper-V (Windows Server 2008).
Саме віртуалізація і позиціонування Windows Server в якості хмарної ОС дали новий поштовх до вдосконалення підтримки кластерів, що цілком логічно - підвищена щільність обчислень накладає додаткові вимоги на надійність і доступність інфраструктури. Відповідно, саме в цій області, починаючи з Windows Server 2008, зосереджено більшість удосконалень. Зокрема, в Windows Server 2008 R2 з'явилися загальні томи кластера (Cluster Shared Volumes, CSV) Hyper-V, які дозволили вузлів одночасно звертатися до однієї файлової системи NTFS, в результаті чого кілька кластерних віртуальних машин (ВМ) можуть використовувати один LUN і незалежно мігрувати з вузла на вузол.
Удосконалення кластерної підтримки Hyper-V продовжилося і в Windows Server 2012. Наприклад, з'явилася можливість управляти пріоритетами віртуальних машин на рівні всього кластера, які визначають порядок перерозподілу пам'яті, відновлення ВМ в разі виходу з ладу вузлів або штатної масової міграції (Live для високопріоритетних, Quick для низько-) та ін. Моніторинг було розширено на служби всередині ВМ - тепер при збоях контрольованої служби можна автоматично перезапустити не тільки її саму, а й всю ВМ або навіть виконати міграцію на інший ( наприклад, менш навантажений) вузол. Але найбільш цікаві нововведення кластеризації в Windows Server 2012 зосереджені в дещо іншій області.
Кластери в Windows Server 2012
Для початку необхідно сказати пару слів про нові технології з розряду базових, які або використовуються кластерами, або дозволяють розширити їх можливості.
SMB 3.0
Протокол SMB (Server Message Block) забезпечує в Windows мережевий обмін даними. Саме він використовується при читанні, запису та інших файлових операціях на віддалених ресурсах. Версія 3.0 є принциповим оновленням і містить велику кількість удосконалень, в значній частині орієнтованих на оптимізацію функціонування SQL Server, Hyper-V і файлових кластерів. У нашому контексті особливий інтерес представляють наступні новинки:
прозора відмовостійкість (Transparent Fileover). При збої або відключенні одного з вузлів файлового кластера поточні операції перериваються, а автоматично передаються іншому вузлу. Таким чином стає можливою схема Active-Active (до 8 вузлів);
масштабування. Нова реалізація спільних томів кластера (CSV 2.0) забезпечує доступ до файлів одночасно через всі вузли кластера, тим самим агрегируя пропускну здатність і здійснюючи балансування навантаження;
SMB Multichannel. Агрегує пропускну здатність і забезпечує відмовостійкість при наявності декількох мережевих шляхів між клієнтом і сервером з підтримкою SMB 3.0;
SMB Direct. Підтримка мережевих адаптерів з технологією RDMA, яка здійснює передачу даних безпосередньо в пам'ять програми, практично не задіюючи CPU.
Важливо відзначити, що, для використання цих та багатьох інших можливостей, SMB 3.0 необхідний на обох кінцях з'єднання. Саме тому Microsoft рекомендує використовувати сервери і клієнти одного покоління, в даному випадку - Windows Server 2012 і Windows 8. C підтримкою SMB 3.0 в Windows 7, на жаль, все як і раніше туманно.
Storage Spaces
Ця технологія вперше з'явилася в Windows Server 2012 і Windows 8. Про останню ми вже писали , Відмінності серверної реалізації мінімальні - підтримка нової файлової системи ReFS з додатковими функціями відмовостійкості (але не в кластерах); призначення дисків в пулі для гарячої заміни (Hot Spare) на випадок виходу інших з ладу або оперативної заміни вичерпав свій ресурс SSD; ширші можливості тонкої настройки за допомогою PowerShell.
Якщо коротко, то Storage Spaces є програмну реалізацію RAID з багатьма цікавими додатковими функціями. Спочатку накопичувачі з прямим доступом необхідно об'єднати в пули. Вони, в принципі, можуть бути будь-яких типів і ємностей, але захоплюватися екзотичними комбінаціями не варто, в усякому разі без чіткого розуміння принципів функціонування технології.
Потім на пулах можна створювати власне простору, або віртуальні диски (не плутати з VHD / VHDX) трьох доступних типів:
простий (Simple) - аналог RAID 0;
дзеркало (Mirror), дво- або тристоронній. У першому випадку мова йде про RAID 1, у другому - про якийсь більш складною схемою, на зразок RAID 1E;
з контролем парності (Parity) - аналог RAID 5, що забезпечує мінімальний перевитрата простору при мінімальній же відмовостійкості.
Storage Spaces, звичайно, виникли не на порожньому місці. Схожі можливості досить давно присутні в Windows Server, зокрема, в формі динамічних дисків. Storage Spaces, однак, покликана вивести технологію на новий рівень і зробити її більш вживаною. Однією з переваг є тонка ініціалізація (thin provisioning), яка дозволяє призначати віртуальним дискам розміри понад реально доступних в розрахунку на подальше додавання до відповідного пул нових накопичувачів.
Один з найскладніших питань, пов'язаних зі Storage Spaces, - продуктивність. Традиційно вважається, що програмні реалізації RAID поступаються за цим показником апаратним. Однак за деякими відгуками, бувають і зворотні ситуації - скажімо, якщо мова йде про файловому сервері, то Storage Spaces отримує в своє розпорядження потужний процесор і великий об'єм оперативної пам'яті для кешування. У загальному випадку, звичайно, потрібно тестування під конкретний вид навантаження. У цьому контексті, до речі, набувають особливої цінності можливості тонкої настройки Storage Spaces за допомогою PowerShell.
Неважко бачити, що Storage Spaces пропонує відмовитися від RAID-контролерів і дорогих (інтелектуальних) систем зберігання, перенісши їх логіку в ОС. На перший погляд така ідея може здатися сумнівною, однак повною мірою вона розкривається і стає досить привабливою разом з наступною новинкою.
Scale-Out File Server
Так називається новий режим кластерізуемой ролі File Server в Windows Server 2012. Кілька несподіване явище, якщо врахувати, що файловий сервер був кластерізованний одним з перших - ще в Windows NT 4 Server. Але дійсно, тепер для File Server підтримуються два типи кластеризації, назви яких повністю звучать наступним чином: File Server for General Use і Scale-Out File Server (SOFS) for application data. Забігаючи трохи наперед, скажемо, що нове не завжди гарантовано краще - кожна з технологій має свої обмеження і, відповідно, сфери їх застосувань не збігаються:
Таким чином, всецелевой файловий сервер - це старий добрий кластер Active-Passive, тоді як SOFS - Active-Active, тобто відмовостійкий в повному розумінні цього слова. У тому числі і на рівні офіційної термінології, так як для відповідних папок спільного доступу використовується опція Continuously Available. Саме в цій точці сходиться більшість технологій, про які ми писали вище, починаючи з SMB 3.0.
Крім відмовостійкості (безперервної доступності) це також дає збільшену пропускну здатність - при правильному проектуванні мережевої архітектури; мінімізацію впливу CHKDSK, тому що проксірующая файлова система CSV 2.0 (CSVFS) дозволяє CHKDSK виконувати операції, підтримуючи при цьому роботу з томом активних додатків; кешування читання з CSV; більш просте розгортання та управління за рахунок використання CSV. Все що потрібно - створити звичайний кластер, налаштувати те CSV і активізувати роль File Server в режимі Scale-Out File Server for application data.
Ця функціональність і простота її реалізації призвели навіть до появи нового класу рішень - кластер-в-коробці (Сluster-in-a-Box, CiB). Як правило, це шасі з двома лезового серверами і SAS JBOD з підтримкою Storage Spaces. Принциповими є вимоги Двопортовий як SAS JBOD, так і SAS HBA (Host Bus Adapter) для перехресного підключення:
І вся ця система орієнтована саме на організацію SOFS. Якщо ж врахувати, що iSCSI target стандартно вбудований в Windows Server 2012 і також кластеризуються, то фактично таким чином реалізується «саморобна» СГД на основі всецелевой ОС.
Єдиний прикрий момент полягає в тому, що власником CSV як і раніше є один з вузлів, який і відповідає за всі операції з метаданими. Відповідно, велика кількість останніх може негативно позначитися на загальній продуктивності. Саме тому сценарій Information Worker не рекомендується для SOFS, тоді як SQL Server і Hyper-V, навпаки, підходять ідеально - в тому числі, за рахунок функцій агрегації пропускної здатності та ін.
інші новинки
Звичайно, кількість новинок в області кластеризації в Windows Server 2012 значно більше. Вище перераховані лише найважливіші і помітні, але інші, навіть з розряду «дрібниць», також з'явилися не випадково. Так, в продовження розвитку підтримки віртуалізації, було значно спрощено створення гостьових (тобто побудованих з віртуальних машин) кластерів. Якщо в Windows Server 2008 R2 для цього було необхідно надати в загальне користування віртуальних машин iSCSI Target, то Windows Server 2012 навчився віртуалізованних FC-контролер (по аналогії з мережевими адаптерами), завдяки чому ВМ можуть отримувати безпосередній доступ до LUN. Є й більш простий варіант: гостьовим Windows Server 2012 досить надати загальну мережеву папку SMB 3.0.
Одна з нетривіальних завдань - установка в кластері програмних оновлень. Оскільки при цьому може вимагатися перезавантаження вузлів, ясно, що пускати всю процедуру на самоплив ніяк не можна. Можна придумувати різні хитрощі, але Windows Server 2012 пропонує щось краще - Cluster-Aware Updating: один з вузлів призначається координатором, в його завдання входить перевірка оновлень, завантаження їх на кожен вузол і почергове оновлення останніх, починаючи з найменш завантаженого. Таким чином, протягом всієї процедури доступність кластера автоматично зберігається на максимально можливому рівні.
Цікаві новинки також реалізовані в управлінні кворумом. Зокрема, з'явилася можливість давати право голосу не всім вузлам. Само по собі це може стати в нагоді, наприклад, при розміщенні окремих вузлів на віддаленій майданчику, але найцінніше в новій моделі динамічного кворуму. Відповідно до неї, вузол, який по будь-якої причини припинив свою роботу і залишається недоступним певний час, втрачає право голосу (але отримає його назад при повтором підключенні). Відповідно, загальна кількість голосів скорочується і кластер буде зберігати доступність максимальний час.
Новинки Windows Server 2012 R2
На відміну від Windows 8.1, Windows Server 2012 R2 є не оновлення, а повноцінну нову версію ОС. Чергування базових релізів і R2 відповідає модній в індустрії стратегії тик-так, внаслідок чого останні є, в основному, еволюційним розвитком перших. Проте, удосконалення Windows Server 2012 R2 піднімають окремі можливості серверної платформи на якісно новий рівень і перш за все це відноситься до Hyper-V і SOFC.
високодоступних ВМ
Створювати гостьові кластери стало ще простіше, оскільки тепер в якості загального сховища можна використовувати звичайні VHDX, які всередині ВМ представляються як Shared SAS-диски. Самі VHDX повинні розміщуватися в загальних папках SMB 3.0 або на CSV. У ВМ при цьому можуть використовуватися як Windows Server 2012 R2, так і Windows Server 2012 (з оновленими інтеграційними компонентами).
Щоб позбавити адміністратора від зайвих дій і помилок, нова опція DrainOnShutdown, яка активована за замовчуванням, при планових вимкненнях / перезагрузках попередньо переводить вузол в режим обслуговування, що має на увазі евакуацію всіх кластеризованих ролей. В результаті відбувається міграція активних ВМ на інші вузли кластера Hyper-V.
Hyper-V в Windows Server 2012 R2 також здійснює моніторинг мережевих інтерфейсів в ВМ і в разі виникнення проблем ініціює їх міграцію на вузол, де зовнішня мережа залишається доступною.
кворум
У Windows Server 2012 R2 до динамічного кворуму додався динамічний диск-свідок (witness). Ідея полягає в тому, щоб при зміні числа вузлів автоматично враховувати чи ні його голос, завжди підтримуючи загальне число голосів непарних. При недоступності самого диска його голос просто обнуляється. Така схема дозволяє фактично забути про моделях кворуму і покластися на автоматичні механізми, які, до того ж, включені за замовчуванням.
Більш надійним зроблено функціонування кластерів, розміщених на двох майданчиках. Нерідко на кожній налічується рівно половина вузлів, тому в разі порушення комунікацій між ними може виникнути проблема з формуванням кворуму. З багатьма подібними ситуаціями впорається механізм динамічного кворуму, проте в Windows Server 2012 R2 одному з майданчиків (наприклад, резервної) можна явно призначити низький пріоритет, з тим, щоб в разі аварії кластер завжди функціонував на основний. Якщо ж в подібній ситуації кластер був запущений з примусовим кворумом, то, при відновленні комунікацій з віддаленої майданчиком, служби кластера будуть автоматично перезапущени і кластер знову об'єднаний.
CSV 2.1
Реалізація CSV в Windows Server 2012 R2 зазнала безліч змін. Тепер кластер буде рівномірно розподіляти ролі власників томів по вузлах, автоматично реагуючи на зміну їх числа. Додатково відмовостійкість CSV підвищується за рахунок запуску на кожному вузлі кластера двох примірників серверної служби: одного - для обслуговування клієнтського SMB-трафіку, іншого - для забезпечення комунікацій між вузлами. При цьому здійснюється моніторинг служби і при порушенні її роботи роль власника CSV мігрує на інший вузол.
Цілий ряд удосконалення CSV спрямованостей на більш Ефективне использование Storage Spaces и SOFC (відповідно, Заповнена частина прогалин в табліці вищє). Відтепер CSV підтрімують файлову систему ReFS, что відрізняється більш досконалої порівняно з NTFS внутрішньою організацією. ReFS з'явилася в Windows Server 2012 и, в силу новизни, Microsoft просуває ее Досить поступово, но в подалі, судячі з Усього, вона буде играть все більш помітну роль. Такоже на томах CSV тепер доступна дедуплікація, яка в Windows Server 2012 булу прерогативою Виключно всецелевого файлового сервера. Її активація призводить до відключення CSV Block Cache, але в деяких сценаріях (наприклад, VDI) вона може бути досить ефективною. Знято і ще одне обмеження - в Windows Server 2012 R2 томи CSV можуть створюватися на дискових просторах з контролем парності.
Можливість змішувати накопичувачі різних типів спочатку була особливістю Storage Spaces. У Windows Server 2012 R2 вона, нарешті, придбала реальне значення з багаторівневими просторами. Тепер в пулі можна сформувати два рівня - швидкий (SSD) і ємний (HDD), і при створенні віртуального диска виділяти певний обсяг з кожного. Надалі вміст диска буде аналізуватися за визначеним розкладом і переразмещает блоками по 1 МБ: гарячі дані - на SSD, холодні - на HDD. Можна також примусово закріплювати окремі файли на швидкому рівні. Інше застосування багаторівневих просторів - реалізація кешу зі зворотним записом (write-back) на SSD. У разі пікових навантажень на систему зберігання запис буде вестися переважно на швидкий рівень, а в подальшому холодні дані будуть витіснені на HDD.
Мабуть, саме вдосконалення CSV і Storage Spaces можна віднести до найбільш істотним в Windows Server 2012 R2. Разом з базою, закладеної в Windows Server 2012, вони дозволяють будувати не просто надійні файлові сервери, а фактично потужні й гнучкі СГД, що відрізняються високим рівнем масштабованості і відмовостійкості, оснащені сучасними функціями.
Ви можете підписатися на наш Telegram-канал для Отримання найбільш цікавої информации