Для домашнего стенда мне понадобилось установить гипервизор VMWare ESXi -V в качестве виртуальной машины Hyper-V на Windows 10. Hyper-V и VMWare ESXi поддерживают вложенную виртуализацию (nested virtualization) и в принципе этот сценарий возможен (хотя официально не поддерживается). Однако есть несколько особенностей установки ESXi под Hyper-V, которые нужно обязательно отметить.
В установочном образе ESXi отсутствуют драйвера для виртуальных адаптеров Hyper-V и этот адаптер не поддерживается VMWare (не входит в VMware Hardware Compatibility List — HCL). Поэтому перед тем как устанавливать образ VMWare ESXi на виртуальную машину Hyper-V, нужно интегрировать драйвер для сетевого адаптера Hyper-V (net-tulip) в установочный образ ESXi.
Если установщик ESXi не находит сетевых адаптеров, он выводить ошибку и не позволяет продолжить установку:
No Network Adapters. No network adapters were detected. Either no network adapters are physically connected to the system, or a suitable driver could not be located. A third party driver may be required.
Чтобы добавить драйвер net-tulip в образ ESXi, вам понадобится установить на ваш компьютер модуль VMWare PowerCLI.
Вы можете добавить драйвер net-tulip в образ с помощью PowerShell командлетов из модуля VMware.ImageBuilder (Add-EsxSoftwareDepot, Add-EsxSoftwarePackage, Export-EsxImageProfile). В этом случае вам придется вручную скачать образ ESXi и драйвер net-tulip (http://vibsdepot.v-front.de/depot/bundles/net-tulip-1.1.15-1-offline_bundle.zip).
Или намного проще воспользоваться готовым модулем ESXi-Customizer-PS (мы рассматривали его раньше в статье про интеграцию драйверов в образ ESXi).
Последнюю версию модуля ESXi-Customizer-PS 2.8.1 можно скачать с GitHub https://github.com/VFrontDe/ESXi-Customizer-PS/blob/master/ESXi-Customizer-PS.ps1 (в этой версии скрипта поддерживаются современные версии VMWare ESXi 7.0 и 6.7).
Выведите список доступных для загрузки версий ESXi:
.\ESXi-Customizer-PS-v2.8.1.ps1 -sip –ozip
В нашем случае нужно скачать образ с номером 203 (ESXi-6.0.0-20170604001-standard). Укажите 203 и нажмите Enter.
Дождитесь, пока скрипт загрузит zip архив с образом в текущий каталог.
Чтобы интегрировать в данный zip образ драйвер net-tulip и получить ISO образ, выполните команду:
.\ESXi-Customizer-PS-v2.8.1.ps1 -iZip "C:\Ps\ESXi-6.0.0-20170604001-standard.zip" -vft -load net-tulip
This is ESXi-Customizer-PS Version 2.8.1 (visit https://ESXi-Customizer-PS.v-front.de for more information!) (Call with -help for instructions) Logging to C:\Users\user\AppData\Local\Temp\ESXi-Customizer-PS-15076.log ... Running with PowerShell version 5.1 and VMware PowerCLI version .. build Adding base Offline bundle C:\Ps\ESXi-6.0.0-20170604001-standard.zip ... [OK] Connecting the V-Front Online depot ... [OK] Getting Imageprofiles, please wait ... [OK] Using Imageprofile ESXi-6.0.0-20170604001-standard ... (Dated 02/07/2020 11:36:33, AcceptanceLevel: PartnerSupported, For more information, see http://kb.vmware.com/kb/2149958.) Load additional VIBs from Online depots ... Add VIB net-tulip 1.1.15-1 [New AcceptanceLevel: CommunitySupported] [OK, added] Exporting the Imageprofile to 'C:\PS\ESXi-6.0.0-20170604001-standard-customized.iso'. Please be patient ... All done.
-vft
указывает, что нужно загрузить актуальный vib драйвер из онлайн хранилища V-Front.Итак, вы у вас есть установочный ISO образ ESXi. Теперь нужно создать виртуальную машину на сервере Hyper-V. При создании ВМ используйте следующие настройки:
- Создайте ВМ типа Generation 1;
- Добавьте как минимум 2 vCPU для ВМ;
- В свойствах ВМ удалите стандартные сетевой адаптер (Network Adapter) и добавьте новую сетевую карту типа Legacy Network Adapter;
- Разрешите использовать функцию вложенной виртуализации (Nested virtualization) для этой ВМ:
Set-VMProcessor -VMName srv-esxi1 -ExposeVirtualizationExtensions $true
- Подключите ваш ISO образ с ESXi к ВМ.
Если попробовать загрузить виртуальную машину с вашего образа, появится ошибка, вызванная отсутствием совместимого с VMkernel видеоадаптера:
Shutting down firmware services… Relocating modules and starting up the kernel…
Чтобы игнорировать эту проблему и продолжить установку ESXi, нужно при загрузке ВМ нажать TAB и добавить следующий параметр:
ignoreHeadless=TRUE
Установщик ESXi проверит конфигурацию оборудования, обнаружит сетевую карту и предложит продолжить установку образа ESXi на виртуальный диск.
Затем следуйте мастеру установки VMWare ESXi (шаги подробно описаны в статье Установка и первоначальная настройки Free VMWare Hypervisor).
После окончания установки вам нужно перезагрузить ВМ и на этапе выбора параметров загрузки ESXi нажать Shift+O. Здесь нужно также указать, что ESXi должен запускаться без проверки видеокарты. Для этого в конце строки допишите ignoreHeadless=TRUE и нажмите Enter.
Чтобы каждый раз при загрузке не указывать эту опцию, нужно изменить конфигурацию ESXi:
- После загрузки ESXi нажмите F2, укажите пароль root;
- В DCUI ESXi выберите Troubleshooting Options -> Enable ESXi Shell;
- Чтобы открыть консоль ESXi нажмите Alt+F2;
- В открывшейся консоли выполните команду:
Esxcfg-advcfg -k TRUE ignoreHeadless
Закройте консоль, нажав ALT+F2. Осталось в DCUI настроить параметры сети для ESXi и перезагрузить ВМ. Проверьте, что ESXi теперь загружается нормально и вы можете подключиться к ней с помощью vSphere Web Client.
Итак, мы рассмотрели, как запустить ESXi в виртуальной машине на Hyper-V. Хоть это и официально не поддерживаемая конфигурация, но она позволит вам попробовать поработать со старыми версиями VMWare ESXi в песочнице на своем домашнем компьютере с Windows 10.