Hyper-V: Snapshot Aksiyonları

29.04.2009 | 12:26 Dokümanlar , Hyper-V 2 Yorum

Hyper-V Snapshot makale serimizin ilk bölümünde Hyper-V: Snapshot Kavramı ‘nı ele alıp bu özelliğin arka planı hakkında bilgiler vermiştim. Bu bölümde ise aşağıdaki temel konuları ve nasıl gerçekleştiklerini inceleyeceğiz.

  • Yeni bir Snapshot nasıl alınır
  • Var olan bir Snapshot ’a nasıl dönülür
  • Snapshot nasıl silinir
  • Bu işlemlerin Parent Partition üzerindeki gerçek Partition ’lara etkileri

Hyper-V Snapshot Nasıl Alınır

Yeni bir Snapshot ’ın nasıl yaratılacağına önceki bölümde çok kısa değinmiştik. Hatırlayacak olursak, Hyper-V Manager konsolunda ilgili VM’i seçip Snapshot komutunu uyguluyoruz.

Hyper-V Snapshot Nasıl Alınır

Ve Snapshot alama işlemi hızlıca gerçekleşiyor. Alınan Snapshot ’ın neleri içerdiği konusuna girmiyorum çünkü önceki bölümlerde bu konuyu da ayrıntılı olarak incelemiştik. Bu nedenle ilk bölümü okumadıysanız mutlaka okumanızı öneririm.

Snapshot işlemlerini yine örnek bir senaryo üzerinde inceleyeceğiz çünkü sizlerden gelen dönüşler gösteriyor ki bu gibi örnek senaryolar üzerinde anlatılan konular çok daha anlaşılır oluyor.

Örnek senaryomuzda 30GB maximum size ile yaratılmış Dynamically Expanding sanal disk ile çalışan bir VM var ve üzerinde Windows XP Kurulu.

VM içerisinde tek bir Partition var (C:) ve 30GB size’ın 2.5GB’ı işletim sistemi tarafından kullanılıyor. Geri kalan kısım boş alan.

VM üzerinde kontrol edelim.

Sanal Makine Disk Birim Yapısı

Dynamically Expanding tipin bir özelliği olarak bu sanal diski temsil eden VHD dosyasının Parent Partition üzerindeki boyutu 30GB değil, o an içindeki veri miktarı ile doğru orantılı olarak genişleyen bir boyuta sahiptir. (yani şimdilik yaklaşık 2.5GB).

İlgili VHD dosyasının boyutunu Parent Partition üzerinde kontrol edelim. VM ’in bulunduğu dizini aşağıda görebilirsiniz.

VHD Boyutu

VM configuration ve VHD dosyasının Parent Partition üzerinde bulunduğu fiziksel Partition ’ın durumu ise aşağıdaki gibidir.

Host Disk Birim Özellikleri

Evet bu bilgileri verdikten sonra VM için bir Snapshot alıyoruz.

Yeni Snapshot Nasıl Alınır

İşlem hızlıca tamamlanıyor.

Yeni Snapshot Nasıl Alınır 2

Aldığımız bu Snapshot ve daha sonraki Snapshot’lar aşağıdaki gibi listeleniyor olacak.

Hyper-V Manager Snapshot Bölümü

Default durum olarak sanal makine adı ve alındığı tarih/saat bilgisi Snapshot ismi olarak atanır. Üzerine sağ tıklayıp rename diyerek değiştirebilirsiniz. Daha anlaşılır olması açısından isimleri 1. 2. 3. olarak değiştireceğim.

Snapshot Rename

Şimdi bu Snapshot ’ın Parent Partition üzerindeki ilgili dizinlerde yaratmış olduğu dosyalara ve boyutlarına bakalım.

Hyper-V Snapshot Dosyaları

Yukarıda ilgili dizin altında yaratılan yeni Snapshot dizinini ve içeresindeki diğer dizinleri görebilirsiniz.

Snapshot dizininin hemen altında XML dosyasının kopyası duruyor. Ayrıca yine aynı yerdeki ilk dizinde ise (SNAPGUID name sahip dizin) BIN ve VSV dosyalarının kopyalarını görebilirsiniz. VM açık durumdayken Snapshot aldığımız için bu dosyalar da kopyalandı. Eğer VM kapalıyken Snapshot almış olsaydık bu dosyalar olmayacaktı.

İkinci dizinde ise AVHD dosyası bulunuyor.

Hyper-V Snapshot Dosyaları 2

VHD dosyasının boyutunun 8.993KB olduğunu görebiliyorsunuz (Bu size değişkenlik gösterir). İçerik olarak boştur.

