遷移 VMware 虛擬機到 KVM.doc_第1頁
遷移 VMware 虛擬機到 KVM.doc_第2頁
遷移 VMware 虛擬機到 KVM.doc_第3頁
遷移 VMware 虛擬機到 KVM.doc_第4頁
遷移 VMware 虛擬機到 KVM.doc_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

簡介:目前 x86 平臺上最流行的虛擬化軟件是 VMware 公司的系列產(chǎn)品,而基于開源技術的 KVM 虛擬化軟件也得到了廣泛的應用。本文是虛擬化遷移技術系列文章的第三部分,詳細介紹了如何使用 virt-v2v 開源工具或者手動方法遷移創(chuàng)建在 VMware 軟件上的 Window 及 Linux 虛擬機到基于 KVM 的虛擬機,并且從功能上比較了虛擬機系統(tǒng)遷移前后的變化,最后總結了 VMware 虛擬機到 KVM 遷移的不足和注意事項。前言隨著虛擬化技術的不斷發(fā)展,虛擬機的應用也越來越廣泛。日常應用中可能出現(xiàn)資源不足,系統(tǒng)管理調(diào)整或者系統(tǒng)備份等原因,希望將某一虛擬機從原 來物理主機遷移到另一個物理主機上,即 V2V(Virtual-to-Virtual)遷移。虛擬機的遷移需要物理主機上 VMM(Virtual Machine Monitor)的支持。相同類型 VMM 之間,使用相同的 API 接口,通常具有強大的遷移能力。例如本系列第二篇文章介紹的 KVM 虛擬機之間的遷移,它支持三種遷移方式:離線遷移、在線共享存儲遷移和在線塊遷移。而不同的 VMM 之間,由于虛擬化實現(xiàn)技術的不同、開發(fā)廠商的不同、API 接口的不同,使虛擬機遷移困難重重。本文分別介紹如何靜態(tài)遷移 VMware ESX/ESXi、VMware Workstation 及 VMware Player 上的虛擬機到 KVM 主機。VMware 虛擬機遷移到 KVM 的方式虛擬機 V2V(Virtual-to-Virtual)遷移是在虛擬機之間移動操作系統(tǒng)和數(shù)據(jù), 照顧主機級別的差異和處理不同的虛擬硬件。V2V 的遷移方法有兩種,靜態(tài)遷移和在線遷移。靜態(tài)遷移(offline migration)也叫做常規(guī)遷移、離線遷移。在遷移之前將虛擬機暫停,同時拷貝虛擬機鏡像和狀態(tài)到目的主機。相比較于在線遷移(online migration),其缺點是靜態(tài)遷移方式的過程需要顯式的停止虛擬機的運行,而在線遷移的過程僅有非常短暫的停機時間,保證遷移過程中虛擬機服務的持 續(xù)可用;優(yōu)點是兼容性強,不需要 VMM 的有統(tǒng)一的 API 接口,可以借助第三方工具輔助遷移。由于目前 VMM 的開發(fā)沒有統(tǒng)一的標準,不同的虛擬化廠商,尤其是閉源的商業(yè)廠商開發(fā)的 VMM 各成一套,靜態(tài)遷移是解決不同類型虛擬機之間遷移的有效辦法。本文采用 V2V 靜態(tài)遷移的方法實現(xiàn) VMware 虛擬機到 KVM 的遷移,同時介紹開源遷移工具 virt-v2v 的使用。VMware 虛擬化產(chǎn)品及虛擬機文件VMware 產(chǎn)品簡介VMware 是全球虛擬化解決方案的領導廠商,提供了一套虛擬機解決方案,按產(chǎn)品特點可分為如下四類。VMware ESX/ESXi:這個產(chǎn)品不需要安裝任何操作系統(tǒng),它本身就是一個用來管理硬件資源的特殊的操作系統(tǒng),所有的虛擬機都安裝在它的上面。ESX Server 帶有遠程 web 管理和客戶端管理功能。VMware Server、Workstation 和 Fusion:與 ESX 相比,這三個產(chǎn)品都是要安裝在操作系統(tǒng)上的。Server 和 Workstation 運行在 Windows 和 Linux 上,F(xiàn)usion 運行在蘋果的 Mac OS 上。VMware VMotion:是 VMware 開發(fā)出的一項獨特技術,它將服務器、存儲和網(wǎng)絡設備完全虛擬化,使得正在運行的整個虛擬機能夠在瞬間從一臺服務器移到另一臺服務器上。Virtual Center、Importer、Convertor、P2V、Player:這些是為了配合 VMware 虛擬引擎,主要是為了配合 ESX 開發(fā)的管理軟件和工具,這些工具中很多是免費的。本文主要遷移創(chuàng)建在 VMware ESX/ESXi、VMware Workstation 和 VMware Player 上的虛擬機到 KVM 主機上,遷移后的虛擬機可以被開源的 libvirt 軟件管理。VMware 虛擬機文件介紹成功遷移虛擬機的一個重要的驗證標準就是文件的正確性和完整性。下圖中列出與 VMware 虛擬機相關的文件,但是遷移 VMware 虛擬機到 KVM 并不需要用到所有的文件。圖 1. VMware 虛擬機文件 VMware 虛擬機的文件主要包括 .nvram 文件,.vmx 文件,vmdk 文件,.vswp 文件,.vmss 文件,.vmsd 文件,.vmsn 文件,.log 文件,.vmxf 文件。與遷移相關的最主要的是 .vmx 文件和 .vmdk 文件。.vmx 文件:包括虛擬機所有配置信息與硬件設置。不管你對虛擬機的設置做了何種編輯,所有的信息都會以文本形式保存在這個文件里。如特殊硬件配置(例如 RAM 大小,網(wǎng)絡接口信息,硬盤驅(qū)動信息,串行與并行信息),高級能源與資源配置、VMware 工具選項及能源管理選項。遷移虛擬機時,需要更改這個文件的格式到 KVM 支持的 xml 文件,并且重新確認文件信息的有效性。.vmdk 文件:包含虛擬磁盤的信息。虛擬機的文件系統(tǒng)就建立在 .vmdk 文件上。遷移時需要拷貝這個文件到 KVM 主機,并且轉(zhuǎn)換成能夠被 libvirt 識別的文件格式。以下的虛擬機文件有些只在虛擬機處于的某種狀態(tài)時出現(xiàn),遷移過程中不會用到。例如當虛擬機開啟時出現(xiàn) .vswp 文件,當虛擬機暫停時出現(xiàn) .vmss 文件。.nvram 文件:包括虛擬機啟動過程一部分的 Phoenix BIOS。它類似于擁有 BIOS 芯片的物理服務器,能夠設置硬件配置選項。如果刪除的話,在虛擬機啟動時會自動地重新創(chuàng)建。.vswp file:這些文件的大小等于分配給虛擬機的內(nèi)存大小,再減去任何內(nèi)存預留(默認是 0)。這些文件通常創(chuàng)建在虛擬機里,但是只有當 ESX 主機耗盡所有物理內(nèi)存時才使用。當虛擬機關閉或暫停時,這些文件將刪除。.vmss 文件:這個文件用于虛擬機暫停時,保存虛擬機的存儲內(nèi)容,以便在重新開始時繼續(xù)運行。.vmsd 文件:這個文件與快照一起使用,用于存儲元數(shù)據(jù)和其他活動在虛擬機里的每個快照的信息。這個文本文件在創(chuàng)建快照之前的初始大小是 0 字節(jié),并在每次創(chuàng)建或刪除快照時更新信息。.vmsn 文件:這個文件與快照一起使用,用于存儲虛擬機在進行快照時的狀態(tài)。每在虛擬機上創(chuàng)建一個快照就會生成一個 .vmsn 文件,在刪除快照時,文件自動刪除。.log 文件:這些文件創(chuàng)建來用于存儲虛擬機的日志信息,并常常用于故障檢查。在虛擬機目錄里,有大量的這樣的文件。當前的日志文件通常命名為 vmware.log。.vmxf 文件:這是一個附加配置文件,不用于 ESX,用于與 Workstation 兼容的目的。這個文件是文本格式,Workstation 用來聚合虛擬機(VM teaming),將多個虛擬機分配成一組,作為一個單一對象開啟或關閉、暫停或恢復它們。virt-v2v 遷移 VMware ESX 虛擬機從 發(fā)行版中包含了 Red Hat 公司開發(fā)的 virt-v2v 工具。它是由 perl 語言編寫的腳本,可以自動化的將創(chuàng)建在 Xen,KVM 和 VMware ESX 上的虛擬機拷貝到 virt-v2v 的主機,并且自動的更改配置,使之能夠被 libvirt 進行管理。目前,virt-v2v 支持靜態(tài)遷移下列虛擬機:RHEL4、RHEL5, RHEL6,Windows XP,Windows Vista, Windows 7, Windows Server 2003 和 Windows Server 2008。圖 2. virt-v2v 遷移 VMware/Xen/KVM 虛擬機示意圖 本節(jié)中,將分別介紹如何使用 virt-v2v 工具遷移 Vmware ESXi 上的 RHEL 虛擬機和 Windows 7 虛擬機到 KVM 主機。遷移前的環(huán)境設置本文的 KVM 主機安裝最新的 RHEL6.1 操作系統(tǒng)(發(fā)布于 2011 年 5 月 19 日)。這樣,最基本的支持 KVM 虛擬機的軟件 qemu-kvm、libvirt、virt-manager 和 virt-v2v 工具都在發(fā)行版中安裝了。清單 1. 支持 KVM 虛擬機的軟件包 rootlocalhost # rpm -qa qemu-kvm qemu-kvm--2.160.el6.x86_64 rootlocalhost # rpm -qa libvirt libvirt-0.8.7-18.el6.x86_64 rootlocalhost # rpm -qa virt-manager virt-manager-0.8.6-4.el6.noarch rootlocalhost # rpm -qa virt-v2v virt-v2v-0.7.1-3.el6.x86_64 為了使 virt-v2v 工具能夠自動化的遷移 VMware ESX 虛擬機,盡量減少手動干預,還需要在 KVM 主機上做一些設置。1. 安裝支持 Windows 虛擬機遷移的軟件。對于 Windows 虛擬機的遷移需要安裝 libguestfs-winsupport 包來支持 NTFS 文件系統(tǒng)和 virtio-win 包來支持 Windows para-virtualized 存儲和網(wǎng)絡設備驅(qū)動。清單 2. 安裝 Windows 虛擬機遷移的支持包 rootvictory4 v2v# rpm -ivh libguestfs-winsupport-1.0-7.el6.x86_64.rpm virtio-win-1.2.0-1.el6.noarch.rpm Preparing. # 100% 1:virtio-win # 50% 2:libguestfs-winsupport # 100% 2. 創(chuàng)建 KVM 主機存儲域virt-v2v 在遷移虛擬機的過程中,需要拷貝被遷移虛擬機到 KVM 主機預先定義的存儲池中。存儲池可以用 libvirt 工具創(chuàng)建。最簡單的方法就是使用 virt-manager 來創(chuàng)建新的存儲池。本文中創(chuàng)建了一個文件目錄類型的存儲池,位置在 KVM 主機系統(tǒng)的 /home/images/migration 目錄。圖 3. 使用 virt-manager 創(chuàng)建本地存儲域 3. 創(chuàng)建 KVM 主機網(wǎng)絡接口虛擬機在遷移之后將連接 KVM 主機網(wǎng)絡, 因此主機必須有一個與之相匹配的網(wǎng)絡接口,比如說網(wǎng)橋。Linux 系統(tǒng)上有很多工具可以創(chuàng)建網(wǎng)橋,其中 RHEL6.1 發(fā)行版上的 virt-manager 已經(jīng)支持創(chuàng)建和管理網(wǎng)橋。本文創(chuàng)建了網(wǎng)橋 br0,并且綁定在 eth0 的接口上,具體配置如下圖。圖 4. 使用 virt-manager 創(chuàng)建網(wǎng)橋 4. 創(chuàng)建配置文件 virt-v2v.conf在 virt-v2v.conf 文件中設置 virt-v2v 遷移的規(guī)則,包括網(wǎng)絡接口遷移后的映射,遷移的方式,存儲的位置,輸出的格式等等。這些規(guī)則也能以命令行參數(shù)的方式輸入,如 - - network,-o,-os,-of 等。virt-v2v 遷移 VMware 虛擬機的步驟在 KVM 主機上完成上節(jié)的準備工作后,可以正式開始遷移 VMware ESX 上的虛擬機了。下面是遷移的具體步驟:1. 如果虛擬機上安裝了 VMware Tools,必須先卸載它。因為 KVM 的虛擬機不支持 VMware Tools 里面的虛擬驅(qū)動。2. 在 VMware ESX 上停止等待遷移的虛擬機,因為 virt-v2v 只支持靜態(tài)遷移。3. 為自動登錄 VMware ESX 服務器創(chuàng)建 .netrc 文件。VMware ESX 服務器的連接需要授權,virt-v2v 支持密碼方式的授權連接,可以從 $HOME/.netrc 文件中讀取密碼并自動登錄。如果主機系統(tǒng)沒有這個文件,就手動創(chuàng)建它。并且 .netrc 文件需要 0600 權限,使 virt-v2v 工具可以正確讀取它。清單 3. .netrc 文件的格式 machine login root password xxxxxx 4. 使用 virt-v2v 命令進行遷移。VMware ESX 服務器采用 HTTPS 連接方式,連接時需要配置 SSL 證書。本文通過添加?no_verify=1; 到 VMware 服務器的 URI 連接中,來關閉證書檢查。清單 4. virt-v2v 遷移命令及參數(shù) virt-v2v -ic esx://?no_verify=1 -os pool -bridge brname vm-name 是 ESX 服務器主機名或 IP Address pool 本地主機存儲池,用來保存鏡像 brname 本地主機網(wǎng)橋名字,用來連接遷移后的虛擬機網(wǎng)絡 vm-name 虛擬機的名字5. 遷移成功后,虛擬機出現(xiàn)在 virt-manager 管理的虛擬機列表中。通過 virt-manager 工具啟動虛擬機。6. 檢查遷移后的虛擬機的設備驅(qū)動。如果需要,重新安裝虛擬設備驅(qū)動。7. 驗證遷移后的虛擬機的配置和系統(tǒng)是否和遷移之前一致。virt-v2v 遷移實例:Linux 虛擬機 RHEL5.5本例將遷移創(chuàng)建在 VMWare ESXi 服務器上的 RHEL5.5 虛擬機到 KVM 主機上,并使遷移后的虛擬機被 libvirt 管理。本例的環(huán)境中,VMware ESXi 服務器和 KVM 主機通過網(wǎng)絡連接,虛擬機鏡像被各自的存儲管理。圖 5. virt-v2v 遷移 RHEL5 虛擬機的環(huán)境 下面就開始正式的遷移 :1. 在 VMware ESXi 上檢測 RHEL5.5 虛擬機,如果安裝了 VMware Tools,先卸載它。2. 在 VMware ESXi 上關閉 RHEL5.5 虛擬機。3. 在 KVM 主機上創(chuàng)建或修改 $HOME/.netrc 文件,添加 VMware ESXi 服務器的用戶名和密碼。清單 5. 修改 .netrc 文件 rootlocalhost home# cat /.netrc machine 13 login root password xxxxxx rootlocalhost home# chmod 0600 /.netrc 4. 開始遷移虛擬機。KVM 的存儲是遷移前準備好的存儲域 migration,文件格式采用 libvirt 支持的 qcow2,網(wǎng)絡連接方式與 VMware 虛擬機相同,采用網(wǎng)橋。清單 6. 遷移 RHEL5.5 虛擬機 rootlocalhost # virt-v2v -ic esx:/93/?no_verify=1 -os migration -of qcow2 -bridge br0 RHEL5.5 Using CPU model cpu64-rhel6 RHEL5.5_RHEL5.5: 100% =D 0h22m52s Using CPU model cpu64-rhel6 virt-v2v: RHEL5.5 configured with virtio drivers 參數(shù)說明 -os migration: 遷移虛擬機的鏡像文件到主機上的存儲池 -of qcow2: 轉(zhuǎn)換遷移后虛擬機的文件格式 -bridge br0: 設置遷移后虛擬機的網(wǎng)絡映射到網(wǎng)橋 br0 RHEL5.5: Vmware ESXi 上虛擬機的名字,遷移后保持名字一致5. 在 KVM 主機上啟動 virt-manager 軟件,就會發(fā)現(xiàn)遷移后的虛擬機已經(jīng)被 libvirt 管理了。圖 6. virt-manager 管理遷移后的 RHEL5.5 虛擬機 6. 深入比較遷移前在 VMware ESXi 上的虛擬機和遷移后在 KVM 上的虛擬機。表 1. RHEL5.5 虛擬機遷移前后在 VMware ESXi 和 KVM 上的比較 RHEL5.5VMware ESXiKVM/Libvirt結論CPUsIntel Xeon 5160 x2QEMU vCPU (cpu64-rhel6)數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化Memory1384M1384M數(shù)量一致Hard Disk18GB,LSI Logic SCSIVMDK18GBvirtio SCSIqcow2大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型CDROMIDEIDE類型一致Network AdaptorMAC 00:0c:29:a9:7b:83Type: e1000vSwitch0DHCPMAC 00:0c:29:a9:7b:83Type: virtiobridge br0DHCPMac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型Video CardVmware SVGA4M Video RAMModel: Cirrus9M RAM轉(zhuǎn)換為 libvirt 支持的類型系統(tǒng)用戶root/admin001root/admin001一致磁盤分區(qū)VolGroup00/dev/sdaVolGroup00/dev/vda邏輯卷一致,物理盤符有變化。從表中的比較看出,RHEL5.5 從 VMware ESXi 服務器遷移到 KVM 主機上后,由于 Hypervisor 的不同,硬件發(fā)生了很大的變化。但是 virt-v2v 工具很好的解決的這個問題,使用 virtio 虛擬設備驅(qū)動使 RHEL5.5 系統(tǒng)遷移后能夠流暢的運行。除了 RHEL5,virt-v2v 還支持 RHEL4 及 RHEL6 版本的遷移。virt-v2v 遷移實例:Windows 虛擬機 WinXP,Win7本例中將介紹如何使用 virt-v2v 工具遷移創(chuàng)建在 VMware ESXi 上的 Windows 虛擬機,包括 Windows XP SP3 32bit 中文版和 Windows 7 Professional 32bit 中文版。本節(jié)的環(huán)境中,KVM 主機上安裝了 virt-v2v 及相應的支持包 libguestfs-winsupport 和 virtio-win。VMware ESXi 服務器和 KVM 主機通過網(wǎng)絡連接,虛擬機鏡像被各自的存儲管理。圖 7. virt-v2v 遷移 Windows 虛擬機的環(huán)境 下面是正式的遷移步驟:1. 在 VMware ESXi 上檢測 WinXP 和 Win7 虛擬機,如果安裝了 VMware Tools,先卸載它。2. 在 VMware ESXi 上關閉 WinXP 和 Win7 虛擬機。3. 在 KVM 主機上創(chuàng)建或修改 $HOME/.netrc 文件,添加 VMware ESXi 服務器的用戶名和密碼。4. 開始遷移虛擬機。KVM 的存儲是遷移前準備好的存儲域 migration,文件格式采用 libvirt 支持的 qcow2,網(wǎng)絡連接方式與 VMware 虛擬機相同,采用網(wǎng)橋。清單 7. 遷移 WinXP 虛擬機 rootlocalhost # virt-v2v -ic esx:/93/?no_verify=1 -os migration -of qcow2 -bridge br0 WinXP Using CPU model cpu64-rhel6 WinXP_WinXP: 100% =D 0h11m13s Using CPU model cpu64-rhel6 virt-v2v: WARNING: There is no virtio net driver available in the directory specified for this version of Windows. The guest will be configured with a rtl8139 network adapter, but no driver will be installed for it. If the rtl8139 driver is not already installed in the guest, you must install it manually after conversion. virt-v2v: WinXP configured with virtio storage only. 清單 8. 遷移 Win7 虛擬機 rootlocalhost # virt-v2v -ic esx:/93/?no_verify=1 -os migration -of qcow2 -bridge br0 Win7 Using CPU model cpu64-rhel6 Win7_Win7: 100% = = =D 0h35m41s Using CPU model cpu64-rhel6 virt-v2v: Win7 configured with virtio drivers rootlocalhost # 5. 遷移完成后,在 KVM 主機上啟動 virt-manager 軟件,會發(fā)現(xiàn)遷移后的 Windows 虛擬機已經(jīng)被 libvirt 管理了。6. 在 KVM 上啟動虛擬機后,由于更新了一些虛擬硬件設備,可能需要重新安裝驅(qū)動程序和重啟系統(tǒng)。7. 深入比較遷移前在 VMware ESXi 上的虛擬機和遷移后在 KVM 上的虛擬機,表 2. WinXP 虛擬機遷移前后在 VMware ESXi 和 KVM 上的比較 WinXPVMware ESXiKVM/Libvirt結論CPUsIntel Xeon 5160Intel Pentium II 處理器數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化Memory1256M1256M數(shù)量一致Hard Disk8GB,Vmware Virtual IDEVMDK8GBVirtio SCSIqcow2大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型CDROMVMware IDEIDE類型一致Network AdaptorMAC 00:0c:29:83:86:d7Type: PCNETvSwitch0DHCPMAC 00:0c:29:83:86:d7Type: rtl8139bridge br0DHCPMac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型Video CardVmware SVGA4M Video RAMModel: Cirrus9M RAM轉(zhuǎn)換為 libvirt 支持的類型系統(tǒng)Administrator/admin001Administrator/admin001一致磁盤分區(qū)C:D:C:D:一致表 3. Win7 虛擬機遷移前后在 VMware ESXi 和 KVM 上的比較 Win7VMware ESXiKVM/Libvirt結論CPUsIntel Xeon 5160 x 2X86 family 6 x 2數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化Memory1024M1024M數(shù)量一致Hard Disk24GB,LSI Logic SCSIVMDK24GBVirtio SCSIqcow2大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型CDROMVMware IDEIDE類型一致Network AdaptorMAC 00:0c:29:64:de:6aType: e1000vSwitch0DHCPMAC 00:0c:29:64:de:6aType: virtiobridge br0DHCPMac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型Video CardVmware SVGA8M Video RAMModel: Cirrus9M RAM轉(zhuǎn)換為 libvirt 支持的類型系統(tǒng)Administrator/admin001Administrator/admin001一致磁盤分區(qū)C:D:C:D:一致從表中的比較看出,Windows 虛擬機從 VMware ESXi 服務器遷移到 KVM 主機上后,由于 Hypervisor 的不同,硬件發(fā)生了很大的變化。Virt-v2v 工具盡量在 KVM 虛擬機上使用 Virtio 虛擬設備加速系統(tǒng)的 IO 設備。WinXP 虛擬機的遷移后,使用了磁盤的 virtio 驅(qū)動而網(wǎng)絡設備使用默認的 rtl8139。 Win7 虛擬機的遷移后磁盤和網(wǎng)絡全部使用 virtio 的驅(qū)動。Virt-v2v 還支 Windows Vista,Win2003,Win2008 虛擬機從 VMware ESX/ESXi 上的遷移,步驟和 WinXP,Win7 虛擬機類似。virt-v2v 遷移小結virt-v2v 工具自動化的解決了 VMware ESX/ESXi 服務器上的 RHEL 虛擬機和 Windows 虛擬機遷移到 KVM 主機的問題。而且在遷移的過程中盡量的使用 virtio 驅(qū)動提高 IO 設備的性能。但是,virt-2v2 工具也有一些局限性。比如只支持虛擬機關機情況下的靜態(tài)遷移;只支持 RHEL 虛擬機和 Windows 虛擬機的遷移;不支持 VMware 虛擬機快照的遷移。對于創(chuàng)建在 VMware Workstation/Player 上的虛擬機,目前 virt-v2v 還不支持自動遷移。但是我們可以用手動遷移的方法完成到 KVM 主機的遷移。請看下節(jié):手動遷移 VMware Workstation/Player 上的虛擬機到 KVM 。手動遷移 VMware Workstation/Player 上的虛擬機到 KVM從物理機的文件系統(tǒng)看,VMware 虛擬機是由一組文件組成。這些文件可能集中存儲在存儲服務器上,如 VMware ESX/ESXi,也可能存儲在本地,如 VMware Workstation/Player。關閉虛擬機的情況下,這些文件內(nèi)容不會改變。所以我們可以用手動遷移的方法,拷貝這些文件到 KVM 主機并且轉(zhuǎn)換這些文件的格式或內(nèi)容,使 libvirt 能夠管理和識別。這樣就完成了 VMware 虛擬機的手動遷移。手動遷移的準備工作在 VMware 虛擬機眾多的文件中,最重要的是虛擬機鏡像文件 .vmdk 和系統(tǒng)配置文件 .xml。所以手動遷移就是要分別處理這兩種文件。合并分散的 vmdk 鏡像文件。在 VMware Workstation 上創(chuàng)建虛擬機的時候,可以選擇存儲虛擬磁盤為一個文件或多個文件。但是 libvirt 不能管理多個文件組成的磁盤鏡像,所以需要在遷移前合并這些文件為一個單獨的文件。VMware Workstation 自帶了離線的磁盤管理工具 vmware-vdiskmanager.exe 來合并 vmdk 文件。圖 8. 多個文件存儲的 VMware 虛擬機 qemu-img 轉(zhuǎn)換 vmdk 的文件格式。KVM 主機上安裝 qemu-img 包,可以察看并轉(zhuǎn)換 vmdk 文件到 raw/qcow2 文件格式。創(chuàng)建 xml 文件。VMware 的系統(tǒng)配置文件是 vmx,必須轉(zhuǎn)換成 libvirt 能夠識別的 xml 格式。一種方法是根據(jù) VMware 虛擬機的硬件信息,手動創(chuàng)建一個新的 xml 文件;另一種方法是利用工具輔助轉(zhuǎn)換 vmx 文件。比如 virt-goodies/vmware2libvirt 工具,可以從下面 link 下載安裝 virt-goodies:/ubuntu/+source/virt-goodies/0.4下面我們以 VMware Workstations 上的 SUSE Linux Enterprise Server 11 SP1 虛擬機和 VMware Player 上的 Windows 2008 R2 虛擬機為例,詳細介紹遷移到 KVM 主機的步驟。手動遷移 VMware Workstation 上的 SLES11SP1 虛擬機VMware Workstation 軟件安裝在一個 Windows XP 系統(tǒng)上,然后創(chuàng)建 SLES11SP1 虛擬機。虛擬機的文件都存儲在本地。KVM 主機通過網(wǎng)絡連接到 Window XP 系統(tǒng)。圖 9. 手動遷移 SLES11SP1 虛擬機的環(huán)境 遷移的過程如下:1. 登錄宿主機 Windows XP 系統(tǒng),在 VMware Workstation 上檢查 SLES11SP1 虛擬機,如果安裝了 VMware Tools,以 root 用戶運行 vmware-uninstall-tools.pl 卸載它。2. 關閉 SLES11SP1 虛擬機。3. 檢查虛擬機的鏡像文件。本例中,虛擬機的鏡像存儲在多個 vmdk 文件中,所以需要在遷移前合并他們。圖 10. 用 vmware-vdiskmanager.exe 合并多個 vmdk 文件 4. 拷貝合并后的 vmdk 文件到 KVM 主機上。本例中,拷貝文件 SLES11SP1-single.vmdk 到 KVM 主機的 /home/images/migration 目錄下。并且使用 qemu-img 工具將 vmdk 文件轉(zhuǎn)換成 qcow2 格式的文件??梢钥闯?,轉(zhuǎn)換后鏡像文件 SLES11SP1-single.img 的實際大小 3.9G 和最大范圍 20G 沒有改變,僅僅是文件系統(tǒng)類型變化了。清單 9. 轉(zhuǎn)換 vmdk 文件到 qcow2 格式 rootlocalhost migration# qemu-img info SLES11SP1-single.vmdk image: SLES11SP1-single.vmdk file format: vmdk virtual size: 20G (21474836480 bytes) disk size: 3.9G rootlocalhost migration# qemu-img convert -f vmdk -O qcow2 SLES11SP1-single.vmdk SLES11SP1-single.img rootlocalhost migration# qemu-img info SLES11SP1-single.img image: SLES11SP1-single.img file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 3.9G cluster_size: 65536 5. 轉(zhuǎn)換 vmx 文件。本例介紹第一種方法,即手動創(chuàng)建 vmx 文件。首先要找出 SLES11SP1 虛擬機全部虛擬設備信息,這些信息可以從 VMware Workstation 的管理界面和虛擬機系統(tǒng)的系統(tǒng)信息獲得;然后在 KVM 主機上的 virt-manager 中,以第 4 步轉(zhuǎn)換完成的鏡像文件 SLES11SP1-single.img 為基礎創(chuàng)建一個虛擬機;最后添加與 VMware 相同或類似的硬件,并且盡量保證數(shù)量、類型和配置的一致,包括 CPU 和 MEM 數(shù)量、系統(tǒng)構架、網(wǎng)絡類型、MAC 地址等。圖 11. VMware Workstation 上查看虛擬機的硬件信息 圖 12. 手動配置 KVM 虛擬機 6. 設置完成后,自動創(chuàng)建 KVM 虛擬機的配置文件 /etc/libvirt/qemu/SLES11SP1.xml,并且 virt-manager 可以管理這個 SLES 虛擬機了。在 libvirt 上啟動虛擬機,手動配置虛擬機系統(tǒng)以適應新的硬件。7. 深入比較遷移前在 VMware Workstation 上的虛擬機和遷移后在 KVM 上的虛擬機。表 4. SLES11SP1 虛擬機遷移前后在 VMware Workstation 和 KVM 上的比較 SLES11SP1VMware WorkstationKVM/Libvirt結論CPUsIntel Core2 x 2QEMU vCPU x 2數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化Memory768M768M數(shù)量一致Hard Disk20GBLSI Logic SCSIVMDK20GBIDEqcow2大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型CDROMIDEIDE類型一致Floppy類型一致USB ControllerUSB 2.0Physical USB devicelibvirt 對 USB 的支持較弱Network AdaptorMAC 00:0c:29:68:16:33Type: PCNetNATVirtual DHCPMAC 00:0c:29:a9:7b:83Type: VirtioNATVirtual DHCPMac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型Video CardVmware SVGAModel: Cirrus9M RAM轉(zhuǎn)換為 libvirt 支持的類型Audio deviceES1371ES1370轉(zhuǎn)換為 libvirt 支持的類型系統(tǒng)用戶root/admin001root/admin001一致磁盤分區(qū)/dev/sda1/dev/sda2/dev/sda1/dev/sda2物理盤符及系統(tǒng)分區(qū)一致和使用 virt-v2v 自動化遷移工具相比,手動遷移增加了很多工作和不確定性。在本系列文章第一篇列舉了”Linux 系統(tǒng)在虛擬機遷移中的技術難點”,此處正好驗證了手動遷移中需要注意的問題。比如在本例中,有以下兩個問題:如何選擇磁盤總線類型。virt-v2v 工具自動選擇 virtio 磁盤驅(qū)動來提高 KVM 虛擬機的性能,但是在本例中,SLES 虛擬機不能直接使用 virtio 磁盤驅(qū)動。因為 SLES 系統(tǒng)的磁盤分區(qū)名在 /etc/fstab 被硬編碼為 /dev/sda,而 virtio 磁盤分區(qū)名為 /dev/vda,直接使用 virtio 磁盤驅(qū)動會導致系統(tǒng)找不到分區(qū)而無法啟動的錯誤。所以本例為 KVM 虛擬機選擇了性能較差的 IDE 磁盤類型。Xwindow 需要重新配置。SLES 虛擬機不能自動處理顯示設備的變化,所以需要手動運行 SaX2 重新配置 Xwindow 并重新啟動 gdm。實際上,手動把 SLES 虛擬機里面關于磁盤分區(qū)的硬編碼全部改成 UUID 后,就可以使用高性能的 virtio 磁盤驅(qū)動。具體操作方法將在本系列文章的第五部分介紹。手動遷移 VMware Player 上的 Win2008R2 虛擬機VMware Player 軟件安裝在 Linux 系統(tǒng)上,然后創(chuàng)建了 Windows 2008 R2 虛擬機。虛擬機的文件都存儲在本地。KVM 主機通過網(wǎng)絡連接到 VMware Player 的主機系統(tǒng)。圖 13. 手動遷移 Win2008R2 虛擬機的環(huán)境設置 遷移的過程如下:1. 登錄宿主機 Linux 系統(tǒng),在 VMware Player 上檢查 Win2008R2 虛擬機,如果安裝了 VMware Tools,必須先卸載它。2. 關閉 Win2008R2 虛擬機,因為手動遷移必須保持虛擬機文件的一致性。3. 檢查虛擬機的鏡像文件。如果虛擬機的鏡像存儲在多個 vmdk 文件中,需要在遷移前合并。本例的 VMware 虛擬機存儲在單獨的 vmdk 文件中,所以略過此步。4. 拷貝 vmdk 文件到 KVM 主機上。本例中,拷貝 Win2008R2.vmdk 文件到 KVM 主機的 /home/images/migration 目錄下。并且使用 qemu-img 工具將 vmdk 文件轉(zhuǎn)換成 qcow2 格式的文件??梢钥闯?,轉(zhuǎn)換后鏡像文件 Win2008R2.img 的實際大小 6.4G 和最大范圍 20G 沒有改變,僅僅是文件系統(tǒng)類型變化了。清單 10. 轉(zhuǎn)換 vmdk 文件到 qcow2 格式 rootlocalhost migration# qemu-img info Win2008R2.vmdk image: Win2008R2.vmdk file format: vmdk virtual size: 20G (21474836480 bytes) disk size: 6.4G rootlocalhost migration# qemu-img convert -f vmdk -O qcow2 Win2008R2.vmdk Win2008R2.img rootlocalhost migration# qemu-img info Win2008R2.img image: Win2008R2.img file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 6.4G cluster_size: 65536 5. 轉(zhuǎn)換 vmx 文件。virt-goodies/vmware2libvirt 腳本是用來做 vmx 到 xml 轉(zhuǎn)換的簡單工具。但是由于它很長時間沒有升級,而且不同的 Linux 發(fā)行版對 KVM/libvirt 安裝方式不同,vmware2libvirt 工具轉(zhuǎn)換后的 xml 文件需要手動更改或添加某些配置。注意不同 Linux 發(fā)行版 qemu-kvm 的路徑不同,RHEL6.1 下是 /usr/libexec/qemu-kvm。把虛擬機的鏡像文件路徑及名字改成 /home/images/migration/Win2008R2.img。vmware2libvirt 只轉(zhuǎn)換第一塊網(wǎng)卡,如果有多塊網(wǎng)卡需要手動添加。vmware2libvirt 不轉(zhuǎn)換 CDROM、Floppy、USB 和顯示設備,需要手動為 KVM 虛擬機添加。磁盤和網(wǎng)卡采用默認的驅(qū)動程序,因為 Windows 系統(tǒng)沒有預裝 virtio 驅(qū)動。清單 11. vmware2libvirt 轉(zhuǎn)換 vmx 文件 rootlocalhost migration# /home/vmware2libvirt -f Win2008R2.vmx /etc/libvirt/qemu/Win2008R2.xml 添加 Win2008R2 到 virt-manager rootlocalhost migration# virsh -c qemu:/system define /etc/libvirt/qemu/Win2008R2.xml Domain Win2008R2 defined from /etc/libvirt/qemu/Win2008R2.xml 6. 在 virt-manager 中啟動 Win2008R2 虛擬機,手動添加缺少的硬件。圖 14. KVM 上 Win2008R2 虛擬機的配置 7. 啟動虛擬機,檢查系統(tǒng)狀態(tài)。表 5. Win2008R2 虛擬機遷移前后在 VMware Player 和 KVM 上的比較 Win2008R2VMware PlayerKVM/Libvirt結論CPUsI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論