VMware vmdk disklerin Hyper-V vhdx disk formatına çevrilmesi

Merhabalar,

VMware platformunda oluşturduğunuz herhangi bir sanal makineyi, bazı nedenlerden dolayı Hyper-V platformunda kullanmak üzere convert etmek isteyebilirsiniz. Belki ürün geliştiriyorsunuz ve sanallaştırma platformunuz VMware, bu sunucunun Hyper-V üzerinde çalışıp çalışmadığını görmek isteyebilirsiniz. Ya da müşteriniz Hyper-V üzerinde çalışıyor ve siz hazırladığınız sunucuyu ya da appliance’ı o formata çevirmek istiyorsunuz. İşte bu makalemin konusu da bu.

Normalde bir windows sunucu kullanıyorsanız Microsoft’un Disk2VHD adlı mini yazılımı ile, işletim sistemi içinden çalıştırarak sistem diskini vhdx formatına çevirebiliyorsunuz. Ya sunucunuz linux ise? O zaman bu Disk2VHD programını kullanamayacaksınız.

Microsoft firmasının, VMware disk tipini Hyper-V üzerine ya da Azure ortamına convert etmek için yayınladığı Microsoft Virtual Machine Converter 3.0 adını verdiği bir converter programı var. Programa bu linkten ulaşabilirsiniz. Programı kurduğunuzda sanal ya da fiziksel sunucu conversion için seçenek sunuyor ve kullanımı gayet basit. Aşağıda bazı örnekler paylaşıyorum.

Sanal ve fiziksel makine conversion için verilen seçenekler değişiklik göstermekte. Yani aşağıdaki pencereden sonra gelen seçenekler her ikisi için biraz farklı. Örnek olarak virtual machine conversion seçeneğine bakalım.

Next ile devam ettiğinizde, Azure ya da Hyper-V üzerine migration için seçenekleri göreceksiniz. Eğer böyle bir işlem yapıyorsanız grafik arayüzle devam edip soldaki menü seçeneklerini sırasıyla geçerek işlemi tamamlayabiliyorsunuz.

Fakat bu işlemi yaparken migration işlemi sırasında karşıda bir Hyper-V host bulunması gerekiyor. Eğer yoksa ve siz önce local disk üzerine convert edip, daha sonra Hyper-V host üzerine alacaksanız, grafik arayüzlerden çalışarak bu işlemi yapamazsınız. Bunun için Powershell komut satırını kullanmamız gerekmekte.

Windows Powershell’i Run as Administrator ile çalıştıralım. x86 kullanmanızı öneriyorum çünkü 64 bit olanda komutlar çalışmadı nedense.

Az önce kurduğumuz converter programı içinde, powershell modüllerini import etmek için gerekli araçlar var. Aşağıdaki komut ile powershell içine bu modülleri import edelim.

PS C:\Windows\system32> Import-Module ‘C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1’

Bu import işlemi sonrası, uygulanacak komut setine ulaşmış oluyoruz. Kullanım şekli şu şekilde olacak:

PS C:\Windows\system32> ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “VMDK_Dosya_path\sunucu.vmdk” -VhdType DynamicHardDisk -VhdFormat Vhdx -DestinationLiteralPath “Hedef_lokasyon”

Bu bilgiler ışığında, benim kullanacağım komutlar, sırasıyla aşağıdaki gibi oldu.

Şanslıysanız, bu komutlardan sonra işlemleriniz disk boyutlarına göre değişecek bir sürede bitecektir. Fakat büyük bir çoğunluğunuz problem yaşayabilir ve aşağıdaki gibi bir hata çıktısıyla karşılaşabilirsiniz.

ConvertTo-MvmcVirtualHardDisk : The entry 2 is not a supported disk database entry for the descriptor.

Entry 2 değerinin desteklenmediğini kenara not edelim…

vmdk diskin, descriptor satırında küçük bir düzenleme yaparak bu problemi çözebiliyoruz. Bunun için de dsfok adlı ufak bir uygulama kullanacağız. Bu uygulamaya bu linkten ulaşabilirsiniz. Herhangi bir klasöre, sıkıştırılmış dosyayı açın. Ben C:\Temp altına açtım bu dosyayı.

Sonra komut satırında ilgili dizine geçelim ve aşağıdaki komutları uygulayalım. Komutları özetleyip, ekran görüntüsünü vereceğim.

Öncelikle, descriptor extract için aşağıdaki komutu kullanıyoruz.

dsfo.exe “Drive:\sunucu_diskpath\sunucu.vmdk” 512 1024 descriptor1.txt

Bu komut sonrası, bulunduğumuz dizinde descriptor1.txt adında bir text dosyası oluşuyor.

Bir text editor ile dosyayı açalım ve içeriğine bir bakalım.

Burada yapacağımız işlem, ddb.toolsInstallType = “2” yazan satırın en başına # işareti koymak olacak. Hani yukarıda entry 2 değerini not edelim demiştim. İşte o konu bu satırla ilgili. Sizdeki hata kodu “1” de olabilir. Yine bu satırla ilgili olmaktadır.

Kaydedip kapatıyoruz ve aşağıdaki komut ile bu descriptor dosyasını, vmdk içine yeniden entegre ediyoruz.

dsfi.exe “Drive:\sunucudiskpath\sunucu.vmdk” 512 1024 descriptor1.txt

Bu komuttan sonra yine convert komutunu uyguluyoruz.

NOT: Eğer sanal sunucunuzda 1’den daha fazla vmdk disk varsa, her disk için bu işlemleri yapmanız gerekiyor.

Artık vhdx formatındaki diskimiz hazır.

Hyper-V host üzerine bu disk dosyasını upload edip, sanal makine oluştururken de bu diski seçerek oluşturursanız, artık sunucunuz Hyper-V host üzerinde çalışabilir hale gelir.

Yararlı olması dileğiyle.

Yusuf İşleyen