Powershell ile Hyper-V Snapshot

Hyper-V sunucunuz da Snapshot almak için Hyper-V  Management Konsol yada Powershell komut satırını kullanabilirsiniz.

Powershell ile Snapshot almak için Checkpoint-VM komutunu kullanıyoruz. Snapshot alınacak olan sanal sunucunun ismini Get-VM komut satırı ile öğrenebilirsiniz.

Checkpoint-VM “Sanal Sunucu İsmi” –SnapshotName “Neden Snapshot aldığınızı belirten ufak bir not”

Hyperv-snapshot2 (1)

Snapshot kontrolü için Get-VMSnapshot komut satırını kullanıyoruz.

Get-VMSnapshot “Sanal Sunucu İsmi”

Hyperv-snapshot2 (2)

Konsol üzerinde de bu snapshot dosyasını görebiliriz.

Hyperv-snapshot2 (3)

Snapshot oluşturulduğunda hangi dosyaların oluşturulduğuna bakalım. Öncelikle Get-VMHarddiskDrive komutu ile snapshot sonrası oluşan .avhdx diskinin sunucumuzda aktif olarak kullanıldığını görüyoruz. Aynı işlemi Windows Explorer yardımıyla da yapabiliriz.

Hyperv-snapshot2 (4)

Sunucu çalışır durumda olduğundan dolayı .bin ve .vsf dosyalarının da Snapshot klasörü içerisinde oluştuğunu görebiliriz. Ayrıca .xml dosyası da bu klasör içerisindedir.

Hyperv-snapshot2 (5)

Fiziksel host üzerindeki bütün sanal sunucularda update veya benzeri bir işlem öncesi topluca snapshot almak isteyebilirsiniz. Bunun için aşağıdaki komut satırını kullanabilirsiniz.

Get-VM  | Checkpoint-VM -SnapshotName “Before Update”

Hyperv-snapshot2 (6)

Snapshot dosyalarının silinmesi için Remove-VMSnapshot komut satırı kullanılmaktadır. VM’e ait snapshot dosyalarını Get-VMSnapshotkomutu ile listeleyerek yanlış bir dosyayı silme işleminden kurtulabilirsiniz.

Remove-VMSnapshot –VMName “Sanal Sunucu İsmi” –Name “Snapshot İsmi”

Hyperv-snapshot2 (7)

Aynı işlemi konsol üzerinden yapmak için Checkpoint penceresinden ilgili snapshot üzerinde Delete seçeneğini tıklamalıyız.

Hyperv-snapshot2 (8)

Yukarıdaki örnekte, toplu yapılacak update işlemi için aynı fiziksel sunucudaki bütün VM lerin snapshotlarını topluca almıştık. İşlem sonunda bu snapshotları topluca silmek için aşağıdaki komut satırını kullanabilirsiniz.

Get-VM  | Remove-VMSnapshot  -Name “Before Update”

Hyperv-snapshot2 (9)

Konsol üzerinden sanal sunucuya ait bütün snapshotları silmek için “Delete Checkpoint Subtree” menüsünü kullanmalıyız.

Hyperv-snapshot2 (10)

**Snapshot’ ları mutlaka konsol üzerinden yada Powershell yardımıyla silmeliyiz. Aksi taktirde sanal sunucuda veri kaybı yaşanacak ve sunucunuz hizmet veremez hale gelecektir.

Daha önceden alınmış olan bir Snapshot a dönüş işlemi için Restore-VMSnaphot komutu kullanılır.

Bu işlemi örnek ile inceleyelim. Win2K3R2 isimli sunucumuza ait 3 adet snapshot olsun.

Hyperv-snapshot2 (11)

İkinci snapshot durumuna dönmek için aşağıdaki komutu kullanmalıyız.

Restore-VMSnapshot -VMName “Sanal Sunucu İsmi ” -Name “Snapshot İsmi”

 Hyperv-snapshot2 (12)

Aynı işlemi konsol üzerinden yapmak için ilgili snapshot üzerinde sağ tıklayıp Apply dememiz yeterli.

Hyperv-snapshot2 (13)

Faydalı olması dileğimle.

About the Author

Ersin CAN

#IT Manager #Bilişimsever #vExpert #Baba

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir