ESXi pod Hyper-V aneb virtualizovaná virtualizace

Pro účel přechodu z ESXi na Hyper-V jsem zkoušel zda je funkční vnořená virtualizace. Jednalo se mi o to, nějak zachovat funkčnost starých VM do doby, než se mi podaří zprovoznit jejich náhradu na nové platformě. Standardní instalace se ale nepodařila, tak přišlo na řadu pátrání po nějakém řešení na internetu. Postupy, jak docílit toho, co chci, jsem našel na následujících odkazech:

Installing ESXi 6.0 in a Hyper-V Virtual Machine
Install VMware ESXi on a Hyper-V

Z těchto postupů (prakticky totožných) vychází níže uvedený výcuc. Jako hlavní součást je využit skript pro úpravu instalačního ISO souboru s instalačkou ESXi hypervizoru. Odkazované návody počítají s Windovs Server 2016 a ESXi 6.0, ale předpokládám, že postup bude s drobnými úpravami funkční i pro novější verze (WS2019 a ESXi7.0).

Povolení provádění stažených skriptů

Aby PowerShell (dále PS) umožnil spouštění stažených skriptů je vždy třeba zadat tento příkaz:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

... a na dotaz, zda povolit, odpovědět "Y".

Hrubý přehled prováděných kroků

  1. Stáhněte a nainstalujte PowerCLI
  2. Stáhněte si ESXi-Customizer-PS. Jedná se o skript PowerShell, který zjednoduší a automatizuje proces vytváření plně opravených a přizpůsobených instalačních ISO ESXi pomocí modulu VMware PowerCLI ImageBuilder.
    Můžete si jej stáhnout z adresy https://www.v-front.de/p/esxi-customizer-ps.html
    Nejnovější verze je na https://github.com/ VFrontDe/ESXi-Customizer-PS
  3. Vytvořte virtuální počítač Hyper-V pomocí staršího síťového adaptéru
  4. Nakonfigurujte adaptér s povoleným spoofováním Mac
  5. Pomocí nástroje pro přizpůsobení stáhněte a znovu vytvořte ESXi ISO
  6. Připojte nově vytvořený ISO do virtuálního stroje
  7. Stáhněte a spusťte skript „Enable-NestedVM.ps1“. Stáhněte si jej z: https://github.com/Microsoft/Virtualization-Documentation/blob/master/hyperv-tools/Nested/Enable-NestedVm.ps1
  8. Poté můžete nainstalovat ESXI 6.0

Postup vytvoření upraveného ISO

  1. Nejdříve nainstalujeme PowerCLI příkazem PS Install-Module -Name VMware.PowerCLI
    - jedná se o rozšiřující modul od VMware pro PowerShell (více informací ZDE)
  2. Po dokončení instalace PowerCLI je možné spustit skript přizpůsobení ISO:
    ESXi-Customizer-PS-v2.5.1.ps1 -v60 -vft -load net-tulip
    - ESXi-Customizer-PS.ps1 -v70 -vft -load net-tulip (příkaz pro novější verze, lze popř. upravit dle potřeby)
    - dle verze ESXi lze parametr v60 (pro ESXi 6.0) změnit na v65, v 67, v70 nebo dle dokumentace použitého skriptu
    - pomocí parametru –vft se připojíte k online depozitáři V-Front
    - použití net-tulip stáhne ovladač Ethernet rozhraní DECchip 21140 a vloží jej do ISO; ten umožní spuštění ESXi VM pod Hyper-V
  3. Jakmile je ISO staženo, můžeme zkontrolovat jeho přítomnost v náležité složce

Postup instalace VM s ESXi pod Hyper-V

Virtuální stroj pro náš ESXi založíme v průvodci vytvořením nové VM:

  1. Spustíme průvodce a při zobrazení úvodní obrazovky klikneme na "Next"
  2. Zadáme název virtuálního počítače
    a zvolíme umístění, ve kterém bude virtuální stroj uložen
    poté opět klikneme na "Next"
  3. Vybereme generaci VM:  "Generation 1"... "Next"
  4. Přidělíme velikost paměti... "Next"
  5. Nepřipojujte síť, protože musíme odebrat výchozí adaptér a poté vytvořit nový. Novým adaptérem bude starší adaptér... "Next"
  6. Vytvoříme virtuální HDD a přidělíme mu požadovanou velikost... "Next"
  7. K VM připojíme upravené ISO ESXi... "Next"
  8. Zkontrolujeme nastavení a ukončíme průvodce (Finish)
  9. Před spuštěním VM je třeba provést Úpravy nastavení:
    - klikněte pravým tlačítkem na právě vytvořený virtuální stroj a vyberte „Nastavení“
    - dle požadavků přiřaďte počet jader CPU využívaných touto VM
    - odeberte výchozí síťový adaptér
    - pomocí přidání HW (Add Hardware) přidejte "Legacy Network Adapter"
    - ten připojte k virtuálnímu přepínači Hyper-V
    - potvrďte provedené úpravy nastavení (OK)
  10. Nyní je třeba provést Povolení vnořené virtualizace
    - v PS spusťte skript „Enable-NestedVm.ps1“ (Enabled-NestedVM.ps1 -vmname „VÁŠ NÁZEV VM“)
    - v průběhu provádění skriptu je třeba povolit spoofování adres Mac (tj. na dotaz odpovědět Y)
  11. A nyní zbývá poslední krok, jímž je Spuštění VM s ESXi
    - v průběhu spouštění je třeba pomocí klávesy TAB doplnit boot option: ignoreHeadless=TRUE
    - ve výše uvedeném příkazu je třeba dbát na velikost písma
    - tímto krokem se spustí instalace ESXi, vše by již mělo běžet standardně

Zprovoznění řešení na Hyper-V Server 2019

Celý tento návod jsem tvořil s vizí, že vnořenou virtualizaci zprovozním na Hyper-V Serveru 2019. To je na verzi OS, která nemá grafické uživatelské rozhraní a má ořezané funkce téměř na kost tak, aby zajišťovala běh virtualizačního hypervizoru (Hyper-V Server MS poskytuje bezplatně).

Bohužel při pokusu o zprovoznění jsem narazil hned v prvním kroku, kdy instalace PoverCLI skončila s chybovým hlášením:

V OS Hyper-V Server tedy PowerCLI zřejmě postrádá nějakou součást, kterou potřebuje k běhu...

...a následující krok (spuštění skriptu "ESXi- Customizer-PS.ps1") taky nedopadne.