Senaryomuza devam ediyoruz. İlk Snapshottan sonra Windows XP masaüstüne yaklaşık 2.5GB boyutlu bir klasör kopyalıyorum (ismi klasör1). Doğal olarak 2.5GB olan C: sürücüsünün kullanılan alanı 5GB’a yükseliyor.

VM üzerinde kontrol edelim.

Sanal Makine Disk Durumu

Yaklaşık 5GB olmuş.

Peki kopyaladığımız 2.5GB boyutlu data hangi sanal disk dosyasına eklenmeli? Tabii ki AVHD içerisine çünkü alınmış bir Snapshot var ve artık yeni eklenen veriler bu Sapshot ‘a ait AVHD içine yazılır.

Bu durumda az önce baktığımız ve yaklaşık 9.000KB boyutlu AVHD dosyasının yeni boyutu en az 2.5GB olmalı ve VHD dosyasının boyutunda bir değişiklik olmamalı. Kontrol edelim.

AVHD Dosya Boyutu

Gördüğünüz gibi boyut artmış durumda. Rakamların birebir tutmamasının sebebi, veri kopyalama işlemi dışında sanal işletim sistemi tarafından da AVHD içerisine yazılan bir takım verilerin olmasıdır. Çünkü işletim sistemi çalışıyor ve sürekli girdi gerçekleşiyor. Farkı yaratan bu verilerdir.

Bir de VHD dosyasının boyutuna bakalım.

VHD Dosya Boyutu

Yukarıda gördüğünüz gibi VHD dosyasının boyutu değişmedi.

Ayrıca VHD ve AVHD dosyalarının Parent Partition üzerinde durduğu fiziksel Partition ’ın boyutuna da bakalım.

Fiziksel birim boyutu

Görmüş olduğunuz gibi used space de yaklaşık 2.5GB artmış durumda.

Senaryomuza devam ediyoruz ve şimdi VM içerisine Windows Live Messenger ve Live Writer yazılımlarını kuruyorum. (Kolay olduğu için bu prog. seçtim. Bu senaryo her türlü program ve kurulum için geçerlidir)

Son durum aşağıdaki gibidir.

Test Sanal Makinesi Oturumu

Yaptığım bu yeni işlemler nereye yazılıyor? Tabii ki ilk Snapshot ‘dan sonra yaratılan AVHD dosyasına.

Şimdi bir Snapshot daha alıyoruz.

Hyper-V Manager Snapshot Listesi

İkinci Snapshot ‘dan sonra Snapshots dizini altına XML’in yeni bir kopyası alınır. VSV ve BIN dosyalarının duracağı yeni bir dizin yaratılır ve içerisine bu dosyaların yeni kopyaları oluşturulur. Ek olarak ilk Snapshot ’a ait AVHD’nin bulunduğu dizin içinde yeni bir AVHD daha yaratılır ki bu adımları bir önceki makalemizde ayrıntılı olarak açıklamıştık.

Kontrol edelim.

Snapshot XML Dosyaları

Yukarıda 2. Snapshot için yaratılan ve BIN ile VSV dosyalarının kopyalandığı dizin ile XML dosyasını görebiliyorsunuz (kırmızı ile işaretli).

Aşağıda ise ikinci AVHD dosyasını görebiliyorsunuz. Boyut yaklaşık 250KB seviyesinde. İlk AVHD ise 3.7GB kadar görünüyor.

Snapshot AVHD Dosyaları

Şimdi masa üstünde klasör2 isminde yeni bir dizin yaratıyorum ve içine yaklaşık 1.5GB kadar veri kopyalıyorum.

TestVM Oturumu

Bu durumda boyutu genişleyen dosya ikinci Snapshot ’a ait olan AVHD dosyası olacaktır. VHD ve ilk AVHD dosyasının boyutu değişmeyecektir. Kontrol edelim.

AVHD Disk Boyutu

VM içindeki C: sürücüsünün boyutunu ve Parent Partition üzerindeki birimin boyutunu da kontrol ederseniz, onlarda da ilgili artışın gerçekleştiğini görebilirsiniz.

Ve 3. Snapshot ’ı alıyoruz.

Snapshot Listesi

3ncü Snapshottan sonra XP üzerine IIS yüklüyorum.

TestVM Oturumu - IIS

Şimdilik bu kadar Snapshot yeterli.

Aldığımız Snapshot’ları ve eklediğimiz verileri toparlamak istiyorum.

Snapshot Zamanları ve İçeriği

