Snapshot ile ilgili ilk makalemizi hatırlasanız bu özelliğin background’u hakkında bilgiler vermiştim. Bu bölümde ise aşağıdaki temel konuları ve nasıl gerçekleştiklerini inceleyeceğiz.
Snapshot almak,
Var olan bir snapshot’a geri dönmek,
Snapshot silmek,
Bu işlemlerin Parent Partition üzerindeki gerçek partition’lara etkileri
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.
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.
Sanapshot işlemlerini yine örnek bir senaryo üzerinde inceleyeceğiz çünkü sizlerden gelen feedback’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 free space.
VM üzeride kontrol edelim.
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.
VM configuration ve VHD dosyasının Parent Partition üzerinde bulunduğu fiziksel partition’ın durumu ise aşağıdaki gibidir.
Evet bu bilgileri verdikten sonra VM için bir snapshot alıyoruz.
İşlem hızlıca tamamlanıyor.
Aldığımız bu snapshot ve daha sonraki snapshot’lar aşağıdaki gibi listeleniyor olacak.
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.
Şimdi bu snapshot’ın Parent Partition üzerindeki ilgili dizinlerde yaratmış olduğu dosyalara ve boyutlarına bakalım.
Yukarıda ilgili dizin altında yaratılan yeni snapshot dizinini ve içersindeki 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.
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
Evet, yaklaşık 5GB olmuş.
Peki kopyaladığımız 2.5GB boyutlu data hangi sanal disk dosyasına eklenmeli? Tabiki AVHD içerisine çünkü alınmış bir snapshot var ve artık yeni eklenen veriler bu sanapshot’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.
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.
Birde VHD dosyasının boyutuna bakalım.
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.
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.
Yaptığım bu yeni işlemler nereye yazılıyor? Tabi ki ilk snapshottan sonra yaratılan AVHD dosyasına.
Şimdi bir snapshot daha alıyoruz
İkinci snapshottan 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.
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.
Şimdi masa üstünde klasör2 isminde yeni bir dizin yaratıyorum ve içine yaklaşık 1.5GB kadar veri kopyalıyorum.
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.
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.
3ncü snapshottan sonra XP üzerine IIS yüklüyorum.
Şimdilik bu kadar snapshot yeterli.
Aldığımız snapshot’ları ve eklediğimiz verileri toparlamak istiyorum.
Şimdi bu bilgiler doğrultusunda geri dönüş ve silme işlemlerini inceleyelim.
Ö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
Aplly komutunu verdikten sonra karşımıza aşağıdaki pencere gelir.
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.
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ı)
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.
Bu sefer direkt Apply komutu ile devam ediyorum çünkü şu an ki durumun snapshot’ına ihtiyacım olmayacağını var sayıyorum.
Geri dönüşten sonra bulunduğumuz konum:
Şu an hiç veri kopyalanmamış, hiç program kurulmamış yani sistemin en temiz halindeyiz.
VM diskini kontrol edelim.
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.
Geldiğimiz nokta 2 numaralı snapshot’ın hemen sonrası. Now etiketi şu an bulunduğumuz yeri temsil eder.
Döndüğümüz snapshot ise her zaman için kendinden önceki verileri içerir.
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.
Yani mantık; bir snapshot, alındığı zamandan hemen önceki duruma dönüş sağlar.
Aşağıdaki gibi
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.
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 diske merge edilmesi gerekir. Her ne kadar snapshot’ı siliyor olsak ta ç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.
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.
Delete Snapshot komutunu uyguluyoruz ve snapshot listeden siliniyor.
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.
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.
Önceki ile kıyaslarsak
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.
Birde Delete Snapshot Subtree komutu vardır.
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.
Serhat AKINCI – IT Professional