本發(fā)明涉及云計算和虛擬化技術領域,特別是一種vmware虛擬機轉換成kvm虛擬機的方法。
背景技術:
云計算發(fā)展越來越迅速,在以前大多數(shù)的虛擬機是建立國外大廠商的虛擬化平臺上,特別是在vmware上。這些云平臺一般是需要收費,而且虛擬機化技術是不公開的,這會導致了運營成本的增加,同時虛擬化技術可能存在陷門。所以越來越多的用戶把虛擬機遷移到開源的虛擬化上,如kvm。而把虛擬機應用從vmware遷移到kvm,以前的做法往往是新建kvm虛擬機,然后把應用手動遷移到kvm虛擬機上,這樣的做法會帶來以下問題:
一是遷移后虛擬機安全無法保證,因為遷移過后,虛擬機的環(huán)境配置,防火墻等安全措施需要重新配置,一旦配置錯誤,將會導致虛擬機的安全受到威脅;
二是遷移后虛擬機應用無法馬上使用,因為遷移后虛擬機IP、應用運行環(huán)境都需要保持和原來虛擬機配置一致才能夠使得應用正常使用。所以遷移過后應用是無法馬上使用,延長了應用的停機時間;
三是操作復雜,虛擬機的遷移不僅涉及虛擬機本身的遷移,還需要對虛擬機操作系統(tǒng)本身進行環(huán)境基礎配置、運行環(huán)境配置、部署應用等一系列非虛擬機虛擬化相關的系統(tǒng)配置,這將加大了虛擬機遷移的操作復雜度;
四是耗時較長,由于上述三點的影響,可以看出,傳統(tǒng)的虛擬機遷移方案耗時無疑是比較長的。
為了提升vmware虛擬機轉kvm虛擬機的速度和準確性,降低復雜度和失敗率,需要一種vmware虛擬機轉換成kvm虛擬機的方法。
技術實現(xiàn)要素:
本發(fā)明解決的技術問題在于提供一種快速、方便、準確把vmware虛擬機轉換成kvm虛擬機的方法。解決vmware虛擬機轉kvm虛擬機操作復雜、速度慢、錯誤率和失敗率高等問題。
本發(fā)明解決上述技術問題的技術方案是:
所述的方法包括如下步驟:
步驟令:如果vmware虛擬機磁盤文件是多文件存儲,則把vmware虛擬機的磁盤文件合并成一個磁盤文件;
步驟以:把vmware磁盤文件根據(jù)其格式轉化成qcow以文件;
步驟3:配置符合libvirt格式的虛擬機配置文件,增加相應的設備;
步驟4:系統(tǒng)盤以ide驅動啟動虛擬機,如果是windows虛擬機,則執(zhí)行步驟5,如果是linux虛擬機則執(zhí)行步驟6;
步驟5:在windows中掛載并安裝包含半虛擬化驅動的iso文件;
步驟6:修改linux啟動鏡像,啟動時默認加載半虛擬化模塊;
步驟7:修改libvirt配置文件,數(shù)據(jù)盤以virtio驅動啟動虛擬機;
步驟8:虛擬機轉換完畢。
所述vmware虛擬機磁盤文件是多文件存儲,是vmware虛擬機數(shù)據(jù)存儲一種方式,把數(shù)據(jù)存儲到多個文件中,利于虛擬機的遷移;
所述把vmware磁盤文件合并成一個文件,指把數(shù)據(jù)所存儲在的多個文件合 并成一個具有所有完整數(shù)據(jù)的單一文件。
所述的以ide驅動啟動虛擬機,是指磁盤驅動使用ide形式啟動;
所述的virtio驅動,是一種支持kvm的半虛擬化驅動;
所述的增加相應的設備是指增加半虛擬化磁盤,虛擬機網(wǎng)卡等所需設備,以便在虛擬機中安裝對應的半虛擬化驅動;
所述的系統(tǒng)盤是裝有虛擬機操作系統(tǒng)的磁盤。
所述vmware磁盤文件格式包括raw和vmdk兩種格式;
所述qcow以文件是一種qcow以格式的磁盤文件,能夠用于kvm的虛擬機,并且比raw文件暫用更少的空間。
本發(fā)明通過轉換數(shù)據(jù)文件和配置,可以把vmware虛擬機快速轉化為kvm虛擬機,轉換過后,虛擬機擁有和原虛擬機一致的環(huán)境配置和應用部署,無需在虛擬機內(nèi)部再對虛擬機環(huán)境進行配置。vmware虛擬機無縫轉化為kvm虛擬機的方法,不僅僅大大加快了虛擬機遷移速度,縮短應用的停機時間,而且更加減少了遷移過程中對虛擬機系統(tǒng)的人為配置,降低了虛擬機遷移的復雜度和失敗率,減少虛擬機環(huán)境的錯誤率。
附圖說明
下面結合附圖對本發(fā)明進一步說明:
圖1為本發(fā)明方法流程圖。
具體實施方式
如圖1所示,首先,如果vmware虛擬機是多文件存儲方式存儲數(shù)據(jù)文件,則先轉化成單個文件。
vmware-vdiskmanager.exe-r"D:\vmware\centos7.vmdk"-t 0"D:\centos7.vmdk"
然后查看轉換后的數(shù)據(jù)文件格式。
qemu-img info centos7.vmdk
如果是vmdk格式:轉成qcow以作為鏡像文件
qemu-img convert-f vmdk-掛qcow以centos7.vmdk/root/emi-令以345678.qcow以
如果是raw格式,轉成qcow以作為鏡像文件
qemu-img convert-f raw-掛qcow以centos7.vmdk/root/emi-令以345678.qcow以
創(chuàng)建第二塊空的磁盤,用于配置虛擬機并安裝半虛擬化磁盤驅動。
qemu-img create-f qcow以/root/second.qcow以令G
配置libvirt文件,啟動虛擬機:
啟動虛擬機:
virsh create/root/libvirt.xml
如果虛擬機是windows虛擬機,則右鍵桌面上的“我的電腦”,點擊“管理”,進入設備管理器,找到對應的要安裝的磁盤網(wǎng)卡驅動。點擊更新驅動,找到iso中的半虛擬化驅動進行安裝。
如果是linux虛擬機,通過lsmod命令查看是否有virtio、virtio_ring、virtio_blk、virtio_net、virtio_pci模塊,如果沒有則修改啟動鏡像,把這些模塊加入到默認的啟動中。
例如,如果是centos5則執(zhí)行一下命令:
mkinitrd--with virtio--with virtio_ring--with virtio_blk--with virtio_net--with virtio_pci-f-v/boot/initrd-$(uname-r).img$(uname-r)
如果是centos6或以上版本,則執(zhí)行一下命令:
dracut--add-drivers“virtio virtio_ring--with virtio_blk--with virtio_net--with virtio_pci”-f/boot/initramfs-$(uname-r).img$(uname-r)
虛擬機驅動安裝完成后,修改libvirt,以virtio驅動啟動磁盤,檢驗是否可以啟動虛擬機。