Fitur menggunakan drive diferensial di Hyper-V

Teknologi disk diferensial (diferensial) Hyper-V telah hadir di hypervisor Microsoft selama beberapa waktu (jika saya tidak salah, dari versi Hyper-V di Windows Server 2008). Sebagai aturan, ini umum bagi sebagian besar administrator dalam kaitannya dengan teknologi untuk membuat snapshots (pos pemeriksaan) dan banyak digunakan oleh berbagai sistem cadangan VM. Saat membuat snapshot atau melakukan pencadangan, keadaan VM saat ini direkam dalam satu file vhd, dan semua perubahan ditulis ke disk lain, diferensial (atau perbedaan).

Konten:

  • Drive diferensial Hyper-V
  • Buat gambar sistem VHD referensi
  • Kami membuat disk dan VM berbeda berdasarkan mereka
  • Gabungkan drive diferensial di Hyper-V
  •  Kesimpulan

Drive diferensial Hyper-V

Fitur lain yang menarik dari drive diferensial adalah kemampuan untuk membuat beberapa gambar OS dasar (sebagai file VHD) dengan semua pengaturan dan perangkat lunak yang diperlukan. Kemudian, berdasarkan gambar ini, Anda dapat menggunakan banyak mesin virtual khas yang menggunakan drive vhd dari gambar dasar, dan semua perubahan ditulis ke disk virtual mereka sendiri. Dengan demikian, penghematan yang signifikan dalam ruang disk tercapai. Sebagai contoh, contoh di bawah ini menunjukkan bahwa ketika menggunakan disk diferensial untuk 4 VM berdasarkan pada satu gambar, hanya 40 GB yang diperlukan, dan dengan model penyebaran klasik, 150 GB diperlukan untuk mesin yang sama. Perbedaannya signifikan, terutama untuk drive SSD yang cepat dan mahal! 

Drive diferensial (diferensial) Hyper-V adalah salah satu jenis disk virtual (vhd) yang didukung. Namun, tidak seperti drive vhd biasa, drive ini diikat ke drive induk lain. Disk diferensial berfungsi sebagai disk anak dan tidak berisi versi lengkap data pada disk VM, tetapi hanya perubahan yang dibuat selama operasinya, mis. ini adalah data yang membedakannya dari induknya.

Gambar vhd induk (templat) tetap tidak berubah, dan semua mesin virtual anak yang dibuat atas dasar menulis perubahan ke disk perbedaan mereka sendiri. Ukuran disk diferensial seperti itu biasanya cukup kecil (ukuran maksimumnya tidak boleh melebihi ukuran induknya).

Buat gambar sistem VHD referensi

Anda dapat membuat file VHD referensi menggunakan Hyper-V Manager GUI atau menggunakan PowerShell. PowerShell jauh lebih cepat.

Kiat. Agar cmdlet berikut berfungsi, modul Hyper-V untuk Windows PowerShell harus diinstal:

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

Buat file vhdx baru.

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

Berdasarkan itu, buat VM baru:

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

Kami memasang gambar ISO instalasi dengan gambar OS yang diinginkan:

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

Setelah Anda membuat VM baru, Anda perlu menginstal OS di atasnya, yang akan digunakan sebagai gambar dasar. OS ini perlu dikonfigurasi sesuai (instal driver, pembaruan, ubah pengaturan sistem). Kemudian, dengan menggunakan Sysprep, kami mendepersonalisasikan OS untuk penyebaran di masa depan.

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

Dengan demikian, kami mendapatkan gambar referensi dari VM.

VM itu sendiri sekarang dapat dihapus (menyimpan file vhd !!!). Untuk menghindari secara tidak sengaja mengubah file vhd ini, yang bisa membuat crash semua VM anak, kami akan memasukkannya ke mode ReadOnly:

Set-ItemProperty e: \ data \ vhd \ Win2016.vhdx -Nama IsReadOnly -Nilai $ true

Kami membuat disk dan VM berbeda berdasarkan mereka

Sekarang Anda dapat membuat beberapa file vhd (anak) dependen:

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

Saat membuat disk diferensial melalui GUI Manajer Hyper-V, pilih format disk Vhdx-> Membedakan, tentukan nama dan jalurnya ke disk induk.

Sekarang, berdasarkan pada file vhd ini, kami membuat 2 mesin virtual Hyper-V:

New-VM -Nama "Win2016-diff1" -Generation 2 -MemoryStartupBytes 1GB -VHDPath e: \ data \ vhd \ Win2016-diff1.vhdx -SwitchName "External Network"
New-VM -Nama "Win2016-diff2" -Generation 2 -MemoryStartupBytes 1GB -VHDPath e: \ data \ vhd \ Win2016-diff2.vhdx -SwitchName "External Network"

Jalankan mereka:

Start-VM Win2016-diff *

Gabungkan drive diferensial di Hyper-V

Dalam versi Hyper-V Windows 2008 R2 dan lebih tinggi, menjadi mungkin untuk menggabungkan drive diferensial dengan induk (atau drive lain) tanpa menghentikan VM. Ada cmdlet khusus untuk ini. Gabungkan-Vhd atau opsi khusus di menu pengeditan disk vhd di konsol Hyper-V Manager.

Set-ItemProperty e: \ data \ vhd \ Win2016.vhdx -Nama IsReadOnly -Nilai $ false
$ Gabung = @
Path = 'e: \ data \ vhd \ Win2016-diff2.vhdx'
DestinationPath = 'e: \ data \ vhd \ Win2016.vhdx'

Gabungkan-VHD @Merge

 Kesimpulan

Untuk mengurangi beban subsistem disk selama beberapa akses ke file vhd induk yang sama dari semua VM, disarankan untuk meletakkannya di disk cepat. Untuk mencegah file ini menjadi satu titik kegagalan, Anda perlu mempertimbangkan strategi untuk membuat cadangannya..