Wyjaśnienie zagnieżdżonej wirtualizacji Hyper-V

Wirtualizacja zagnieżdżona w Hyper-V to funkcja, która po raz pierwszy została wydana w systemach Windows Server 2016 i Windows 10 i jest dostępna zarówno na stacjach roboczych, jak i serwerach. Wraz z wprowadzeniem tej funkcji rozszerzono zakres zastosowań hiperwizora Microsoft Hyper-V. W tym wpisie na blogu wyjaśniono, czym jest wirtualizacja zagnieżdżona, a także przedstawiono przypadki użycia, wymagania i ograniczenia związane z wirtualizacją zagnieżdżoną w Microsoft Hyper-V.

NAKIVO do tworzenia kopii zapasowej Hyper-V

NAKIVO do tworzenia kopii zapasowej Hyper-V

Kopie zapasowe dla Hyper-V bez agentów, spójne z aplikacją. Ochrona przed oprogramowaniem wymuszającym okup, natychmiastowe uruchamianie maszyn wirtualnych z kopii zapasowej, wsparcie dla innych platform wirtualnych i fizycznych oraz wiele innych funkcji.

Czym jest wirtualizacja zagnieżdżona?

Wirtualizacja zagnieżdżona w Microsoft Hyper-V to funkcja umożliwiająca tworzenie maszyn wirtualnych (VM) wewnątrz innych maszyn wirtualnych Hyper-V działających na hoście Hyper-V. Te maszyny wirtualne działające wewnątrz innych maszyn wirtualnych nazywane są maszynami wirtualnymi zagnieżdżonymi. Należy pamiętać, że Wirtualizację zagnieżdżoną można również skonfigurować w VMware środowiska.

A schema of nested virtualization in Hyper-V

Przypadki użycia

Poniżej przedstawiono kilka przypadków użycia wirtualizacji zagnieżdżonej w środowiskach wirtualnych:

  • Creating isolated environments. Funkcja ta pozwala tworzyć zagnieżdżone maszyny wirtualne połączone ze sobą za pośrednictwem izolowanej sieci wirtualnej. W ten sposób można stworzyć całkowicie izolowane środowisko, które nie ma żadnego wpływu na zwykłe maszyny wirtualne i sieć.
  • Training/testing/development. Szkolenia są przydatne do zapoznania nowych użytkowników lub administratorów z oprogramowaniem (lub do zapoznania obecnych użytkowników lub administratorów z nowym oprogramowaniem). Jednak szkolenia w środowiskach produkcyjnych mogą prowadzić do niestabilności, a nawet awarii. Dzięki wirtualizacji zagnieżdżonej można symulować środowisko produkcyjne na zagnieżdżonych maszynach wirtualnych bez żadnego wpływu na rzeczywiste środowisko produkcyjne.

    Oprócz szkoleń dla administratorów tego typu środowisko może być potrzebne specjalistom ds. kontroli jakości (testerom) oraz programistom do celów testowych lub programistycznych. Zaletą jest to, że do tych celów można wykorzystać zagnieżdżone maszyny wirtualne w istniejących środowiskach wirtualnych bez konieczności zakupu dodatkowego dedykowanego sprzętu.

  • Building a private cloud. Wdrażanie prawdziwej chmury prywatnej z portalem samoobsługowym dla użytkowników może być kosztowne i pracochłonne. Dzięki wirtualizacji zagnieżdżonej można wdrożyć pseudo-chmurę prywatną o identycznej funkcji jak ten typ chmury. Na przykład można utworzyć maszynę wirtualną z zainstalowanym serwerem Hyper-V i przydzielić jej 256 GB pamięci RAM.

    Użytkownicy mogą tworzyć i konfigurować zagnieżdżone maszyny wirtualne wewnątrz maszyny wirtualnej z zainstalowanym Hyper-V w zależności od swoich potrzeb, ale nie mogą przekroczyć limitu pamięci i zużywać więcej niż 256 GB pamięci RAM. Do maszyn wirtualnych, na których zainstalowano Hyper-V, można dodawać pamięć i wirtualne karty sieciowe za pomocą funkcji dodawania na gorąco bez żadnych przestojów.

Wymagania i ograniczenia

