Наскрiзна передача NVMe SSD у вiртуальну машину VMware

13.03.2023 | Сервери

 

Технологія вводу-виводу VMware VMDirectPath (простими словами, наскрізна передача або прокидання шини PCI) відкриває доступ гостьовим ОС хоста ESXi до шинної периферії, включаючи NVMe SSD. Передача NVMe віртуальним машинам потенційно піднімає продуктивність роботи у додатках. Є й втрати: увімкнення VMDirectPath робить недоступними для VM кілька важливих функцій vSphere, таких як Suspend та Resume, Snapshots, Fault Tolerance і vMotion. Але для серверів під VMware інших варіантів насолодитися NVMe немає - якщо не йдеться про гіперконвергентні кластери з vSAN.

Для використання VMDirectPath I/O треба перш за все переконатися, що пристрої NVMe SSD апаратно підтримуються серверной платформой. В BIOS сервера має бути пiдтримка технології віртуалізації  Intel Directed I/O (VT-d) або AMD I/O. Процесори – не нижче Intel Xeon Scalable processors (Gen 1 …. 4) чи AMD EPYC processors (Gen 2 …. 4).

Тестовий полiгон

Ним буде типовий односокетний сервер на AMD EPYC:

  • Платформа ASUS RS500A-E10-RS12-U
  • Процесор AMD EPYC 7443P 24 cores @2.85GHz
  • 8 x DDR4-3200 32GB reg Kingston {KSM32RS4/32MFR}
  • 240GB M.2 NVMe SSD Kingston DC1000B {SEDC1000BM8/240G} - на цей диск буде встановлено ESXi 7.0 U3
  • 4 x 1.92TB U.2 Kingston DC1500M  - ці диски з використанням VMDirectPath I/O ми віддамо в гостьову ОС.

Вибiр платформи не випадковий. Вона пiдтримує до 12 NVMe SSD формата U.2, є потужною та водночас вiдносно недорогою. Один процесор AMD EPYC с числом ядер вIд 16 до 64 та 128 лiнiями PCIe Gen 4  забезпечує обчислювальними ресурсами насичену віртуалізовану інфраструктуру. Такi вузли зручно використовувати у складi гіперконвергентних кластерів HCI (включно з vSAN). Але цього разу задача скромнiша.

Налаштування UEFI

В BIOS сервера, в параметрах CSM, переходимо в режим в UEFI – щоби завантажитись з NVMe.

Порти PCIe NVMe багатоцільові. В серверах на Intel Xeon, якщо увімкнути Intel VMD (пристрій керування томами) у налаштуваннях UEFI, порт PCIe контролюватиметься функцією VMD. Потрібно налаштувати ці порти як порт PCIe і відключити VMD у опції налаштування UEFI. Для серверів на процесорах AMD не потрібно вмикати параметр UEFI, тому для нашого серверу цей крок можна пропустити.

Гiпервiзор та гостьова ОС

Встановлюємо ESXi 7.0 U3

Заходимо до клієнта хосту

Створюємо нову віртуальну машину та встановлюємо на неї ОC. Ми для прикладу встановили Windows Server 2022.

Перевіряємо встановлену VM

Налаштування наскрізної передачі NVMe

У навігаційному меню переходимо в Manage, а потім у закладку Hardware. У списку знаходимо NVMe диски, встановлюємо маркер навпроти кожного диска і натискаємо Toggle passthough

Статус дисків змінюється на активний

Переходимо до VM в режим редагування

Додаємо PCI device

В данному випадку ми додали чотири NVMe SSD. Отримали попередження, згадуване вище – про втрату деяких функцій з відновлення та переміщення VM.

Коли пристрій призначається, віртуальна машина повинна мати резервування пам'яті. Це означає, що необхідно настроїти резервування пам'яті для пристроїв NVMe, встановити розмір резервування, що дорівнює обсягу пам'яті. Можливо або вибрати «Зарезервувати всю гостьову пам'ять» («Все заблоковано»), або вказати той самий розмір у параметрі «Резервування» та зберегти конфігурацію.

Справу зроблено. Перевіряємо що вийшло. Запускаємо нашу віртуальну машину і дивимося результат

 

Тепер пристрої NVMe успішно налаштовані для наскрізного підключення до віртуальної машини, і ви можете отримати доступ до них і використовувати їх як реальні диски у віртуальній ОС.