Funkcje korzystania z napędów różnicowych w Hyper-V

Technologia dysków różnicowych (różnicowych) Hyper-V jest obecna w hiperwizorze Microsoft od dłuższego czasu (jeśli się nie mylę, od wersji Hyper-V w systemie Windows Server 2008). Z reguły jest ona znana większości administratorów w odniesieniu do technologii tworzenia migawek (punktów kontrolnych) i jest szeroko stosowana w różnych systemach tworzenia kopii zapasowych maszyn wirtualnych. Podczas tworzenia migawki lub wykonywania kopii zapasowej bieżący stan maszyny wirtualnej jest rejestrowany w jednym pliku vhd, a wszystkie zmiany są zapisywane na innym dysku różnicowym (różnicowym).

Treść

  • Napędy różnicowe Hyper-V
  • Utwórz referencyjny obraz systemu VHD
  • Na ich podstawie tworzymy dyski różnicowe i maszyny wirtualne
  • Scal dyski różnicowe w Hyper-V
  •  Wniosek

Napędy różnicowe Hyper-V

Inną ciekawą funkcją dysków różnicowych jest możliwość utworzenia podstawowego obrazu systemu operacyjnego (jako pliku vhd) ze wszystkimi niezbędnymi ustawieniami i oprogramowaniem. Następnie, w oparciu o ten obraz, można wdrożyć wiele typowych maszyn wirtualnych, które korzystają z napędu vhd obrazu podstawowego, a wszystkie zmiany są zapisywane na ich własnych dyskach wirtualnych. W ten sposób uzyskuje się znaczne oszczędności miejsca na dysku. Na przykład poniższy przykład pokazuje, że w przypadku korzystania z dysków różnicowych dla 4 maszyn wirtualnych opartych na jednym obrazie potrzebne jest tylko 40 GB, a przy klasycznym modelu wdrażania 150 GB jest potrzebne dla tych samych komputerów. Różnica jest znacząca, szczególnie w przypadku szybkich i drogich napędów SSD! 

Dysk różnicowy (różnicowy) Hyper-V jest jednym z obsługiwanych typów dysków wirtualnych (vhd). Jednak w przeciwieństwie do zwykłego dysku VHD jest on powiązany z innym dyskiem nadrzędnym. Dysk różnicowy działa jak dysk podrzędny i nie zawiera pełnej wersji danych na dysku maszyny wirtualnej, a jedynie zmiany dokonane podczas jego działania, tj. to dane, które odróżniają go od rodzica.

Nadrzędny (szablon) obraz vhd pozostaje niezmieniony, a wszystkie potomne maszyny wirtualne utworzone na jego podstawie zapisują zmiany na własnych dyskach różnicowych. Rozmiar takiego dysku różnicowego jest zwykle dość mały (jego maksymalny rozmiar nie może przekraczać rozmiaru rodzica).

Utwórz referencyjny obraz systemu VHD

Referencyjny plik VHD można utworzyć za pomocą graficznego interfejsu użytkownika Menedżera funkcji Hyper-V lub programu PowerShell. PowerShell jest znacznie szybszy.

Wskazówka. Aby następujące polecenia cmdlet działały, należy zainstalować moduł Hyper-V dla Windows PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell

Utwórz nowy plik vhdx.

new-vhd -path e: \ data \ vhd \ Win2016.vhdx -SizeBytes 50GB -Dynamic

Na tej podstawie utwórz nową maszynę wirtualną:

new-vm -Name TemplateVM -Path e: \ data \ vhd \ -VHDPath e: \ data \ vhd \ Win2016.vhdx | ''
set-vmmemory -DynamicMemoryEnabled $ true -MaximumBytes 2GB -MinimumBytes 512 MB -StartupBytes 1GB

Instalujemy obraz ISO instalacji z obrazem pożądanego systemu operacyjnego:

add-vmdvddrive -VMName TemplateVM -Path d: \ WinSrv2016.ISO

Po utworzeniu nowej maszyny wirtualnej musisz zainstalować na niej system operacyjny, który będzie używany jako obraz podstawowy. Ten system operacyjny musi zostać odpowiednio skonfigurowany (zainstaluj sterowniki, aktualizacje, zmień ustawienia systemowe). Następnie za pomocą Sysprep depersonalizujemy system operacyjny do przyszłego wdrożenia.

cd% SystemRoot% \ System32 \ Sysprep
sysprep / generalize / oobe / shutdown

W ten sposób otrzymujemy obraz referencyjny maszyny wirtualnej.

Maszynę wirtualną można teraz usunąć (zapisując plik vhd !!!). Aby uniknąć przypadkowej zmiany tego pliku vhd, który mógłby spowodować awarię wszystkich podrzędnych maszyn wirtualnych, wprowadzimy go w tryb tylko do odczytu:

Set-ItemProperty e: \ data \ vhd \ Win2016.vhdx -Nazwa IsReadOnly -Wartość $ true

Na ich podstawie tworzymy dyski różnicowe i maszyny wirtualne

Teraz możesz utworzyć kilka zależnych (podrzędnych) plików VHD:

New-VHD -ParentPath: e: \ data \ vhd \ Win2016.vhdx -Path e: \ data \ vhd \ Win2016-diff1.vhdx -Differencing
New-VHD -ParentPath: e: \ data \ vhd \ Win2016.vhdx -Path e: \ data \ vhd \ Win2016-diff2.vhdx -Differencing

Podczas tworzenia dysku różnicowego za pomocą graficznego interfejsu menedżera funkcji Hyper-V wybierz format dysku Vhdx-> Różnicowanie, podaj jego nazwę i ścieżkę do dysku nadrzędnego.

Teraz, w oparciu o te pliki vhd, tworzymy 2 maszyny wirtualne Hyper-V:

Nowa-VM -Nazwa „Win2016-diff1” -Generacja 2 -MemoryStartupBytes 1GB -VHDPath e: \ data \ vhd \ Win2016-diff1.vhdx -SwitchName „Sieć zewnętrzna”
New-VM -Name „Win2016-diff2” -Generation 2 -MemoryStartupBytes 1GB -VHDPath e: \ data \ vhd \ Win2016-diff2.vhdx -SwitchName „Sieć zewnętrzna”

Uruchom je:

Start-VM Win2016-diff *

Scal dyski różnicowe w Hyper-V

W wersji Hyper-V systemu Windows 2008 R2 i nowszych stało się możliwe łączenie dysków różnicowych z rodzicem (lub innym dyskiem) bez zatrzymywania maszyny wirtualnej. Do tego celu służy specjalny cmdlet. Scal-Vhd lub specjalna opcja w menu edycji dysku vhd w konsoli Hyper-V Manager.

Set-ItemProperty e: \ data \ vhd \ Win2016.vhdx -Nazwa IsReadOnly -Wartość $ false
Scalanie $ = @
Ścieżka = „e: \ data \ vhd \ Win2016-diff2.vhdx”
DestinationPath = 'e: \ data \ vhd \ Win2016.vhdx'

Merge-VHD @Merge

 Wniosek

Aby zmniejszyć obciążenie podsystemu dyskowego podczas wielokrotnego dostępu do tego samego nadrzędnego pliku vhd ze wszystkich maszyn wirtualnych, zaleca się umieszczenie go na szybkich dyskach. Aby ten plik nie stał się pojedynczym punktem awarii, należy rozważyć strategie tworzenia kopii zapasowej..