Sayfalar

10 Ekim 2010 Pazar

Hyper-V Sanal Makinelerin Çevrimiçi Yedeklenmesi

Hyper-V sunucularınız üzerinde pekçok sanal makine oluşturdunuz. Peki Sanal sistemlerinizi kapatmadan ve kaydetmeden yedeklemelerini nasıl yapacaksınız?

Anlık görüntüleri (snapshot) birer yedek olarak sakın düşünmeyin. Anlık görüntüler sisteminizin dosyalarında veri kaybı olduğunda size kurtarma şansı sunamazlar. Sadece sanal sistemlerinizin anlık görüntü alınan zamanlara geri dönemilmelerini sağlarlar.

Şu anda çevrimiçi yedekleme yapabilmek için birkaç teknik bulunmakta.

1. Server 2008 tarafından sunulan Windows Sunucu Yedeklemesi (Windows Server Backup) aracını kullanabilirsiniz.Ancak bu seçenekle yedekleme yapmak oldukça uğraştırıcıdır.
2. Sanal makineyi durdurabilir ya da kaydedebilir ve ardından VHD dosyalarını kopyalayıp konfigurasyon dosyalarını verebilirsiniz (export). Ancak bu durumda da sistemlerinizi bir süre çevrimdışı durumda bırakmak zorunda kalırsınız.
3. Yazılım üreticilerinin sunduğu 3. parti çözümler. Örneğin Symantex BackupExec adlı yazılım bu imkanı bize sağlar. Ancak bunlara da ekstra ödeme yapmak zorundasınız.
4. Birim Gölge (DiskShadow) cmdlet'lerini biraz kodlamayla birleştirebilirsiniz.

Burada size Birim Gölge servisini kullanarak Hyper-V sanal makinelerinin çevrimiçi yedeklemelerinin nasıl yapılacağı anlatılacaktır.


Birim Gölge Servisi'ni kullanarak çevrimiçi yedekleme yapabilmemiz için 3 adet dosya oluşturacağız. Ben bunları aynı klasör içine toplamayı tercih ediyorum.

1. dosyamızın adı HyperVBackup.cmd olacak. Yedekleme sistemimizin temeli bu dosya olup diğer dosyaların içinden ayarları okumasını ve komutları çalıştırmasını sağlayacağız. Tüm ayarlamaları sağlıklı olarak yaptığımızda tek tıklamalık bir yedekleme işlemi (hatta zamanlanmış görev oluşturarak kendi kendine çalışan bir yedekleme sistemi) oluşturmuş olacağız.

HyperVBackup.cmd dosyası içeriği:
-------------------------------------------------------------
REM Use the diskshadow command to support "live" Hyper-V backup
REM   though VSS

diskshadow /s vmbackup.txt > HyperVBackup_LOG.txt


REM Remove CAB files which are generated to support the exporting
REM   of disk shadow copies (not required here)

del *.cab /Q
-------------------------------------------------------------
Burada olan şey şu 
  1. diskshadow cmdlet'i vmbackup.txt içindeki parametreleri okuyup çalıştıracak.
  2. Oluşan tüm hataları, bilgileri, uyarıları HyperVBackup_LOG.txt dosyasına yazacak.
  3. En son olarak yedekleme işlemi sırasında oluşan kabinet dosyalarını silecek.
2. dosyamız parametreleri barındıran vmbackup.txt dosyası.

vmbackup.txt dosyası içeriği:
-------------------------------------------------------------
# Remove any existing shadow copies from crashed or errored scripts
# WARNING: this will conflict with other backup software if running
# at the same time.
delete shadows all

# Use a persistent context so we can "map" a drive
set context persistent

# Log everything
set verbose on


# ***TODO*** Change this drive letter to match the location of your
# VHD files
add volume D: alias HyperV1

# Add additional volumes if needed
#add add volume H: alias HyperV2

# Create the shadow copy
create

# Expose each shadowed volume as a drive
# ***TODO*** Make sure the exposed drive letter is available and used
# in the backup script
expose %HyperV1% S:

# Expose additional volumes as needed
#expose %HyperV2% T:

# Execute the backup script (robocopy)
exec HyperVBAckup_exec.cmd

# clean up the shadow copy images
delete shadows all
#unexpose VM alias
unexpose S:

-------------------------------------------------------------

Parametreleri incelersek;
  1. Eğer daha önce oluşturulmuş gölge kopyalar varsa bunlar silinecek.
  2. Sanal sürücü oluşturup gölge kopyaların bunlar içinde gösterilebilmesi için sisteme parametreler okunacak.
  3. D: sürücüsünde sanal makinelerimizin olduğunu söylüyoruz. Eğer sanal makineleriniz bu sürücüden farklı bir yerdeyse değiştirmelisiniz. Eğer başka sanal makine barındıran sürücünüz varsa bunları da benzer şekilde belirtmelisiniz (#add add volume H: alias HyperV2 ile başlayan satırda örnek verilmiştir).
  4. Sisteme S: sürücüsü gölge kopyaların imajlarının bulunduğu sanal sürücü olarak eklenecek. Eğer bir önceki adımda birden fazla sanal makine sürücüsü gösterdiyseniz bu adımda her sürücü için ayrı bir sanal sürücü belirtmelisiniz (#expose %HyperV2% T: ile başlayan satırda örnek verilmiştir).
  5. HyperVBAckup_exec.cmd yedekleme işlemi dosyası çalıştırılacak.
  6. Tüm gölge kopyalar silinecek.
  7. Tüm sanal sürücüler kaldırılacak.
3. ve son dosyamız olan HyperVBackup_exec.cmd dosyası da oluşturulan gölge kopyaları dilediğimiz konuma kopyalamamızı sağlayacak.

HyperVBackup_exec.cmd dosyası içeriği:
-------------------------------------------------------------
REM This is the script to perform the actual copy of the files

REM Use robocopy with the source set to the expose shadow drives
REM The drives are read-only, so don't try to reset the archive bit
REM **TODO** Set the destination location for the backups
 
net use U: \\storage\VMBACKUPS adminsifresi /USER:administrator
robocopy S: U: /MIR /NP /XF *.ISO /R:2 /W:5
net use U: /delete

REM Dummy command to clear the robocopy errorlevel

verify >nul

-------------------------------------------------------------

Bu dosyada keyfi yapılan adımlar var. Örneğin ben bir ağ paylaşımını U: ağ bağlantısı olarak sisteme ekleyip buraya kopyalama yapıyorum. Ayrıca kopyalama için de robocopy programını kullanıyorum.
Siz böyle bir ağ paylaşımına bağlantı gerçekleştirmek zorunda değilsiniz. Dilerseniz direkt olarak bilgisayarınızda bulunan başka bir diske de kopyalama yapabilirsiniz.
Kopyalama için kullandığım robocopy'yi de kullanmak zorunda değilsiniz. XCopy ya da kendi özel olarak kullandığınız kopyalama-yedekleme programlarını da burada çağırabilirsiniz. Önemli olan tüm sanal makine klasörlerinin sağlıklı bir şekilde hedefe aktarılması.

Umarım keyifli bir yazı olmuştur. Aklıma gelen tüm ayrıntıları paylaşmaya çalıştım. Sizlerden gelen yorumlar doğrultusunda bu yazımdaki eksiklikleri tamamlayıp düzeltmeleri yapacağım.

Bol kazançlı çalışmalar.

Hiç yorum yok:

Yorum Gönder