В одній з тестових завдань знадобилося встановити компонент віртуалізації Hyper-V на віртуальній машині з ОС Windows 10 (може бути застосовано і до Windows Server 2016), запущеної на гіпервізора VMWare ESXi. Тобто потрібно організувати вкладену віртуалізацію Hyper-V на VMWare ESXi.
Спочатку пару слів в вкладеної віртуалізації. вкладена віртуалізація (Nested Virtualization) - можливість запускати гипервизор всередині віртуальної машини на іншому гіпервізора. У Hyper-V повноцінна підтримка вкладеної віртуалізації з'явилася Windows Server 2016 / Windows 10 Anniversary Update, в VMWare технологія вкладеної віртуалізації працює вже давно (з'явилася ще в ESXi 5.0).
Маємо: хост віртуалізації VMWare ESXi 6.0, на ньому запущена віртуальна машина з Windows 10 1709.
При спробі встановити роль гипервизор Hyper-V (компонент називається Низькорівнева оболонка Hyper-V) За допомогою функції включення / відключення компонентів в класичній панелі управління Windows 10, дана опція виявилася недоступна. В якості причини вказується:
Неможливо встановити Hyper-V: у процесора відсутні необхідні можливості віртуалізації
Hyper-V can not be installed: The processor does not have the required virtualization capabilities
Щоб включити вкладену віртуалізацію для даної ВМ, відкрийте настройки віртуальної машини за допомогою веб клієнта vSphere (ВМ повинна бути виключена). У розділі CPU включите опцію "Expose hardware assisted virtualization to the guest OS"(Ця опція недоступна в" важкому "C # клієнта vCenter)
Примітка. У старіших версіях ESXi, в яких відсутня дана опція, а також в настільному VMWare Workstation аналогічний ефект викликається за рахунок додавання таких опцій в конфігураційний файл віртуальної машини (* .vmx).hypervisor.cpuid.v0 = "FALSE"
mce.enable = "TRUE"
vhv.enable = "TRUE"
В клієнті vSphere дані опції можна додати в налаштуваннях ВМ. вкладка Options-> General -> Configure parameters. Додайте дві нові рядки з даними параметрами (кнопка Add Row).
Включаємо віртуальну машину з Windows 10 і ще раз намагаємося встановити роль Hyper-V. Система тепер перестала визначати, що вона працює всередині іншого гипервизора, але тепер з'явилася інша помилка:
Неможливо встановити Hyper-V: у процесора відсутні можливості перетворення адрес другого рівня (SLAT)
Hyper-V can not be installed: the processor dose not support second level address translation (SLAT).
Тобто процесор віртуальної машини крім підтримки віртуалізації повинен підтримувати технологію SLAT - можливість віртуалізації сторінок пам'яті і передачі їх під прямий контроль гостьовий ОС. У термінології Intel ця фіча називається Еxtended Page Tables (EPT), У AMD - Rapid Virtualization Indexing (RVI).
Перевіримо підтримку SLAT процесором за допомогою команди:
systeminfo
Команда в розділі "Вимоги Hyper-V" повинна повернути, що відсутня підтримка SLAT.
Second Level Address Translation: No
Перетворення адрес другого рівня: Немає
В цьому випадку потрібно змінити параметри процесора віртуальної машини. У веб клієнта в секції CPU / MMU Virtualization потрібно вибрати Hardware CPU and MMU.
В "класичному" клієнта аналогічна опція знаходиться на вкладці Options в секції CPU / MMU Virtualization і називається "Use Intel VT-x / AMD-V for instruction set virtualization and Inet EPT / AMD RVI for MMU virtualization".
Запустіть віртуальну машину Windows 10 і переконайтеся, що її процесор тепер підтримує SLAT. Тепер можна встановити всі компоненти ролі Hyper-V і запускати всередині виртуалки Win10 власні віртуальні машини.