ponedeljek, 14. december 2009

Prenos iz VMware v KVM (Linux Kernel-based Virtual Machine)

VMware server je problematična zadeva zadnje čase. Različica 2.x ima grozno konzolo, 1.x pa ne dela več na novejših distribucijah Linuxa, kjer zadnje čase domuje hitrejša stvar z imenom KVM. Če torej že uporabljate KVM, ni boljšega. Se pa včasih pojavi potreba, da bi navidezni stroj narejen za VMware pognali v KVM.

Na kratko: KVM lahko uporablja datoteke z VMware diski, če so ti »preallocated«, se pravi, da zasedajo toliko prostora, kolikor je velik navidezen disk. Če imamo drugačne, ali pa razdeljene na kose, bo potrebno nekaj igranja.

Receptov je več, najbolje pa deluje naslednji:
Recimo, da imamo VMware navidezni stroj z imenom Zimbra v katerem je nameščen RHEL5. Ta ima dva diska (12GB in 20GB), ki sta razdeljena po večih datotekah. Vsebina direktorija je takšna:
$ ls
nvram opt-zimbra-s009.vmdk Zimbra-Training-VM-s004.vmdk
opt-zimbra-s001.vmdk opt-zimbra-s010.vmdk Zimbra-Training-VM-s005.vmdk
opt-zimbra-s002.vmdk opt-zimbra-s011.vmdk Zimbra-Training-VM-s006.vmdk
opt-zimbra-s003.vmdk opt-zimbra.vmdk Zimbra-Training-VM-s007.vmdk
opt-zimbra-s004.vmdk vmware-0.log Zimbra-Training-VM-s008.vmdk
opt-zimbra-s005.vmdk vmware.log Zimbra-Training-VM.vmdk
opt-zimbra-s006.vmdk Zimbra-Training-VM-s001.vmdk Zimbra-Training-VM.vmsd
opt-zimbra-s007.vmdk Zimbra-Training-VM-s002.vmdk Zimbra-Training-VM.vmx
opt-zimbra-s008.vmdk Zimbra-Training-VM-s003.vmdk


Naredimo direktorij haha in vanj postavimo ustrezne (vnaprej alocirane, nerazdeljene) VMware diske
$ mkdir haha
$ vmware-vdiskmanager -r Zimbra-Training-VM.vmdk -t 2 haha/Zimbra.vmdk
$ vmware-vdiskmanager -r opt-zimbra.vmdk -t 2 haha/Zimbra-opt.vmdk


V haha direktoriju imamo tako štiri nove datoteke:
$ ls haha/
Zimbra.vmdk Zimbra-flat.vmdk Zimbra-opt.vmdk Zimbra-opt-flat.vmdk


Te diske bi že lahko uporabili direktno v KVM, vendar zasedajo ogromno prostora, čeprav so skoraj prazni. Zato jih je dobro še pretvorit v format (qcow2), ki ga KVM bolje pozna in podpira kompresijo, zaseda samo toliko prostora, kot je potrebno in omogoča »snapshot«.

$ qemu-img convert -c -O qcow2 haha/Zimbra-flat.vmdk /var/lib/libvirt/images/Zimbra.img
$ qemu-img convert -c -O qcow2 haha/Zimbra-opt-flat.vmdk /var/lib/libvirt/images/Zimbra-opt.img


To je to. Sledi konfiguracija novega navideznega stroja z virt-manager, kjer enostavno dodamo dva diska (Zimbra.img in Zimbra-opt.img). Po zagonu se bo v navideznem stroju pojavila nova omrežna kartica in pa nova grafična kartica, ki jo je potrebno nastaviti s system-config-display. Odstranimo še VMware orodja in ponovno zaženemo navidezen stroj.
# vmware-uninstall-tools.pl
# reboot


Še par nasvetov:

V /boot/grub/grub.conf odstranite/zakomentirajte vrstico, ki se začne s splashimage.
Odstranite rhgb parameter za jedro in dodajte nov parameter clock=pit.

PS. Tole zgoraj je daleč od hitre nastavitve KVM navideznega stroja.

1 komentar:

der_Alte pravi ...

Z novejšimi verzijami (beri 0.11.x ali višje) qemu-img je mogoča pretvorba tudi ne prealociranih VMware diskov. Tako, da ni potrebe po tolikšnem prostoru.