Tehnologija diferencialnih (diferencialnih) diskov Hyper-V je v Microsoftovem hipervizorju prisotna že kar nekaj časa (če se ne motim, od različice Hyper-V v sistemu Windows Server 2008). Praviloma je poznana večini skrbnikov v zvezi s tehnologijami za ustvarjanje posnetkov (kontrolnih točk) in jo široko uporabljajo različni varnostni sistemi VM. Pri ustvarjanju posnetka ali izvajanju varnostne kopije se trenutno stanje VM zapiše v eno datoteko vhd, vse spremembe pa se zapišejo na drug, diferencialni (ali razlika) disk.
Vsebina:
- Hyper-V diferencialni pogoni
- Ustvari referenčno sliko sistema VHD
- Na njih ustvarimo razlike diskov in VM-jev
- Spojite diferencialne pogone v Hyper-V
- Zaključek
Hyper-V diferencialni pogoni
Druga zanimivost diferencialnih pogonov je možnost ustvarjanja neke osnovne slike OS (kot vhd datoteka) z vsemi potrebnimi nastavitvami in programsko opremo. Nato lahko na podlagi te slike namestite veliko tipičnih virtualnih strojev, ki uporabljajo vhd pogon osnovne slike, vse spremembe pa zapišejo na lastne virtualne diske. Tako so doseženi pomembni prihranki na diskovnem prostoru. Spodnji primer na primer kaže, da pri uporabi diferencialnih diskov za 4 VM na podlagi ene slike potrebujete le 40 GB, pri klasičnem modelu uvajanja pa za iste stroje potrebujete 150 GB. Razlika je pomembna, zlasti pri hitrih in dragih SSD pogonih!
Diferencialni (diferencialni) pogon Hyper-V je ena od podprtih vrst virtualnih diskov (vhd). Vendar je za razliko od običajnega vhd pogona vezan na drug nadrejeni pogon. Diferencialni disk deluje kot otroški disk in ne vsebuje celotne različice podatkov na VM disku, temveč le spremembe, ki so bile izvedene med njegovim delovanjem, tj. to so podatki, ki ga razlikujejo od nadrejenega.
Slika nadrejene (predloge) vhd ostane nespremenjena in vsi podrejeni virtualni stroji, ustvarjeni na njeni podlagi, napišejo spremembe na svoje diskovne razlike. Velikost takšnega diferencialnega diska je običajno precej majhna (njegova največja velikost ne more preseči velikosti nadrejenega).
Ustvari referenčno sliko sistema VHD
Referenčno VHD datoteko lahko ustvarite s pomočjo uporabniškega vmesnika Hyper-V Manager ali s pomočjo PowerShell-a. PowerShell je veliko hitrejši.
Namig. Za delovanje naslednjih cmdlet mora biti nameščen Hyper-V modul za Windows PowerShell:
Omogoči-WindowsOtionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell
Ustvari novo datoteko vhdx.
nov-vhd -path e: \ podatki \ vhd \ Win2016.vhdx -SizeBytes 50GB -Dinamični
Na podlagi njega ustvarite nov VM:
new-vm -Name TemplateVM -Path e: \ podatki \ vhd \ -VHDPath e: \ podatki \ vhd \ Win2016.vhdx | ''
set-vmmemory -DynamicMemoryEnabled $ true -MaximumBytes 2GB -MinimumBytes 512MB -StartupBytes 1GB
Namestimo namestitveno sliko ISO s sliko želenega OS:
add-vmdvddrive -VMName PredlogaVM-Pot d: \ WinSrv2016.ISO
Ko ustvarite nov VM, morate nanj namestiti OS, ki bo uporabljen kot osnovna slika. Ta operacijski sistem je treba ustrezno konfigurirati (namestiti gonilnike, posodobitve, spremeniti sistemske nastavitve). Nato s pomočjo Sysprep depersonaliziramo OS za prihodnjo uporabo.
cd% SystemRoot% \ System32 \ Sysprep
sysprep / posplošiti / oobe / shutdown
Tako dobimo referenčno sliko VM.
Sam VM je zdaj mogoče izbrisati (shranite svojo datoteko vhd !!!). Da se izognemo slučajni spremembi te datoteke vhd, ki bi lahko zrušila vse podrejene VM-je, jo prestavimo v način ReadOnly:
Lastnost Set-Item e: \ podatki \ vhd \ Win2016.vhdx -Name IsReadOnly -Value $ true
Na njih ustvarimo razlike diskov in VM-jev
Zdaj lahko ustvarite več odvisnih (nadrejenih) datotek vhd:
New-VHD -ParentPath: e: \ podatki \ vhd \ Win2016.vhdx -Path e: \ podatki \ vhd \ Win2016-diff1.vhdx -Differencing
New-VHD -ParentPath: e: \ podatki \ vhd \ Win2016.vhdx -Path e: \ podatki \ vhd \ Win2016-diff2.vhdx -Differencing
Pri ustvarjanju diferencialnega diska prek Hyper-V Manager GUI izberite obliko diska Vhdx-> Razlikovanje, določite njegovo ime in pot do nadrejenega diska.
Zdaj na podlagi teh datotek vhd ustvarjamo dva navidezna stroja Hyper-V:
Novo-VM -Name "Win2016-diff1" -Generacija 2 -MemoryStartupBytes 1GB -VHDPath e: \ podatki \ vhd \ Win2016-diff1.vhdx -SwitchName "Zunanje omrežje"
Novo-VM -Name "Win2016-diff2" -Generacija 2 -MemoryStartupBytes 1GB -VHDPath e: \ podatki \ vhd \ Win2016-diff2.vhdx -SwitchName "Zunanje omrežje"
Zaženite jih:
Start-VM Win2016-diff *
Spojite diferencialne pogone v Hyper-V
V Hyper-V različici Windows 2008 R2 in novejši je bilo mogoče kombinirati diferencialne pogone s nadrejenim (ali drugim pogonom), ne da bi zaustavili VM. Za to obstaja poseben cmdlet. Spoji se-Vhd ali posebno možnost v meniju za urejanje diskov vhd na konzoli Hyper-V Manager.
Lastnost Set-Item e: \ podatki \ vhd \ Win2016.vhdx -Name IsReadOnly -Value $ false
$ Merge = @
Pot = 'e: \ podatki \ vhd \ Win2016-diff2.vhdx'
DestinationPath = 'e: \ podatki \ vhd \ Win2016.vhdx'
Spojite-VHD @Merge
Zaključek
Če želite zmanjšati obremenitev diskovnega podsistema med večkratnim dostopom do iste matične datoteke vhd iz vseh VM-jev, je priporočljivo, da ga postavite na hitre diske. Če želite preprečiti, da bi ta datoteka postala ena sama točka napake, morate razmisliti o strategijah za varnostno kopiranje..