Şimdi bu bilgiler doğrultusunda geri dönüş ve silme işlemlerini inceleyelim.

Hyper-V Snapshot Nasıl Dönülür

Örneğin IIS sorun çıkarttı ve bir türlü sistemden kaldıramıyoruz. Bu durumda IIS kurmadan önce almış olduğumuz Snapshot ’a geri dönebiliriz. Yani 3.Snapshot.

Hyper-V Snapshot Geridönüş 1

Aplly komutunu verdikten sonra karşımıza aşağıdaki pencere gelir.

Hyper-V Snapshot Geridönüş 2

Eğer Take Snapshot Then Apply seçersek, VM ’in şu anki yani sorunlu IIS ile çalışan durumunun bir Snapshot ’ı alınır ve daha sonra 3ncü Snapshot ’a geri dönülür.

Eğer direkt Apply dersek herhangi bir Snapshot alınmaz ve hemen 3ncü Snapshot ’a geri dönülür ancak daha sonra ihtiyacımız olursa IIS ’in sorunlu olarak çalıştığı zamana geri dönemeyiz.

Take Snapshot Then Apply seçerek devam edelim.

Bu durumda yeni bir Snapshot daha oluşturulur ve sistem 3ncü Snapshot anına geri döner.

Snapshot Listesi

Now’un hemen altında VM ismi ve Snapshot saat/tarih ile temsil edilen 4ncü Snapshot’ı görebiliyorsunuz.

4ncü Snapshot içinde bir AVHD dosyası yaratılır. (ayrıca BIN ve VSV dosyaları)

Snapshot Zincir Dosyaları

Bu geri dönüşten sonra senaryo gereği IIS ’i yeniden kurduk ve hala sorunun devam etmekte olduğunu gördük ve işletim sistemi ile ilgili bir problem olabileceğine kanaat getirdik.

Bu durumda sistemi 1. Snapshot noktasına geri alabiliriz. 1. Snapshot noktası sistemin en temiz halinin bir görüntüsünü tutuyor çünkü hiçbir işlem yapmadan önce almıştık.

Snapshot Geridönüş

Bu sefer direkt Apply komutu ile devam ediyorum çünkü şu an ki durumun Snapshot ’ına ihtiyacım olmayacağını var sayıyorum.

Snapshot Geridönüş 2

Geri dönüşten sonra bulunduğumuz konum:

Snapshot Listesi

Şu an hiç veri kopyalanmamış, hiç program kurulmamış yani sistemin en temiz halindeyiz.

VM diskini kontrol edelim.

Test Sanal Makine Oturumu

Diğer Snapshot’lar da yerinde duruyor. Eğer istersek sistemi sonraki Snapshot noktalarına çekebiliriz.

Yani geri dönüşler ve ileri gidişler şeklinde Snapshot ’ları uygulamak mümkün.

Windows Live Massenger ve Writer’ın olduğu görüntüye gitmek istersek 2 numaralı Snapshot’ı uygulamak yeterli.

Snapshot Geridönüş

Geldiğimiz nokta 2 numaralı Snapshot ’ın hemen sonrası. Now etiketi şu an bulunduğumuz yeri temsil eder.

Snapshot Listesi

Döndüğümüz Snapshot ise her zaman için kendinden önceki verileri içerir.

Snapshot Zincir Tablosu

Yukarıdaki tabloya göre şunu düşünelim.

Now durumundayız. Klasör1 ve live Messenger/writer yazılımlarının kurulu olduğu zamana geri dönmek istiyoruz. Peki bu kurulumlar hangi AVHD dosyasının içinde? 1.Snapshot için yaratılan AVHD ‘nin içinde. Ama biz 1nci Snapshot ’a geri dönersek bu kurulumlardan daha önceye gitmiş oluruz çünkü 1nci Snapshot’ı bu kurulumlardan daha önce almıştık.

Bir Snapshot, alındığı zamandan hemen önceki duruma dönüş sağlar.

Aşağıdaki gibi

Hyper-V Snapshot Zincir İlişkisi

Geri dönüş işlemleri kısaca böyle. Gördüğünüz gibi geri dönüşler var olan Snapshot ’ların silinmesine neden olmuyor.

Hyper-V Snapshot Nasıl Silinir

Gelelim Snapshot silme konusuna. Eğer bir Snapshot ’ı silmek istiyorsanız, delete Snapshot komutu ile silmelisiniz.