Aby wdrożyć wirtualizację zagnieżdżoną w Hyper-V, należy spełnić następujące wymagania:

  • System operacyjny hosta musi być Windows Server 2016 lub Windows 10 (aktualizacja rocznicowa) lub nowszy.
  • Maszyna wirtualna Hyper-V musi być w wersji 8 lub wyższej.
  • Serwer fizyczny musi posiadać kompatybilny Procesor obsługujący odpowiednie funkcje wirtualizacji.
    • Tylko procesory Intel wyposażone w technologie VT-x i EPT obsługują wirtualizację zagnieżdżoną w systemach Windows Server 2016, Windows Server 2019 i Windows 10.
    • Jeśli korzystasz z procesorów AMD wyposażonych w funkcje wirtualizacji AMD-V, musisz używać systemu Windows Server 2022 lub Windows 11, aby uzyskać wsparcie dla wirtualizacji zagnieżdżonej w Hyper-V.
    • Najnowsze wersje systemu Windows obsługują zarówno procesory AMD, jak i Intel.
  • Musi być dostępna wystarczająca ilość pamięci fizycznej do uruchomienia maszyn wirtualnych.
  • Maszyna wirtualna nie powinna być z wykorzystaniem pamięci dynamicznej.

Istnieją pewne ograniczenia dotyczące maszyn wirtualnych hostujących zagnieżdżone maszyny wirtualne (zagnieżdżone maszyny wirtualne mogą być określane jako „najbardziej wewnętrzne systemy-goście”):

  • Punkty kontrolne nie można zastosować do uruchomionej maszyny wirtualnej.
  • Migracja na żywo dla tej maszyny wirtualnej kończy się niepowodzeniem.
  • Zmiana rozmiaru pamięci w czasie wykonywania nie działa.

Uwaga: Funkcje związane z powyższymi trzema ograniczeniami mogą być używane dla gości najgłębszych.

Czym jest zagnieżdżona technologia VT-x/AMD-V?

Intel VT-x i AMD-V to zestawy instrukcji dla procesorów, które umożliwiają wirtualizację sprzętową. W przypadku korzystania z wirtualizacji zagnieżdżonej należy włączyć jedną z tych funkcji dla maszyny wirtualnej wykorzystywanej do zagnieżdżania. Dopiero wtedy maszyna wirtualna może korzystać z funkcji wirtualizacji sprzętowej procesora w celu uruchamiania zagnieżdżonych maszyn wirtualnych.

Jak włączyć zagnieżdżoną wirtualizację Hyper-V i utworzyć zagnieżdżoną maszynę wirtualną

W tej sekcji omówiono czynności związane z konfiguracją zagnieżdżonej wirtualizacji Hyper-V w systemie Windows Server 2019. Proces konfiguracji jest taki sam dla systemów Windows Server 2016 i Windows Server 2022.

Konfiguracja hosta Hyper-V

Najpierw należy skonfigurować hosta Hyper-V:

  1. Przygotuj serwer fizyczny z kompatybilnym Procesorem, wystarczającą ilością pamięci i odpowiednią pojemnością pamięci masowej.
  2. Sprawdź, czy w BIOS-ie są włączone funkcje wirtualizacji Procesora, takie jak Intel VT-x.
  3. Zainstaluj system Hyper-V Server 2019, Windows Server 2019 lub system operacyjny Windows 10.
  4. Dodaj rolę serwera Hyper-V jeśli korzystasz z pełnej funkcji systemu operacyjnego Windows (lub Włącz Hyper-V w systemie Windows 10). Możesz również skorzystać z graficznego interfejsu użytkownika (GUI) i Menedżera serwera.

Wdrażanie maszyny wirtualnej gościa

Następnie należy utworzyć maszynę wirtualną i zainstalować system operacyjny gościa:

  1. Utwórz maszynę wirtualną Hyper-V w systemie Windows Server lub utworzyć maszynę wirtualną w systemie Windows 10.
  2. Zainstaluj na maszynie wirtualnej gościa system operacyjny obsługujący wirtualizację zagnieżdżoną dla Hyper-V, czyli zainstaluj system Windows 10 w wersji Anniversary Update lub nowszej albo system Windows Server 2016 lub nowszy.

W niniejszym przewodniku wykorzystano system Windows Server 2016. Można użyć nowszych wersji systemu Windows.

Konfiguracja maszyny wirtualnej gościa

Domyślnie wsparcie dla wirtualizacji sprzętowej jest wyłączone dla maszyny wirtualnej gościa. System operacyjny wyświetla komunikat o błędzie, jeśli spróbujesz dodać rolę Hyper-V dla tej maszyny wirtualnej.

This error message is displayed when hardware virtualization is disabled for a guest VM

Wirtualizację sprzętową dla hiperwizora gościa można włączyć wyłącznie za pomocą programu PowerShell. Należy pamiętać, że maszyna wirtualna gościa musi być wyłączona, aby można było zastosować poniższe polecenia.

  1. Najpierw sprawdź, czy wirtualizacja sprzętowa jest włączona dla maszyny wirtualnej gościa. W systemie operacyjnym hosta (zainstalowanym na komputerze fizycznym) należy wykonać następujące polecenie:

    Get-VMProcessor -VMName vm_name | fl *

    W miejsce vm_name należy wpisać nazwę swojej maszyny wirtualnej. W naszym przykładzie nazwa maszyny wirtualnej to Server2016. WIN2018 to nazwa komputera reprezentująca komputer fizyczny, na którym zainstalowano system Windows wraz z rolą Hyper-V.

    Hyper-V nested virtualization - checking if hardware virtualization is enabled for a VM

  1. Aby włączyć wirtualizację sprzętową w maszynie wirtualnej gościa, należy najpierw zatrzymać maszynę wirtualną, a następnie zastosować następujące polecenie:

    Set-VMProcessor -VMName vm_name -ExposeVirtualizationExtensions $true

    Jeśli wszystko jest w porządku, po wprowadzeniu polecenia nie powinien pojawić się żaden komunikat. Jeśli maszyna wirtualna jest uruchomiona, wyświetli się następujący komunikat o błędzie:

    Hyper-V enable nested virtualization - enabling processor virtualization features for a VM

Połączenie sieciowe maszyny wirtualnej

Teraz należy skonfigurować ustawienia sieciowe maszyny wirtualnej. Istnieją dwa sposoby podłączenia maszyn wirtualnych zagnieżdżonych do sieci: MAC spoofing oraz NAT.

  • Jeśli sieć dla maszyn wirtualnych zagnieżdżonych jest skonfigurowana poprzez zapewnienie dostępu do rzeczywistej sieci lokalnej (LAN), wówczas jedna karta sieciowa na komputerze hosta będzie obsługiwać wiele adresów MAC – co może potencjalnie powodować problemy z siecią. Dlatego należy aktywować opcję MAC address spoofing (opcja ta jest domyślnie wyłączona).
  • W przypadku wdrażania pseudo-chmury prywatnej nie można stosować fałszowania adresów MAC w sieciach maszyn wirtualnych i w takiej sytuacji należy skonfigurować NAT .

Uwaga: Obie metody zostały omówione poniżej, ale do skonfigurowania naszej maszyny wirtualnej Hyper-V z wykorzystaniem wirtualizacji zagnieżdżonej Hyper-V użyjemy metody NAT.

Konfiguracja fałszowania adresów MAC

Jeśli korzystasz z fałszowania adresów MAC, włącz tę funkcję na karcie sieciowej wirtualnego hosta Hyper-V:

  • Na komputerze fizycznym z zainstalowanym Hyper-V Server wpisz następujące polecenie, aby włączyć fałszowanie adresu MAC:

    Get-VMNetworkAdapter -VMname vm_name | Set-VMNetworkAdapter -MacAddressSpoofing On

    Wstaw nazwę swojej maszyny wirtualnej zamiast vm_name. W naszym przypadku jest to Server2016, jak wspomniano powyżej.

    Enabling MAC address spoofing for a VM in 
PowerShell for Hyper-V nested virtualization

  • Jeśli wolisz korzystać z interfejsu graficznego, przejdź do VM Settings > Network adapter > Advanced features , zaznacz pole wyboru Enable MAC address spoofing i kliknij OK.

    Enabling MAC address spoofing for a VM to use the network with Hyper-V nested virtualization

Konfiguracja NAT

