Хмара на Microsoft Hyper-V, частина 3: сховище Storage Spaces

Частина 1: знайомство з панеллю управління
Частина 2: розгортання Exchange Server

Продовжуємо серію статей про віртуальної інфраструктури на Microsoft Hyper-V.
Сьогодні розповімо, як влаштовано сховище на базі Storage Spaces і з якими труднощами ми зіткнулися при його побудові.

Зміст
Архітектура сховища
Проблема продуктивності сховища на Storage Spaces
Що попереду: Storage Spaces Direct


Архітектура сховища

Найбільш складним завданням при створенні хмари Cloud-V виявилося швидкого створення програмно-визначається СГД на базі Microsoft Storage Spaces.

У основі сховища — кластер на базі двох серверів Dell PowerEdge 730 з підключеним до них дисковим масивом Dell PowerVault 3060e.


Архітектура Storage Spaces.

Замість традиційної мережі зберігання SAN ми побудували конвергентну локальну мережу з пропускною здатністю 40 Гбіт. У кластері розгорнули роль Scale-out-file server з підтримкою компонентів SMB Direct і SMB Multichannel.

SMB Multichannel дозволяє балансувати підключення вузлів обчислювального кластера до ресурсів сховища при наявності декількох мережевих адаптерів на сервері. Ми використовували мережеві адаптери Mellanox ConnectX-3 Pro 40GbE, що підтримують функцію ROCE (RDMA over Converged Ethernet).

Компонент SMB Direct використовує ROCE для прямого доступу до пам'яті віддаленого сервера, що знижує мережеві затримки. Додатки з одного вузла звертаються безпосередньо до пам'яті програм на іншому сайті, минаючи мережевий стек операційної системи. У результаті істотно прискорюється передача даних між вузлами.


Взаємодія програми і дискового сховища: без RDMA (ліворуч) і RDMA (праворуч).

Висока продуктивність програмно-визначається СГД Storage Spaces досягається за рахунок використання різного типу дисків (SATA, SAS, SSD). Фактично у нас вийшло багаторівневе сховище, дані в якому розподіляються по різним типам дисків в залежності від інтенсивності використання. Storage Spaces фільтрує дані і відправляє рідко використовувані на нижній рівень (HDD), а «гарячі» дані – на швидкі SSD-диски на верхньому рівні. Такий тип сховища дозволяє більш ефективно використовувати ресурси.


Запис і фільтрація даних в багаторівневому сховище.

Проблема продуктивності сховища на Storage Spaces

Щоб отримати таке розумне сховище і змусити його працювати, нам довелося повоювати. Проблема, з якою ми зіткнулися, – низька швидкість обробки даних. Показники запису SSD-дисків не перевищували 100 Мбіт/сек, що в 10 разів нижче необхідних для нормальної продуктивності. Проблема з'явилася відразу ж при розгортанні ВМ з шаблону: одна ВМ розміром 10 Гб розгорталася 30-40 хвилин, розгортання двох ВМ займало близько двох годин.

Підозра впала на прошивку дисків: дефолтна не підтримувала одночасний доступ з різних нод кластера. Після оновлення прошивки розгортання декількох ВМ перестало приводити до такого сильного падіння продуктивності. Проте все відбувалося раніше довго.

Ми продовжили шукати проблему на самому нижньому рівні архітектури і стали аналізувати процес обміну даними драйвера ОС з диском, а саме: читання і запису секторів на диску. Існує два визначення сектора: логічний і фізичний. Логічним сектором оперує драйвер операційної системи, фізичним – безпосередньо контролер жорсткого диска. В даний час жорсткі диски діляться на три типи за співвідношенням розміру логічний/фізичний сектор:

  • 512 Native – логічний 512, фізичний 512;
  • 512е – логічний 512, фізичний 4096;
  • 4096 Native – логічний 4096, фізичний 4096.
Коли в пулі знаходяться диски одного типу, ніяких проблем з створюваним CSV-томом і розміщеними на ньому файлами віртуальних жорстких дисків немає. Проблеми починаються, коли в пулі об'єднані диски різного типу. У нашому випадку пул містив 512 Native (SATA) і 512е (SSD) диски. Логічно думати, що CSV-те буде створений з логічним сектором 512 байт. В реальності виявилося, що для знову створюваних ВМ розробники встановили за замовчуванням створення CSV-тома з логічним сектором 4096.

У результаті виходила наступна картина:


Схема взаємодії. Фізичний сектор враховується лише на рівні контролера жорсткого диска.

Склалася ситуація, в якій у вищерозміщеного диска логічний сектор менше, ніж у нижележащего. Це призвело до виконання політики Read-Modify-Write: читання сектора 4К в кеш, правка необхідних 512 байт, запис 4К назад на диск. Як наслідок, до катастрофічного падіння продуктивності дискової підсистеми під час запису у 8 разів.


Процес запису 512-байтного сектора на носій з 4096-байтним сектором.

Ми знайшли два шляхи вирішення проблеми:
  1. Нарощування існуючих віртуальних жорстких дисків з розміром логічного сектора 4К. У підсумку цей варіант нам не підійшов, так як не всі компоненти архітектури підтримують віртуальні диски, розташовані на томах з сектором 4096.

  2. Міграція існуючих віртуальних жорстких дисків у тимчасове розташування та нарощування тома CSV з розміром логічного сектора 512. Цей варіант ми і вибрали.
    У наведеній нижче таблиці показані значення швидкості до і після впровадження цього рішення. У випадку «після» перевірка проводилася одночасним запуском тестування DiskSpd на 15 віртуальних машинах.


Що попереду: Storage Spaces Direct

В рамках Windows Server 2016 вийшла оновлена версія Storage Spaces – Storage Spaces Direct. Як обіцяє виробник, у новому рішенні усунені проблеми поточної реалізації програмно-визначається СГД і є нові можливості:

  • Багатопотокова дедупликация, яка дозволяє виділяти певні ядра процесора на процес дедуплікаціі. У Storage Space зараз доступна тільки однопоточне дедупликация на базі одного ядра процесора. Дедупликация в реальному часі неможлива, а сам процес займає багато часу.

  • Ребалансування. Всі дані можна перерозподіляти по томах. Це дозволяє домогтися більшої продуктивності дискової підсистеми. У Storage Space при додаванні нових жорстких дисків в пул дані почнуть потрапляти на додані жорсткі диски тільки після заповнення спочатку виділених дисків.

  • Різні варіанти масштабування. У Storage Spaces масштабування відбувається тільки шляхом додавання нових дискових полиць, що дорого і незручно.
Ми вже почали експериментувати зі Storage Spaces Direct і найближчим часом розповімо про перші враження. Задавайте питання в коментарях.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.