Silme işlemine bağlı olarak silinen parçanın sistem tarafından bir önceki sanal diske Merge edilmesi gerekir. Her ne kadar Snapshot ’ı siliyor olsak da çalışan işletim sisteminin bu parça içindeki bilgilere ihtiyacı vardır ve bu nedenle bilgilerin başka bir parça içine aktarılması gerekir.

Snapshot silme işlemini daha iyi anlayabilmek için küçük bir silme işlemi gerçekleştirelim.

Hyper-V Snapshot Silme İşlemi 1

Yukarıdaki 3 numaralı Snapshot ’ı sileceğiz.

Peki 3 numaralı Snapshot için yaratılan AVHD içerisinde neler var? Son Snapshot alındığı andan sonra yazılan veriler var.

3 numaralı Snapshot silineceği için bu AVHD içindeki verilerin başka bir parçaya kopyalanması gerekir çünkü sistem bunları hala kullanıyor ve kullanmaya devam edecek.

Bu nedenle silinen Snapshot ’a ait veriler bir önceki Snapshot ’ın AVHD dosyası ile Merge edilir yani birleştirilir.

Bu durumda yukarıda görünen 513.256KB’lık AVHD boyutu bir önceki Snapshot ’a eklenecek ve bir önceki Snapshot ’a ait AVHD dosyasının boyutu o ölçüde artacak.

Hyper-V Snapshot Silme İşlemi 2

Delete Snapshot komutunu uyguluyoruz ve Snapshot listeden siliniyor.

Hyper-V Snapshot Silme İşlemi 3

Ancak Snapshot silme işlemi henüz tamamlanmadı çünkü henüz Merge işlemi gerçekleşmedi.

Snapshot silme işlemini VM açıkken yaptığımız için Merge başlamadı bu nedenle 3ncü Snapshot ’a ait AVHD dosyası hala duruyor ve kullanımda. VM’in ilk kapanışında Merge işlemi otomatik olarak başlayacak ve Merge edilecek verinin boyutuna göre bir süre devam edecek. Merge bittikten sonra 3ncü Snapshot ’a ait AVHD dosyası sistem tarafından silinecek.

Şimdi VM’i kapatıp Merge işleminin başlamasını sağlıyoruz. Bu kapatma işlemini herhangi bir zamanda yapabiliriz ama kesinlikle hemen yapmanızı öneririm.

Merge işlemini operations sütunundan takip edebilirsiniz.

Hyper-V Snapshot Silme İşlemi 4

Merge bittiğinde VM ’i tekrar start ediyoruz ve artık 3ncü Snapshot ile ilgili silme işlemi tamamlanıyor.

Şimdi AVHD dosyalarını bulunduğu dizine gidip ilgili AVHD dosyasının silindiğini ve içeriğinin bir önceki Snapshot ’a ait AVHD içine kopyalandığını görebilirsiniz.

Hyper-V Snapshot Silme İşlemi 5

Önceki ile kıyaslarsak

Hyper-V Snapshot Silme İşlemi 6

Ayrıca silinen Snapshot ’a ait XML ve varsa BIN ile VSV dosyaları ve dizinleri de otomatik olarak silinir.

Diğer Snapshot ’ları sildiğimizde de davranış aynıdır.

Hyper-V Snapshot Silme İşlemi 7

Birde Delete Snapshot Subtree komutu vardır.

Hyper-V Snapshot Silme İşlemi 8

Bu komut ile ilgili Snapshot ve altındaki diğer Snapshot ’lar topluca silinebilir. Yine VM ’in kapatılması ile birlikte tek tek Merge işlemi gerçekleşir ve ilgili XML, BIN ve VSV dosyaları silinir (varsa).

Snapshot silindiğinde gerçekleşmesi gereken Merge işlemi önemli bir aşamadır. Eğer sağlıklı olarak gerçekleşmez ise veri kayıpları yaşanabilir.

Merge işlemi silinecek AVHD ’nin bir önceki parçaya kopyalanması ile gerçekleştiği için, AVHD ’lerin durduğu Parent Partition diskinde yeteri kadar free space olması şarttır. Bu konuyu bir sonraki makalede ele alacağız.

Bu makalede Snapshot alma, silme ve Merge işlemlerini inceledik. Bir sonraki makalede Snapshot için özel durumlar ve tavsiyeler üzerinde duracağız.

Yazı Etiketleri: , , , ,

Sayfa Başı ▲

Yorumlar (2)

  1. Levent ALISKIN

    elınıze saglık hocam güzel paylaşım..

  2. Murat Korkmaz

    Elinize sağlık Serhat bey, çok işlevsel ve ayrıntılı bilgilendirmişsiniz. tşk.ler,

Yorum Ekle