Funkcję NAT można włączyć wyłącznie za pomocą programu PowerShell. Podczas gdy poprzednie polecenia zostały wykonane w systemie operacyjnym hosta, poniższe polecenia należy wykonać w systemie operacyjnym gościa.

Aby włączyć funkcję NAT dla połączenia sieciowego maszyny wirtualnej:

  1. Najpierw utwórz nowy przełącznik wirtualny.

    New-VMSwitch -Name "SwitchName" -SwitchType Internal

    Zamiast SwitchNamenależy użyć nazwy własnego przełącznika. W tym przewodniku używamy NAT-Switch .

    Creating a new virtual switch to connect VMs through NAT for using networking with Hyper-V nested virtualization

  1. Zdefiniuj podsieć za NAT i włącz funkcję NAT. Adres sieciowy nie może pokrywać się z adresami IP w istniejącej sieci. W tym przykładzie nazwa sieci to NAT-net , a adres sieci to 192.168.2.0/24

    New-NetNat -Name "network_name" -InternalIPInterfaceAddressPrefix 'ip-address/netmask'

    Defining a network address for the network used for NAT

  1. Następnie przypisz adres IP do interfejsu, na którym włączono NAT.

    Wygeneruj listę dostępnych kart sieciowych, aby sprawdzić ich nazwy, za pomocą następującego polecenia:

    Get-NetAdapter | ft -Autosize

    Displaying a list of virtual switches and checking the name of the recently created virtual switch

    W tym przykładzie nazwa wirtualnej karty sieciowej podłączonej do utworzonego wcześniej przełącznika wirtualnego to vEthernet (NAT-Switch).

  1. Teraz należy zdefiniować adres IP dla tej wirtualnej karty sieciowej, który musi należeć do utworzonej sieci. Maszyny wirtualne zagnieżdżone będą używać adresu IP tego interfejsu sieciowego jako bramy. W naszym przykładzie adresem tym jest 192.168.2.1 — należy on do sieci 192.168.2.0/24

    Get-NetAdapter "adapter_name" | New-NetIPAddress -IPAddress ip_address -AddressFamily IPv4 -PrefixLength mask_number

    Setting the IP address for the network interface used for NAT

Konfiguracja maszyny wirtualnej zagnieżdżonej

Teraz można utworzyć i skonfigurować maszynę wirtualną zagnieżdżoną. W tym przewodniku jako maszynę wirtualną zagnieżdżoną wykorzystano maszynę wirtualną z systemem Windows Server 2016.

  1. Wybierz przełącznik wirtualny (który niedawno utworzyłeś) w ustawieniach sieciowych maszyny wirtualnej w Menedżer Hyper-V.

Selecting the virtual switch created to connect the VMs through NAT

  1. Skonfiguruj ustawienia TCP/IP w Network Adapter Properties maszyny wirtualnej zagnieżdżonej. Jeśli w sieci wirtualnej nie ma serwerów DHCP, przypisz adres IP, maskę podsieci, bramę domyślną i serwer DNS ręcznie.

Hyper-V nested virtualization networking - setting the IP address for the nested VM

Uwaga: Sprawdź ustawienia zapory sieciowej, ponieważ zapory mogą blokować połączenia sieciowe.

Twoja zagnieżdżona maszyna wirtualna ma teraz skonfigurowaną sieć i jest gotowa do działania. Running a nested VM - Hyper-V nested virtualization networking works fine

Ochrona maszyn wirtualnych za pomocą NAKIVO Backup & Replication

Aby zapewnić niezawodność środowiska wirtualnego Hyper-V, należy wykonać kopię zapasową wszystkich maszyn wirtualnych, w tym maszyn zagnieżdżonych. Rozwiązanie NAKIVO Backup & Replication zapewnia niezawodna kopia zapasowa Hyper-V dzięki szybkim, przyrostowym kopiom zapasowym opartym na obrazach, wykorzystującym natywną technologię Hyper-V Resilient Change Tracking (RCT). Korzystając z kopii zapasowych, można między innymi odzyskiwać obiekty i pliki aplikacji, natychmiast uruchamiać maszyny wirtualne lub odtwarzać maszyny wirtualne Hyper-V jako maszyny wirtualne VMware vSphere.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

People also read