Porovnání první a druhé generace virtuálních strojů v Hyper-V 2012R2

Windows Server 2012 R2 přináší nové možnosti pro virtuální stroje - druhou generaci virtuálních strojů. Virtuální stroje druhé generace jsou prezentovány hypervizorem jako jednodušší hardware a využívají UEFI (Unified Extensible Firmware Interface) firmware namísto BIOS. Mnoho emulovaných zařízení je kompletně odebráno z této druhé generace VM - využívá se VMBUS již od boot. První generace virtuálních strojů je naprosto identická, tak jak tomu bylo od prvního vydání Hyper-V pro Windows Server 2008. Druhá generace přináší následující:

  • Možnost Secure Boot (povoleno ve výchozím nastavení)

    • Boot z SCSI VHD/VHDX - možnost trim, unmap a hot resizing (až 2,2TB MBR)
    • Boot z SCSI DVD
    • Podpora PXE boot pro standardní síťový adaptér (včetně IPv6)
    • Podpora UEFI firmware
    • Odebraná podpora IDE, lagacy network adaptéru, řadič disketové mechaniky a COM port (COM se víceméně používal pouze pro debugging).
    • Rychlejší boot virtuálního stroje o cca 20%

    Porovnání struktury 1 a 2 generace virtuálních strojů:

Onoho odebírání bylo povícero, pouze ve zkratce: legacy řadič klávesnice i8042, PS/2 myš, S3 video, PCI sběrnice, revidované ACPI. Díky odebrané emulaci klávesnice je nutné modifikovat WindowsPE používané pro nasazování OS - nutné přidat balíček Windows6.2-HyperVIntegrationServices-x64.cab (o tom v samostatném článku). Díky odebrané PCI sběrnici není přítomné RemoteFX - připravuje se “náhradní řešení”. Pro využití VM gen 2. je nutné v rámci virtuálního stroje provozovat tyto operační systémy (starší nejsou podporovány):

  • Windows Server 2012

    • Windows Server 2012 R2
    • Windows 8
    • Windows 8.1

    POZOR: jsou podporovány pouze x64 bitové verze operačních systémů (v UEFI není implementován “Compatibility Support Module” - jedná se o UEFI Class 3). Přímá konverze mezi gen 1 a gen 2 není možná, nicméně je k dispozici PowerShell skript, který provede sejmutí obsahu původního disku, založí nový G2 virtuální stroj a obsah původního disku aplikuje. Skript je k dispozici zde: http://code.msdn.microsoft.com/ConvertVMGeneration, manuální migrace VM je možná, nicméně velmi pracná (obnáší DISM, sejmutí image, vytvoření odpovídajících diskových oddílů, aplikace na nový disk, modifikace boot, vytvoření nové VM,…) Co jednotlivé nové vlastnosti znamenají z pohledu provozu: Boot z SCSI disku V předchozích verzích Hyper-V nebylo možné startovat VM z SCSI disku, bylo nutné použít IDE. Možnost boot z SCSI disku není díky věcí SCSI řadiče, ale UEFI firmware. Náhradou za SCSI disk získáte rychlejší nasazení a start VM, možnost využití trim, unmap, hot/online resize, hot add/remove disků, větší boot partition (až 2,2TB), nižší overhead. PXE boot pomocí nativního adaptéru Předchozí verze Hyper-V vyžadovaly pro PXE boot emulovaný síťový adaptér. Gen 2 podporuje PXE boot u natovního adaptéru, není tedy nutné po instalaci měnit adaptér, aby bylo dosaženo větší propustnosti. Také je možné využít IPv6 pro PXE boot. Secure Boot Secure boot - technologie zavede ve Windows 8 zajišťuje konzistentní start OS, kde je prováděna kontrola zavaděče, resp. jeho podpisu v návaznosti na UEFI firmware. Secure Boot je ve výchozím nastavení po vytvoření gen 2 VM zapnutý. Pro chod UEFI je nutné odlišené vytvoření diskových oddílů (popis zde: http://technet.microsoft.com/en-us/library/hh824839.aspx). Nativní VMBUS již od startu VM Díky přítomnosti VMBUS již od startu VM je možné defakto dosáhnout výše uvedených možností, jako je SCISI boot, optimalizovaný přístup k HW zdrojům a menší závislost na  parent partition   Závěrem, samozřejmostí je možnost provozovat gen 1 a gen 2 VM na jednom Hyper-V stroji, není problém. Naprosoto identicky, jako jsou spravovány gen 1 VM pomoví PowerShell, je možné spravovat i gen 2 VM. Zde je několik málo příkladů: Získání informace o generaci VM:

       1: Get-VM | ft Name,Generation

Vytvoření gen 2 VM:

   1: New-VM -VMName Gen2 -Generation 2

Informace o boot order, nastavení boot order (první DVD):

   1: $vm = Get-VM -Name Gen2
   2: Get-VMFirmware $vm
   3: $dvd = Get-VMDvdDrive $vm
   4: Set-VMFirmware $vm -FirstBootDevice $dvd

Před změnou:

Po změně:

Vytvoření nového VHDX souboru a přidání do VM, nastavení jako primární boot:

   1: New-VHD -Path "d:\Hyper-V\Gen2.vhdx" -Dynamic -SizeBytes 90GB
   2: Add-VMHardDiskDrive -VMName "Gen2" -Path "d:\Hyper-V\Gen2.vhdx"
   3: $vm = Get-VM -Name Gen2
   4: $vhdx = Get-VMHardDiskDrive $vm
   5: Set-VMFirmware $vm -FirstBootDevice $vhdx

Autor: Ondřej Výšek

Ondřej je Microsoft MVP od roku 2004, v roce 2008 založil komunitní web optimalizovane-it.cz. Za svou IT karieru, jenž započala v roce 1993 prošel celou řadou pozic, od konzultanta, přes architekt, až po vytváření vizí a strategií zákazníků. V prostředích, ve kterých pomáhal byly desítky, ale i stovky tisíc uživatelů a systémů. V posledních letech se zabývá především cloudovými technologiemi Microsoft 365 a Azure ve společnosti KPCS CZ.

Next Post Previous Post