1. 程式人生 > >遷移VMWare虛擬機器到KVM

遷移VMWare虛擬機器到KVM


遷移VMWare虛擬機器到KVM

一、手動遷移 VMwareWorkstation/Player 上的虛擬機器到 KVM

    從物理機的檔案系統看,VMware虛擬機器是由一組檔案組成。這些檔案可能集中儲存在儲存伺服器上,如 VMware ESX/ESXi,也可能儲存在本地,如 VMware Workstation/Player。關閉虛擬機器的情況下,這些檔案內容不會改變。所以我們可以用手動遷移的方法,拷貝這些檔案到 KVM 主機並且轉換這些檔案的格式或內容,使 libvirt 能夠管理和識別。這樣就完成了 VMware 虛擬機器的手動遷移。

1.1、遷移步驟

   在 VMware 虛擬機器眾多的檔案中,最重要的是虛擬機器映象檔案 .vmdk 和系統配置檔案 .vmx。所以手動遷移就是要分別處理這兩種檔案。需要將VMware虛擬機器映象檔案 .vmdk 和系統配置檔案 .vmx轉化為KVM虛擬機器映象檔案 .img和系統配置檔案 .xml。

  • 合併分散的 vmdk 映象檔案。在 VMware Workstation 上建立虛擬機器的時候,可以選擇儲存虛擬磁碟為一個檔案或多個檔案。但是 libvirt 不能管理多個檔案組成的磁碟映象,所以需要在遷移前合併這些檔案為一個單獨的檔案。VMware Workstation 自帶了離線的磁碟管理工具 vmware-vdiskmanager.exe 來合併 vmdk 檔案
  • qemu-img 轉換 vmdk 的檔案格式。KVM 主機上安裝 qemu-img 包,可以察看並轉換 vmdk 檔案到 raw/qcow2 檔案格式。
  • 建立 xml 檔案。VMware 的系統配置檔案是 vmx,必須轉換成 libvirt 能夠識別的 xml 格式。一種方法是根據 VMware 虛擬機器的硬體資訊,手動建立一個新的 xml 檔案;另一種方法是利用工具輔助轉換 vmx 檔案。比如 virt-goodies/vmware2libvirt 工具,可以從下面 link 下載安裝 virt-goodies:https://launchpad.net/ubuntu/+source/virt-goodies/0.4

1.2、詳細的遷移步驟

1. 登入宿主機 Windows XP 系統,在 VMware Workstation 上檢查 SLES11SP1 虛擬機器,如果安裝了 VMware Tools,以 root 使用者執行vmware-uninstall-tools.pl 解除安裝它。

        

2. 關閉該虛擬機器。

3. 檢查虛擬機器的映象檔案。本例中,虛擬機器的映象儲存在多個 vmdk 檔案中,所以需要在遷移前合併他們。用 vmware-vdiskmanager.exe 合併多個 vmdk 檔案。

   DOS命令終端執行可執行檔案E:\Program Files\VMwareWorkstation>vmware-vdiskmanager.exe,其中E:\ProgramFiles\VMware Workstation為VM的安裝路徑。

       

vmware-vdiskmanager.exe -r “D:\VM\OVS2\Ubuntu H 64位.vmdk” -t 0 “D:\VM\OVS2\ubuntu-single.vmdk”

4、生成KVM虛擬機器映象

sudo qemu-img convert -f vmdk -O qcow2 ubuntu-single.vmdk ubuntu-single.img
      
5、生成KVM虛擬機器xml檔案

   需要使用virt-goodies/vmware2libvirt工具可以從下面 link下載安裝 virt-goodieshttps://launchpad.net/ubuntu/+source/virt-goodies/0.4

./vmware2libvirt -f /home/minelab/www1234/Ubuntu.vmx > /home/minelab/www1234/Ubuntu.xml

  轉換 vmx 檔案。virt-goodies/vmware2libvirt指令碼是用來做 vmx 到 xml 轉換的簡單工具。但是由於它很長時間沒有升級,而且不同的 Linux 發行版對 KVM/libvirt 安裝方式不同,vmware2libvirt 工具轉換後的 xml 檔案需要手動更改或新增某些配置。

  注意不同 Linux 發行版 qemu-kvm 的路徑不同,RHEL6.1 下是 /usr/libexec/qemu-kvm。

  把虛擬機器的映象檔案路徑及名字改成 /home/images/migration/Ubuntu.img。

  vmware2libvirt 只轉換第一塊網絡卡,如果有多塊網絡卡需要手動新增。

  vmware2libvirt 不轉換 CDROM、Floppy、USB 和顯示裝置,需要手動為 KVM 虛擬機器新增。

  磁碟和網絡卡採用預設的驅動程式,因為 Windows 系統沒有預裝 virtio 驅動

6、開啟KVM管理器,修改配置

sudo virsh define Ubuntu.xml
   

Storage format需要改為qcow2

7、開啟虛擬機器

      

參考文獻:http://www.net130.com/cms/pub/special/special_virtual/special_virtual_fa/2011_11_14_30322_4.htm