Windows Server 2008 Serisi hayatıma girdiğinden bu yana dikkat çekici özelliklerinden biri olan “Hyper-V” ile haşır neşir olmaya başladım. İlk olarak “HP DL380G5″ üzerinde Server 2008 koşturarak ücretsiz olarak beraberinde gelen “Hyper-V” rolünü kurdum. İlk 9 ay problem yoktu, fakat eksik bilgilenmem nedeniyle büyük bir problem yaşadım.
Aslında yaşadağım problem az araştırma, makale okumamdan kaynakladın. Donanım konfigürasyonumda 2×146GB SCSI disklerim bulunmakta ve disk bozulmalarına karşı mirror raid yapısında. Yani toplamda 146GB disk alanım bulunmakta. Hyper-V’uyi ilk kurduğum gün 4 tane guest OS oluşturup, Active Directory, WSUS, Kaspersky Update Server ve test v.b. ihtiyaçlarım için Windows XP Pro kurdum. Toplamda 4 guest OS ilk kurulumda disk alanımın yaklaşık 50GB’ını kullanıyordu. Yani buraya kadar bir problem yoktu taki düne kadar
Bir anda kurum içerisinde internet erişimi gitmişti, ilk olarak TTNET problemi olduğunu varsayarak Fortigate 110c’min web yönetimine girerek PPPoE bağlantısının olup olmadığına baktım fakat burada bir sorun görünmüyordu. İkinci olarak DNS’server’ım kapandığını düşünüp Hyper-V sunucuma bağlandım. Guest OS’larımdan “Active Directory”nin durduğunu ve “critical-paused” uyarısı verdiğini gördüm. Sorunun kaynağına bakmadan tekrar “resume” komutunu vererek çalıştırdım. İlk 1 dakikalık sürede normal bir şekilde çalıştı fakat tekrar critical duruma düşmesinin üzerine resume komutunu birkaç kez daha uyguladım. Sorunum çözülmemişti. Sorun nedir diye düşünürken görev çubuğunda disk dolu uyarısı bulunan balon uyarı veriyordu. Fakat bu imkansızdı, toplamda 60GB’ı geçmeyen bir verim vardı ve bunu Guest OS’ların .VHD’leri ispatlıyordu. Sonradan aklıma Guest OS’ların snopshot’larına bakmak geldi. Ufak bir araştırmadan sonra snopshot’ların “C:\ProgramData\Microsoft\Windows\Hyper-V\WSUS” altında tutulduğunu buldum. Hyper-V Her guest OS’için ayrı dizinler açarak snopshot’ları burada tuttuğunu gördüm. Snopshot dizinin toplam boyutuna baktığımda gözlerime inanamadım toplamda 10GB disk alanına sahip bir guest OS’un snopshotları toplamı 30GB’ı buluyordu (.VHD hariç) Fakat ben oluşturduğum snopshot’ları Hyper-V yönetim panelinden daha önceleri silmiştim. Silinen snopshot’ların disk üzerinde neden duruyorduki? Bunu google’a sormak gerekiyordu. Araştırmam sonucu şu bilgiye rastladım;
Zincirdeki AVHD dosyası tek başına bir anlam ifade etmez. Yani bu dosyayı herhangi bir VM’e gösterip içeriğini göremeyiz çünkü Parent VHD ye ihtiyaç duyar. Zincirdeki AVHD’lerden ilkinin başına bir şey gelirse, ondan sonra gelen AVHD dosyasındaki veriler de kullanılamaz hale gelir (yani sonraki snapshot’lar).
Bu bana snopshotların (.ahvd) neden silinmediğini açıklamaya yetmişti. Fakat ben bu snopshot’ları silmek istiyordum çünki disk alanım halen doluydu. Yine araştırmalarım sonucu sanal disk olan .vhd ve snopshot olan .ahvd dosyalarının merge (birleştirme) edilebileceğini öğrendim fakat RDP ile işlem yaptığımdan ve backup sunucumun olmaması nedeniyle pek güvenemedim. İkinci seçenek olarak guest OS’ların image’ini alıp .vhd’ye çevirip yeni guest OS’lar oluşturmaktı. Yine bir araştırma içerisine girdim. Hyper-V Os’um 64BIT olması nedediyle birçok image programı işime yaramadı. Fakat sonunda Acronis firmasının “Acronis Backup & Recovery 10 Virtual Edition” ürünüyle tanıştım. Hemen 15 günlük deneme lisans kodu başvurusu yaparak download ettim. Hem 64BIT desteği, hemde %100 Hyper-V desteği bulunuyordu. En büyük özelliği ise oluşturduğu image (.tib) dosyalarını microsoft sanal disk (.vhd) formatına dönüştürebiliyordu. İlk olarak acronis’i active directory sunucuma kurarak local’deki başka bir pc’ye sunucumum image’ini aldım. Gigabit switch ve ethernetlerim sayesinde image alma süresi ortalama 25 dk sürdü. Sıra alınan (.tib) image’ini Hyper-V nin desteklediği disk yapısı olan .vhd’ye çevirmekti. Söylediğim gibi Acronis’in bu sürümü bu işlemi gerçekleştirebiliyordu. Birkaç basit komuttan sonra .vhd dosyam hazırdı. Çalışıp çalışmayacağı tereddütleri içerisinde Hyper-V yönetim konsolundan yeni bir guest sunucu oluşturarak oluşturduğum .vhd dosyasını mount ettim ve sunucumu başlattım. Herşey yolundaydı, bütün emeklerime değmişti. Aynı işlemleri sırasıyla “WSUS” sunucum içinde uyguladım ve disk alanım toplamda 56GB boş duruma düştü. Şuan Ramazan bayramı içerisinde olmam nedeniyle “Kaspersky Update Server” ve test makinam olan “Microsot Xp Pro” için bu işlemleri uygulamamın zamanı olmadığını düşündüğümden ilk mesai günümde yapmaya karar verdim.
Özet olarak olurda birgün Hyper-V kullanma ihtiyacı duyarsanız disk alanınızı büyük tutunki snopshot alma imkanınız bulunsun. Disk alanınız düşük ise asla snopshot almayın.



Ekim 16th, 2009 at 23:12
Merhaba,
dönüştürdüğünüz .vhd dosyasını hyper-v’ye mount edip açtığınızda eski kullandığınız guest OS’yi sildiniz mi? alınan snapshotlarda silineceğinden öyle mi yer açıldı? aynısını yarın bende yapacağım da kara kara düşünüyorum
Ekim 16th, 2009 at 23:29
Evet dönüştürdükten sonra yeni bir sanal sunucu oluşturup dönüştürdüğüm .vhd’yi mount ettim. Sonra eski sanal sunucuyu sildim. Fakat snapshotları dizininden silmek gerekiyor.
Ekim 17th, 2009 at 00:50
Yeni vhd ile açtığınızda artık snapshotlarla işiniz kalmıyor değil mi? Yenisin de almıyorsunuz çünkü. Dizinden tümünü sildiğiniz de problem olmuyor?
Ekim 17th, 2009 at 10:39
Evet snapshot ile işiniz kalmıyor. Image alıp .vhd’ye convert ettiğiniz diski mount edip çalıştırdıktan sonra snapshot ve eski sanal sunucuyu silebilirsiniz.