VMWare Virtual SAN (vSAN)
VMWare Virtual SAN (vSAN) є програмно-визначуваною системою зберігання даних (Software Defined Storage) від компанії VMWare. Перша версія цього продукту була випущена в 2014 році і на момент випуску являла собою непоганий продукт, але не для критичних завдань. У лютому 2015 року було випущено версію vSAN 6.0, а в серпні 2015 - vSAN 6.1, які були суттєвим покращенням. Але справжнім проривом стала версія vSAN 6.2, випущена в лютому 2016 року. Її можна сміливо назвати повноцінною системою зберігання даних, у тому числі і для критичних Tier 1 програм. Дуже показовим є той факт, що VMWare Virtual SAN офіційно підтримується компанією SAP для своїх програм. А це дуже багато говорить про надійність та продуктивність даної системи. У грудні 2016 року вийшла версія vSAN 6.5, в якій з'явилася можливість встановлення vSAN кластера на двох серверах, з'єднаних між собою по 10G+ Ethernet без використання комутаторів, плюс witness, що працює на віртуальній машині за межами кластера vSAN (до цього мінімальні вимоги були: три сервери та 10G Ethernet через комутатори).
Перейдемо до більш детального розгляду VMWare Virtual SAN.
Перш за все, хотілося б відзначити, що функціональність vSAN спочатку інтегрована в vSphere Hypervisor (ESXi) і не вимагає додаткової установки, а лише увімкнення та налаштування. Така щільна інтеграція дозволяє досягти найменших витрат на обслуговування дискових операцій, досягаючи при цьому максимально можливої продуктивності дискової підсистеми.
Для зберігання даних використовують локальні диски серверів, на яких працює VMWare vSphere (ESXi). Якщо в дуже загальних рисах описати роботу vSAN, то це - розподілений RAID1 в базовому варіанті (розподілені RAID 5/6 у більш просунутих варіантах), с з кешування на SSD всіх операцій запису, а також кешування читання на SSD. Дискова підсистема кожного сервера поділяється на Cache Tier та Capacity Tier. Cache Tier - це SSD диски, які
виконують функцію кешируючих приладів, а Capacity Tier - це диски на котрих зберігаються дані.
Будь-яка операція запису завжди відбувається синхронно. Спочатку дані записуються на SSD в Cache Tier двох різних серверів, і тільки після цього віртуальна машина отримує підтвердження виконання операції запису.
Окремо хотілося б відзначити дуже високу надійність та відмовостійкість vSAN. Слабким місцем більшості Software Defined Storage є ситуація, коли всі ноди одночасно і не коректно вимикаються (все знеструмлено).
Більшість систем після включення просто не віддають LUN-и клієнтам, вимагаючи, щоб адміністратор вручну вказав, де знаходиться актуальні дані і зробив повну синхронізацію даних між нодами. vSAN же у такій ситуації
веде себе принципово інакше: після включення, процес завантаження займає трохи більше, ніж зазвичай, зате після завантаження всі віртуальні машини запускаються в автоматичному режимі і працюють, не вимагаючи втручання адміністратора і виконання повної синхронізації даних між нодами. Дуже порадувала така поведінка системи в такій не стандартній, але цілком життєвій ситуації.
Рішення на vSAN можна умовно поділити на два типи:
Hybrid: Cache Tier з SSD кешує і запипс і читання (30% об'єму - для запису, 70% - для читання), а Capacity Tier складається з ємних та порівняно недорогих HDD, на яких зберігаються дані. Продуктивність: до 40К IOps на кожний host.
All Flash: Cache Tier із SSD кешує лише запис, а Capacity Tier складається із SSD із меншим ресурсом на запис, на яких дані зберігаються і з яких відбувається все читання. Продуктивність: до 100К IOps на кожний host при затримках дискових операцій <1ms.
Software Checksums. Для кожного 4К блоку даних додатково зберігається контрольна сума розміром 5 байт. Якщо під час читання блоку обчислена контрольна сума не збігається зі збереженою, цей блок зчитується з іншого сервера і перезаписується на місце зіпсованого. Дана функціональність дозволяє звести нанівець помилки, викликані некоректованими помилками читання дисків (10-15 для NL-SAS, 10-16 для Enterprise SAS, 10-17 для більшості SSD), а також запобігає подальшому спотворенню даних (Silent Data Corruption). За замовчуванням, щорічно система автоматично перевіряє всі дані, що зберігаються, на наявність таких помилок і виправляє їх при виявленні (Scrubber mechanism). За бажання, такі перевірки можна робити частіше (кількість перевірок на рік задається параметром VSAN.ObjectScrubsPerYear).
Fault Domains. Якщо сервери можна поділити на так звані "групи відмови" (fault domains), то дані розподілятимуться таким чином, щоб при відмові будь-якої такої групи серверів, не відбулося втрати даних. Хороші приклади
"групи відмови" серверів: підключені до одного UPS, що знаходяться в одній шафі або ДЦ, підключені до одного комутатора. Іншими словами, така група серверів, яка може стати повністю недоступною у разі виникнення певних зовнішніх факторів.
Compression and Deduplication. Підтримка компресії та дедуплікації, що з'явилася у версії vSAN 6.2, можна назвати революційним проривом для системи vSAN. Використовуючи цю функціональність, можна розмістити в кілька разів більше (а для даних, що добре дедуплікуються, і в десятки разів більше) інформації на тих же SSD носіях, що є досить цінним з урахуванням вартості flash накопичувачів. Механізм компресії та дедуплікації працює трохи не так, як у всіх інших рішеннях, з якими доводилося стикатися. У Cache Tier дані зберігаються не стислими та не дедуплікованими. Стиснення і дедуплікація виконуються при переміщенні даних з Cache Tier до Capacity Tier, де вони вже зберігаються стислими та дедуплікованими. Дедуплікація виконується у межах дискової групи. Ця функціональність підтримується лише для AllFlash інсталяцій.
Erasure coding (розподілені RAID5/6). На відміну від розподіленого RAID1, використовуючи Erasure Coding можна побудувати розподілені RAID5 або RAID6, що дозволяє суттєво знизити надмірність даних, що зберігаються.
Але за все потрібно платити. У випадку з розподіленими RAID5/6, як і при використанні цих рівнів RAID в межах дискового масиву, платою за корисний об'єм є продуктивність, яка суттєво нижча, ніж при використанні RAID1.
Якщо максимальна продуктивність є пріоритетом, використовувати цю функціональність не варто. Підтримується лише для AllFlash інсталяцій.
Stretched Cluster (розтягнутий кластер). Повноцінний кластер, географічно розподілений між двома дата центрами. Забезпечується гарантована збереження даних і практично відсутність простою, при відмові одного з ДЦ. Зв'язок між ДЦ допускається за L3 (IP),
але рекомендується за L2 (Ethernet). Мережеві затримки між ДЦ (ping) не повинні перевищувати 5мс (відстань по кабелю - до 200км). Для забезпечення працездатності системи при виникненні ситуації split brain (втрата зв'язку між двома ДЦ), потрібна наявність свідка (witness), розміщеного у третьому ДЦ. В якості witness можна використовувати як фізичний сервер, так і віртуальну машину. Зв'язок між ДЦ і witness допускається по L3, при рівні затримок 100мс.
Swap Efficiency (ефективне використання swap). При включенні віртуальної машини на диску автоматично створюється swap файл, розмір котрого відповідає обсягу пам'яті цієї віртуальної машини. В результаті, дуже багато дискового простору витрачається марно.
У vSAN 6.2 з'явилася можливість застосовувати тонке виділення дискового простору (аналог thin provisioning) для swap-файлів віртуальних машин, що дозволяє зберегти досить суттєвий обсяг дискового простору від марного використання. Включається за допомогою установки параметра VSAN.SwapThickProvisionDisabled=1 в Advanced Systems Settings налаштуванні хоста.
Висновки. VMWare Virtual SAN 6.2 є чудовим рішенням для побудови високопродуктивної та високонадійної системи зберігання даних, котре ми без жодних сумнівів можемо рекомендувати для переважної більшості завдань серверної віртуалізації робочих місць.
|