开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開(kāi)APP
          userphoto
          未登錄

          開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開(kāi)通VIP
          遷移 VMware 虛擬機(jī)到 KVM

          遷移 VMware 虛擬機(jī)到 KVM

          如何遷移 VMware 上的 Windows 及 Linux 虛擬機(jī)到基于 KVM 的虛擬機(jī)

          郭 晉兵, 高級(jí)軟件工程師, IBM
          吳 超鳳, 軟件工程師, IBM
          叢 彬彬, 高級(jí)軟件工程師, IBM

          簡(jiǎn)介: 目前 x86 平臺(tái)上最流行的虛擬化軟件是 VMware 公司的系列產(chǎn)品,而基于開(kāi)源技術(shù)的 KVM 虛擬化軟件也得到了廣泛的應(yīng)用。本文是虛擬化遷移技術(shù)系列文章的第三部分,詳細(xì)介紹了如何使用 virt-v2v 開(kāi)源工具或者手動(dòng)方法遷移創(chuàng)建在 VMware 軟件上的 Window 及 Linux 虛擬機(jī)到基于 KVM 的虛擬機(jī),并且從功能上比較了虛擬機(jī)系統(tǒng)遷移前后的變化,最后總結(jié)了 VMware 虛擬機(jī)到 KVM 遷移的不足和注意事項(xiàng)。

          本文的標(biāo)簽:  kvm, v2v, vmware

          發(fā)布日期: 2011 年 11 月 02 日
          級(jí)別: 初級(jí)
          訪問(wèn)情況 : 4449 次瀏覽
          評(píng)論: 0 (查看 | 添加評(píng)論 - 登錄)

          平均分 (15個(gè)評(píng)分)
          為本文評(píng)分

          前言

          隨著虛擬化技術(shù)的不斷發(fā)展,虛擬機(jī)的應(yīng)用也越來(lái)越廣泛。日常應(yīng)用中可能出現(xiàn)資源不足,系統(tǒng)管理調(diào)整或者系統(tǒng)備份等原因,希望將某一虛擬機(jī)從原來(lái)物理主機(jī)遷移到另一個(gè)物理主機(jī)上,即 V2V(Virtual-to-Virtual)遷移。虛擬機(jī)的遷移需要物理主機(jī)上 VMM(Virtual Machine Monitor)的支持。相同類型 VMM 之間,使用相同的 API 接口,通常具有強(qiáng)大的遷移能力。例如本系列第二篇文章介紹的 KVM 虛擬機(jī)之間的遷移,它支持三種遷移方式:離線遷移、在線共享存儲(chǔ)遷移和在線塊遷移。而不同的 VMM 之間,由于虛擬化實(shí)現(xiàn)技術(shù)的不同、開(kāi)發(fā)廠商的不同、API 接口的不同,使虛擬機(jī)遷移困難重重。本文分別介紹如何靜態(tài)遷移 VMware ESX/ESXi、VMware Workstation 及 VMware Player 上的虛擬機(jī)到 KVM 主機(jī)。

          VMware 虛擬機(jī)遷移到 KVM 的方式

          虛擬機(jī) V2V(Virtual-to-Virtual)遷移是在虛擬機(jī)之間移動(dòng)操作系統(tǒng)和數(shù)據(jù), 照顧主機(jī)級(jí)別的差異和處理不同的虛擬硬件。V2V 的遷移方法有兩種,靜態(tài)遷移和在線遷移。靜態(tài)遷移(offline migration)也叫做常規(guī)遷移、離線遷移。在遷移之前將虛擬機(jī)暫停,同時(shí)拷貝虛擬機(jī)鏡像和狀態(tài)到目的主機(jī)。相比較于在線遷移(online migration),其缺點(diǎn)是靜態(tài)遷移方式的過(guò)程需要顯式的停止虛擬機(jī)的運(yùn)行,而在線遷移的過(guò)程僅有非常短暫的停機(jī)時(shí)間,保證遷移過(guò)程中虛擬機(jī)服務(wù)的持續(xù)可用;優(yōu)點(diǎn)是兼容性強(qiáng),不需要 VMM 的有統(tǒng)一的 API 接口,可以借助第三方工具輔助遷移。由于目前 VMM 的開(kāi)發(fā)沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),不同的虛擬化廠商,尤其是閉源的商業(yè)廠商開(kāi)發(fā)的 VMM 各成一套,靜態(tài)遷移是解決不同類型虛擬機(jī)之間遷移的有效辦法。本文采用 V2V 靜態(tài)遷移的方法實(shí)現(xiàn) VMware 虛擬機(jī)到 KVM 的遷移,同時(shí)介紹開(kāi)源遷移工具 virt-v2v 的使用。

          VMware 虛擬化產(chǎn)品及虛擬機(jī)文件

          VMware 產(chǎn)品簡(jiǎn)介

          VMware 是全球虛擬化解決方案的領(lǐng)導(dǎo)廠商,提供了一套虛擬機(jī)解決方案,按產(chǎn)品特點(diǎn)可分為如下四類。  

          • VMware ESX/ESXi:這個(gè)產(chǎn)品不需要安裝任何操作系統(tǒng),它本身就是一個(gè)用來(lái)管理硬件資源的特殊的操作系統(tǒng),所有的虛擬機(jī)都安裝在它的上面。ESX Server 帶有遠(yuǎn)程 web 管理和客戶端管理功能。
          • VMware Server、Workstation 和 Fusion:與 ESX 相比,這三個(gè)產(chǎn)品都是要安裝在操作系統(tǒng)上的。Server 和 Workstation 運(yùn)行在 Windows 和 Linux 上,F(xiàn)usion 運(yùn)行在蘋果的 Mac OS 上。
          • VMware VMotion:是 VMware 開(kāi)發(fā)出的一項(xiàng)獨(dú)特技術(shù),它將服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)設(shè)備完全虛擬化,使得正在運(yùn)行的整個(gè)虛擬機(jī)能夠在瞬間從一臺(tái)服務(wù)器移到另一臺(tái)服務(wù)器上。
          • Virtual Center、Importer、Convertor、P2V、Player:這些是為了配合 VMware 虛擬引擎,主要是為了配合 ESX 開(kāi)發(fā)的管理軟件和工具,這些工具中很多是免費(fèi)的。

          本文主要遷移創(chuàng)建在 VMware ESX/ESXi、VMware Workstation 和 VMware Player 上的虛擬機(jī)到 KVM 主機(jī)上,遷移后的虛擬機(jī)可以被開(kāi)源的 libvirt 軟件管理。

          VMware 虛擬機(jī)文件介紹

          成功遷移虛擬機(jī)的一個(gè)重要的驗(yàn)證標(biāo)準(zhǔn)就是文件的正確性和完整性。下圖中列出與 VMware 虛擬機(jī)相關(guān)的文件,但是遷移 VMware 虛擬機(jī)到 KVM 并不需要用到所有的文件。


          圖 1. VMware 虛擬機(jī)文件

          VMware 虛擬機(jī)的文件主要包括 .nvram 文件,.vmx 文件,vmdk 文件,.vswp 文件,.vmss 文件,.vmsd 文件,.vmsn 文件,.log 文件,.vmxf 文件。與遷移相關(guān)的最主要的是 .vmx 文件和 .vmdk 文件。

          • .vmx 文件:包括虛擬機(jī)所有配置信息與硬件設(shè)置。不管你對(duì)虛擬機(jī)的設(shè)置做了何種編輯,所有的信息都會(huì)以文本形式保存在這個(gè)文件里。如特殊硬件配置(例如 RAM 大小,網(wǎng)絡(luò)接口信息,硬盤驅(qū)動(dòng)信息,串行與并行信息),高級(jí)能源與資源配置、VMware 工具選項(xiàng)及能源管理選項(xiàng)。遷移虛擬機(jī)時(shí),需要更改這個(gè)文件的格式到 KVM 支持的 xml 文件,并且重新確認(rèn)文件信息的有效性。
          • .vmdk 文件:包含虛擬磁盤的信息。虛擬機(jī)的文件系統(tǒng)就建立在 .vmdk 文件上。遷移時(shí)需要拷貝這個(gè)文件到 KVM 主機(jī),并且轉(zhuǎn)換成能夠被 libvirt 識(shí)別的文件格式。

          以下的虛擬機(jī)文件有些只在虛擬機(jī)處于的某種狀態(tài)時(shí)出現(xiàn),遷移過(guò)程中不會(huì)用到。例如當(dāng)虛擬機(jī)開(kāi)啟時(shí)出現(xiàn) .vswp 文件,當(dāng)虛擬機(jī)暫停時(shí)出現(xiàn) .vmss 文件。

          • .nvram 文件:包括虛擬機(jī)啟動(dòng)過(guò)程一部分的 Phoenix BIOS。它類似于擁有 BIOS 芯片的物理服務(wù)器,能夠設(shè)置硬件配置選項(xiàng)。如果刪除的話,在虛擬機(jī)啟動(dòng)時(shí)會(huì)自動(dòng)地重新創(chuàng)建。
          • .vswp file:這些文件的大小等于分配給虛擬機(jī)的內(nèi)存大小,再減去任何內(nèi)存預(yù)留(默認(rèn)是 0)。這些文件通常創(chuàng)建在虛擬機(jī)里,但是只有當(dāng) ESX 主機(jī)耗盡所有物理內(nèi)存時(shí)才使用。當(dāng)虛擬機(jī)關(guān)閉或暫停時(shí),這些文件將刪除。
          • .vmss 文件:這個(gè)文件用于虛擬機(jī)暫停時(shí),保存虛擬機(jī)的存儲(chǔ)內(nèi)容,以便在重新開(kāi)始時(shí)繼續(xù)運(yùn)行。
          • .vmsd 文件:這個(gè)文件與快照一起使用,用于存儲(chǔ)元數(shù)據(jù)和其他活動(dòng)在虛擬機(jī)里的每個(gè)快照的信息。這個(gè)文本文件在創(chuàng)建快照之前的初始大小是 0 字節(jié),并在每次創(chuàng)建或刪除快照時(shí)更新信息。
          • .vmsn 文件:這個(gè)文件與快照一起使用,用于存儲(chǔ)虛擬機(jī)在進(jìn)行快照時(shí)的狀態(tài)。每在虛擬機(jī)上創(chuàng)建一個(gè)快照就會(huì)生成一個(gè) .vmsn 文件,在刪除快照時(shí),文件自動(dòng)刪除。
          • .log 文件:這些文件創(chuàng)建來(lái)用于存儲(chǔ)虛擬機(jī)的日志信息,并常常用于故障檢查。在虛擬機(jī)目錄里,有大量的這樣的文件。當(dāng)前的日志文件通常命名為 vmware.log。
          • .vmxf 文件:這是一個(gè)附加配置文件,不用于 ESX,用于與 Workstation 兼容的目的。這個(gè)文件是文本格式,Workstation 用來(lái)聚合虛擬機(jī)(VM teaming),將多個(gè)虛擬機(jī)分配成一組,作為一個(gè)單一對(duì)象開(kāi)啟或關(guān)閉、暫停或恢復(fù)它們。

          virt-v2v 遷移 VMware ESX 虛擬機(jī)

          從 RHEL6(Red Hat Enterprise Linux 6)開(kāi)始,RHEL 發(fā)行版中包含了 Red Hat 公司開(kāi)發(fā)的 virt-v2v 工具。它是由 perl 語(yǔ)言編寫的腳本,可以自動(dòng)化的將創(chuàng)建在 Xen,KVM 和 VMware ESX 上的虛擬機(jī)拷貝到 virt-v2v 的主機(jī),并且自動(dòng)的更改配置,使之能夠被 libvirt 進(jìn)行管理。目前,virt-v2v 支持靜態(tài)遷移下列虛擬機(jī):RHEL4、RHEL5, RHEL6,Windows XP,Windows Vista, Windows 7, Windows Server 2003 和 Windows Server 2008。


          圖 2. virt-v2v 遷移 VMware/Xen/KVM 虛擬機(jī)示意圖

          本節(jié)中,將分別介紹如何使用 virt-v2v 工具遷移 Vmware ESXi 上的 RHEL 虛擬機(jī)和 Windows 7 虛擬機(jī)到 KVM 主機(jī)。

          遷移前的環(huán)境設(shè)置

          本文的 KVM 主機(jī)安裝最新的 RHEL6.1 操作系統(tǒng)(發(fā)布于 2011 年 5 月 19 日)。這樣,最基本的支持 KVM 虛擬機(jī)的軟件 qemu-kvm、libvirt、virt-manager 和 virt-v2v 工具都在發(fā)行版中安裝了。


          清單 1. 支持 KVM 虛擬機(jī)的軟件包
          				 [root@localhost ~]# rpm -qa qemu-kvm  qemu-kvm-0.12.1.2-2.160.el6.x86_64  [root@localhost ~]# rpm -qa libvirt  libvirt-0.8.7-18.el6.x86_64  [root@localhost ~]# rpm -qa virt-manager  virt-manager-0.8.6-4.el6.noarch  [root@localhost ~]# rpm -qa virt-v2v  virt-v2v-0.7.1-3.el6.x86_64 

          為了使 virt-v2v 工具能夠自動(dòng)化的遷移 VMware ESX 虛擬機(jī),盡量減少手動(dòng)干預(yù),還需要在 KVM 主機(jī)上做一些設(shè)置。

          1. 安裝支持 Windows 虛擬機(jī)遷移的軟件。

          對(duì)于 Windows 虛擬機(jī)的遷移需要安裝 libguestfs-winsupport 包來(lái)支持 NTFS 文件系統(tǒng)和 virtio-win 包來(lái)支持 Windows para-virtualized 存儲(chǔ)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。


          清單 2. 安裝 Windows 虛擬機(jī)遷移的支持包
          				 [root@victory4 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 主機(jī)存儲(chǔ)域

          virt-v2v 在遷移虛擬機(jī)的過(guò)程中,需要拷貝被遷移虛擬機(jī)到 KVM 主機(jī)預(yù)先定義的存儲(chǔ)池中。存儲(chǔ)池可以用 libvirt 工具創(chuàng)建。最簡(jiǎn)單的方法就是使用 virt-manager 來(lái)創(chuàng)建新的存儲(chǔ)池。本文中創(chuàng)建了一個(gè)文件目錄類型的存儲(chǔ)池,位置在 KVM 主機(jī)系統(tǒng)的 /home/images/migration 目錄。


          圖 3. 使用 virt-manager 創(chuàng)建本地存儲(chǔ)域

          3. 創(chuàng)建 KVM 主機(jī)網(wǎng)絡(luò)接口

          虛擬機(jī)在遷移之后將連接 KVM 主機(jī)網(wǎng)絡(luò), 因此主機(jī)必須有一個(gè)與之相匹配的網(wǎng)絡(luò)接口,比如說(shuō)網(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 文件中設(shè)置 virt-v2v 遷移的規(guī)則,包括網(wǎng)絡(luò)接口遷移后的映射,遷移的方式,存儲(chǔ)的位置,輸出的格式等等。這些規(guī)則也能以命令行參數(shù)的方式輸入,如 - - network,-o,-os,-of 等。

          virt-v2v 遷移 VMware 虛擬機(jī)的步驟

          在 KVM 主機(jī)上完成上節(jié)的準(zhǔn)備工作后,可以正式開(kāi)始遷移 VMware ESX 上的虛擬機(jī)了。下面是遷移的具體步驟:

          1. 如果虛擬機(jī)上安裝了 VMware Tools,必須先卸載它。因?yàn)?KVM 的虛擬機(jī)不支持 VMware Tools 里面的虛擬驅(qū)動(dòng)。

          2. 在 VMware ESX 上停止等待遷移的虛擬機(jī),因?yàn)?virt-v2v 只支持靜態(tài)遷移。

          3. 為自動(dòng)登錄 VMware ESX 服務(wù)器創(chuàng)建 .netrc 文件。VMware ESX 服務(wù)器的連接需要授權(quán),virt-v2v 支持密碼方式的授權(quán)連接,可以從 $HOME/.netrc 文件中讀取密碼并自動(dòng)登錄。如果主機(jī)系統(tǒng)沒(méi)有這個(gè)文件,就手動(dòng)創(chuàng)建它。并且 .netrc 文件需要 0600 權(quán)限,使 virt-v2v 工具可以正確讀取它。


          清單 3. .netrc 文件的格式
          				 machine esx.example.com login root password xxxxxx 

          4. 使用 virt-v2v 命令進(jìn)行遷移。VMware ESX 服務(wù)器采用 HTTPS 連接方式,連接時(shí)需要配置 SSL 證書。本文通過(guò)添加'?no_verify=1'; 到 VMware 服務(wù)器的 URI 連接中,來(lái)關(guān)閉證書檢查。


          清單 4. virt-v2v 遷移命令及參數(shù)
          				 virt-v2v -ic esx://esx.example.com/?no_verify=1 -os pool --bridge brname vm-name      esx.example.com – 是 ESX 服務(wù)器主機(jī)名或 IP Address  pool – 本地主機(jī)存儲(chǔ)池,用來(lái)保存鏡像 brname – 本地主機(jī)網(wǎng)橋名字,用來(lái)連接遷移后的虛擬機(jī)網(wǎng)絡(luò) vm-name – 虛擬機(jī)的名字

          5. 遷移成功后,虛擬機(jī)出現(xiàn)在 virt-manager 管理的虛擬機(jī)列表中。通過(guò) virt-manager 工具啟動(dòng)虛擬機(jī)。

          6. 檢查遷移后的虛擬機(jī)的設(shè)備驅(qū)動(dòng)。如果需要,重新安裝虛擬設(shè)備驅(qū)動(dòng)。

          7. 驗(yàn)證遷移后的虛擬機(jī)的配置和系統(tǒng)是否和遷移之前一致。

          virt-v2v 遷移實(shí)例:Linux 虛擬機(jī) RHEL5.5

          本例將遷移創(chuàng)建在 VMWare ESXi 服務(wù)器上的 RHEL5.5 虛擬機(jī)到 KVM 主機(jī)上,并使遷移后的虛擬機(jī)被 libvirt 管理。本例的環(huán)境中,VMware ESXi 服務(wù)器和 KVM 主機(jī)通過(guò)網(wǎng)絡(luò)連接,虛

          擬機(jī)鏡像被各自的存儲(chǔ)管理。


          圖 5. virt-v2v 遷移 RHEL5 虛擬機(jī)的環(huán)境

          下面就開(kāi)始正式的遷移 :

          1. 在 VMware ESXi 上檢測(cè) RHEL5.5 虛擬機(jī),如果安裝了 VMware Tools,先卸載它。

          2. 在 VMware ESXi 上關(guān)閉 RHEL5.5 虛擬機(jī)。

          3. 在 KVM 主機(jī)上創(chuàng)建或修改 $HOME/.netrc 文件,添加 VMware ESXi 服務(wù)器的用戶名和密碼。


          清單 5. 修改 .netrc 文件
          				 [root@localhost home]# cat ~/.netrc  machine 9.123.99.913 login root password xxxxxx  [root@localhost home]# chmod 0600 ~/.netrc 

          4. 開(kāi)始遷移虛擬機(jī)。KVM 的存儲(chǔ)是遷移前準(zhǔn)備好的存儲(chǔ)域 migration,文件格式采用 libvirt 支持的 qcow2,網(wǎng)絡(luò)連接方式與 VMware 虛擬機(jī)相同,采用網(wǎng)橋。


          清單 6. 遷移 RHEL5.5 虛擬機(jī)
          				 [root@localhost ~]# virt-v2v -ic esx://9.123.99.193/?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ù)說(shuō)明 -os migration:  遷移虛擬機(jī)的鏡像文件到主機(jī)上的存儲(chǔ)池 -of qcow2:     轉(zhuǎn)換遷移后虛擬機(jī)的文件格式 --bridge br0:  設(shè)置遷移后虛擬機(jī)的網(wǎng)絡(luò)映射到網(wǎng)橋 br0  RHEL5.5:        Vmware ESXi 上虛擬機(jī)的名字,遷移后保持名字一致

          5. 在 KVM 主機(jī)上啟動(dòng) virt-manager 軟件,就會(huì)發(fā)現(xiàn)遷移后的虛擬機(jī)已經(jīng)被 libvirt 管理了。


          圖 6. virt-manager 管理遷移后的 RHEL5.5 虛擬機(jī)

          6. 深入比較遷移前在 VMware ESXi 上的虛擬機(jī)和遷移后在 KVM 上的虛擬機(jī)。


          表 1. RHEL5.5 虛擬機(jī)遷移前后在 VMware ESXi 和 KVM 上的比較
          RHEL5.5 VMware ESXi KVM/Libvirt 結(jié)論
          CPUs Intel Xeon 5160 x2 QEMU vCPU
          (cpu64-rhel6)
          數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化
          Memory 1384M 1384M 數(shù)量一致
          Hard Disk 18GB,
          LSI Logic SCSI
          VMDK
          18GB
          virtio SCSI
          qcow2
          大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型
          CDROM IDE IDE 類型一致
          Network Adaptor MAC 00:0c:29:a9:7b:83
          Type: e1000
          vSwitch0
          DHCP
          MAC 00:0c:29:a9:7b:83
          Type: virtio
          bridge br0
          DHCP
          Mac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型
          Video Card Vmware SVGA
          4M Video RAM
          Model: Cirrus
          9M RAM
          轉(zhuǎn)換為 libvirt 支持的類型
          系統(tǒng)用戶 root/admin001 root/admin001 一致
          磁盤分區(qū) VolGroup00
          /dev/sda
          VolGroup00
          /dev/vda
          邏輯卷一致,物理盤符有變化。

          從表中的比較看出,RHEL5.5 從 VMware ESXi 服務(wù)器遷移到 KVM 主機(jī)上后,由于 Hypervisor 的不同,硬件發(fā)生了很大的變化。但是 virt-v2v 工具很好的解決的這個(gè)問(wèn)題,使用 virtio 虛擬設(shè)備驅(qū)動(dòng)使 RHEL5.5 系統(tǒng)遷移后能夠流暢的運(yùn)行。除了 RHEL5,virt-v2v 還支持 RHEL4 及 RHEL6 版本的遷移。

          virt-v2v 遷移實(shí)例:Windows 虛擬機(jī) WinXP,Win7

          本例中將介紹如何使用 virt-v2v 工具遷移創(chuàng)建在 VMware ESXi 上的 Windows 虛擬機(jī),包括 Windows XP SP3 32bit 中文版和 Windows 7 Professional 32bit 中文版。本節(jié)的環(huán)境中,KVM 主機(jī)上安裝了 virt-v2v 及相應(yīng)的支持包 libguestfs-winsupport 和 virtio-win。VMware ESXi 服務(wù)器和 KVM 主機(jī)通過(guò)網(wǎng)絡(luò)連接,虛擬機(jī)鏡像被各自的存儲(chǔ)管理。


          圖 7. virt-v2v 遷移 Windows 虛擬機(jī)的環(huán)境

          下面是正式的遷移步驟:

          1. 在 VMware ESXi 上檢測(cè) WinXP 和 Win7 虛擬機(jī),如果安裝了 VMware Tools,先卸載它。

          2. 在 VMware ESXi 上關(guān)閉 WinXP 和 Win7 虛擬機(jī)。

          3. 在 KVM 主機(jī)上創(chuàng)建或修改 $HOME/.netrc 文件,添加 VMware ESXi 服務(wù)器的用戶名和密碼。

          4. 開(kāi)始遷移虛擬機(jī)。KVM 的存儲(chǔ)是遷移前準(zhǔn)備好的存儲(chǔ)域 migration,文件格式采用 libvirt 支持的 qcow2,網(wǎng)絡(luò)連接方式與 VMware 虛擬機(jī)相同,采用網(wǎng)橋。


          清單 7. 遷移 WinXP 虛擬機(jī)
          				 [root@localhost ~]# virt-v2v -ic esx://9.123.99.193/?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 虛擬機(jī)
          				 [root@localhost ~]# virt-v2v -ic esx://9.123.99.193/?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  [root@localhost ~]# 

          5. 遷移完成后,在 KVM 主機(jī)上啟動(dòng) virt-manager 軟件,會(huì)發(fā)現(xiàn)遷移后的 Windows 虛擬機(jī)已經(jīng)被 libvirt 管理了。

          6. 在 KVM 上啟動(dòng)虛擬機(jī)后,由于更新了一些虛擬硬件設(shè)備,可能需要重新安裝驅(qū)動(dòng)程序和重啟系統(tǒng)。

          7. 深入比較遷移前在 VMware ESXi 上的虛擬機(jī)和遷移后在 KVM 上的虛擬機(jī),


          表 2. WinXP 虛擬機(jī)遷移前后在 VMware ESXi 和 KVM 上的比較
          WinXP VMware ESXi KVM/Libvirt 結(jié)論
          CPUs Intel Xeon 5160 Intel Pentium II 處理器 數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化
          Memory 1256M 1256M 數(shù)量一致
          Hard Disk 8GB,
          Vmware Virtual IDE
          VMDK
          8GB
          Virtio SCSI
          qcow2
          大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型
          CDROM VMware IDE IDE 類型一致
          Network Adaptor MAC 00:0c:29:83:86:d7
          Type: PCNET
          vSwitch0
          DHCP
          MAC 00:0c:29:83:86:d7
          Type: rtl8139
          bridge br0
          DHCP
          Mac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型
          Video Card Vmware SVGA
          4M Video RAM
          Model: Cirrus
          9M RAM
          轉(zhuǎn)換為 libvirt 支持的類型
          系統(tǒng) Administrator/admin001 Administrator/admin001 一致
          磁盤分區(qū) C:\
          D:\
          C:\
          D:\
          一致


          表 3. Win7 虛擬機(jī)遷移前后在 VMware ESXi 和 KVM 上的比較
          Win7 VMware ESXi KVM/Libvirt 結(jié)論
          CPUs Intel Xeon 5160 x 2 X86 family 6 x 2 數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化
          Memory 1024M 1024M 數(shù)量一致
          Hard Disk 24GB,
          LSI Logic SCSI
          VMDK
          24GB
          Virtio SCSI
          qcow2
          大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型
          CDROM VMware IDE IDE 類型一致
          Network Adaptor MAC 00:0c:29:64:de:6a
          Type: e1000
          vSwitch0
          DHCP
          MAC 00:0c:29:64:de:6a
          Type: virtio
          bridge br0
          DHCP
          Mac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型
          Video Card Vmware SVGA
          8M Video RAM
          Model: Cirrus
          9M RAM
          轉(zhuǎn)換為 libvirt 支持的類型
          系統(tǒng) Administrator/admin001 Administrator/admin001 一致
          磁盤分區(qū) C:\
          D:\
          C:\
          D:\
          一致

          從表中的比較看出,Windows 虛擬機(jī)從 VMware ESXi 服務(wù)器遷移到 KVM 主機(jī)上后,由于 Hypervisor 的不同,硬件發(fā)生了很大的變化。Virt-v2v 工具盡量在 KVM 虛擬機(jī)上使用 Virtio 虛擬設(shè)備加速系統(tǒng)的 IO 設(shè)備。WinXP 虛擬機(jī)的遷移后,使用了磁盤的 virtio 驅(qū)動(dòng)而網(wǎng)絡(luò)設(shè)備使用默認(rèn)的 rtl8139。 Win7 虛擬機(jī)的遷移后磁盤和網(wǎng)絡(luò)全部使用 virtio 的驅(qū)動(dòng)。Virt-v2v 還支 Windows Vista,Win2003,Win2008 虛擬機(jī)從 VMware ESX/ESXi 上的遷移,步驟和 WinXP,Win7 虛擬機(jī)類似。

          virt-v2v 遷移小結(jié)

          virt-v2v 工具自動(dòng)化的解決了 VMware ESX/ESXi 服務(wù)器上的 RHEL 虛擬機(jī)和 Windows 虛擬機(jī)遷移到 KVM 主機(jī)的問(wèn)題。而且在遷移的過(guò)程中盡量的使用 virtio 驅(qū)動(dòng)提高 IO 設(shè)備的性能。但是,virt-2v2 工具也有一些局限性。比如只支持虛擬機(jī)關(guān)機(jī)情況下的靜態(tài)遷移;只支持 RHEL 虛擬機(jī)和 Windows 虛擬機(jī)的遷移;不支持 VMware 虛擬機(jī)快照的遷移。對(duì)于創(chuàng)建在 VMware Workstation/Player 上的虛擬機(jī),目前 virt-v2v 還不支持自動(dòng)遷移。但是我們可以用手動(dòng)遷移的方法完成到 KVM 主機(jī)的遷移。請(qǐng)看下節(jié):手動(dòng)遷移 VMware Workstation/Player 上的虛擬機(jī)到 KVM 。

          手動(dòng)遷移 VMware Workstation/Player 上的虛擬機(jī)到 KVM

          從物理機(jī)的文件系統(tǒng)看,VMware 虛擬機(jī)是由一組文件組成。這些文件可能集中存儲(chǔ)在存儲(chǔ)服務(wù)器上,如 VMware ESX/ESXi,也可能存儲(chǔ)在本地,如 VMware Workstation/Player。關(guān)閉虛擬機(jī)的情況下,這些文件內(nèi)容不會(huì)改變。所以我們可以用手動(dòng)遷移的方法,拷貝這些文件到 KVM 主機(jī)并且轉(zhuǎn)換這些文件的格式或內(nèi)容,使 libvirt 能夠管理和識(shí)別。這樣就完成了 VMware 虛擬機(jī)的手動(dòng)遷移。

          手動(dòng)遷移的準(zhǔn)備工作

          在 VMware 虛擬機(jī)眾多的文件中,最重要的是虛擬機(jī)鏡像文件 .vmdk 和系統(tǒng)配置文件 .xml。所以手動(dòng)遷移就是要分別處理這兩種文件。

          • 合并分散的 vmdk 鏡像文件。在 VMware Workstation 上創(chuàng)建虛擬機(jī)的時(shí)候,可以選擇存儲(chǔ)虛擬磁盤為一個(gè)文件或多個(gè)文件。但是 libvirt 不能管理多個(gè)文件組成的磁盤鏡像,所以需要在遷移前合并這些文件為一個(gè)單獨(dú)的文件。VMware Workstation 自帶了離線的磁盤管理工具 vmware-vdiskmanager.exe 來(lái)合并 vmdk 文件。

          圖 8. 多個(gè)文件存儲(chǔ)的 VMware 虛擬機(jī)

          • qemu-img 轉(zhuǎn)換 vmdk 的文件格式。KVM 主機(jī)上安裝 qemu-img 包,可以察看并轉(zhuǎn)換 vmdk 文件到 raw/qcow2 文件格式。
          • 創(chuàng)建 xml 文件。VMware 的系統(tǒng)配置文件是 vmx,必須轉(zhuǎn)換成 libvirt 能夠識(shí)別的 xml 格式。一種方法是根據(jù) VMware 虛擬機(jī)的硬件信息,手動(dòng)創(chuàng)建一個(gè)新的 xml 文件;另一種方法是利用工具輔助轉(zhuǎn)換 vmx 文件。比如 virt-goodies/vmware2libvirt 工具,可以從下面 link 下載安裝 virt-goodies:https://launchpad.net/ubuntu/+source/virt-goodies/0.4

          下面我們以 VMware Workstations 上的 SUSE Linux Enterprise Server 11 SP1 虛擬機(jī)和 VMware Player 上的 Windows 2008 R2 虛擬機(jī)為例,詳細(xì)介紹遷移到 KVM 主機(jī)的步驟。

          手動(dòng)遷移 VMware Workstation 上的 SLES11SP1 虛擬機(jī)

          VMware Workstation 軟件安裝在一個(gè) Windows XP 系統(tǒng)上,然后創(chuàng)建 SLES11SP1 虛擬機(jī)。虛擬機(jī)的文件都存儲(chǔ)在本地。KVM 主機(jī)通過(guò)網(wǎng)絡(luò)連接到 Window XP 系統(tǒng)。


          圖 9. 手動(dòng)遷移 SLES11SP1 虛擬機(jī)的環(huán)境

          遷移的過(guò)程如下:

          1. 登錄宿主機(jī) Windows XP 系統(tǒng),在 VMware Workstation 上檢查 SLES11SP1 虛擬機(jī),如果安裝了 VMware Tools,以 root 用戶運(yùn)行 vmware-uninstall-tools.pl 卸載它。

          2. 關(guān)閉 SLES11SP1 虛擬機(jī)。

          3. 檢查虛擬機(jī)的鏡像文件。本例中,虛擬機(jī)的鏡像存儲(chǔ)在多個(gè) vmdk 文件中,所以需要在遷移前合并他們。


          圖 10. 用 vmware-vdiskmanager.exe 合并多個(gè) vmdk 文件

          4. 拷貝合并后的 vmdk 文件到 KVM 主機(jī)上。本例中,拷貝文件 SLES11SP1-single.vmdk 到 KVM 主機(jī)的 /home/images/migration 目錄下。并且使用 qemu-img 工具將 vmdk 文件轉(zhuǎn)換成 qcow2 格式的文件??梢钥闯觯D(zhuǎn)換后鏡像文件 SLES11SP1-single.img 的實(shí)際大小 3.9G 和最大范圍 20G 沒(méi)有改變,僅僅是文件系統(tǒng)類型變化了。


          清單 9. 轉(zhuǎn)換 vmdk 文件到 qcow2 格式
          				 [root@localhost migration]# qemu-img info SLES11SP1-single.vmdk  image: SLES11SP1-single.vmdk  file format: vmdk  virtual size: 20G (21474836480 bytes)  disk size: 3.9G  [root@localhost migration]# qemu-img convert -f vmdk  -O qcow2 SLES11SP1-single.vmdk SLES11SP1-single.img  [root@localhost 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 文件。本例介紹第一種方法,即手動(dòng)創(chuàng)建 vmx 文件。首先要找出 SLES11SP1 虛擬機(jī)全部虛擬設(shè)備信息,這些信息可以從 VMware Workstation 的管理界面和虛擬機(jī)系統(tǒng)的系統(tǒng)信息獲得;然后在 KVM 主機(jī)上的 virt-manager 中,以第 4 步轉(zhuǎn)換完成的鏡像文件 SLES11SP1-single.img 為基礎(chǔ)創(chuàng)建一個(gè)虛擬機(jī);最后添加與 VMware 相同或類似的硬件,并且盡量保證數(shù)量、類型和配置的一致,包括 CPU 和 MEM 數(shù)量、系統(tǒng)構(gòu)架、網(wǎng)絡(luò)類型、MAC 地址等。


          圖 11. VMware Workstation 上查看虛擬機(jī)的硬件信息


          圖 12. 手動(dòng)配置 KVM 虛擬機(jī)

          6. 設(shè)置完成后,自動(dòng)創(chuàng)建 KVM 虛擬機(jī)的配置文件 /etc/libvirt/qemu/SLES11SP1.xml,并且 virt-manager 可以管理這個(gè) SLES 虛擬機(jī)了。在 libvirt 上啟動(dòng)虛擬機(jī),手動(dòng)配置虛擬機(jī)系統(tǒng)以適應(yīng)新的硬件。

          7. 深入比較遷移前在 VMware Workstation 上的虛擬機(jī)和遷移后在 KVM 上的虛擬機(jī)。


          表 4. SLES11SP1 虛擬機(jī)遷移前后在 VMware Workstation 和 KVM 上的比較
          SLES11SP1 VMware Workstation KVM/Libvirt 結(jié)論
          CPUs Intel Core2 x 2 QEMU vCPU x 2
          數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化
          Memory 768M 768M 數(shù)量一致
          Hard Disk 20GB
          LSI Logic SCSI
          VMDK
          20GB
          IDE
          qcow2
          大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型
          CDROM IDE IDE 類型一致
          Floppy 類型一致
          USB Controller USB 2.0 Physical USB device libvirt 對(duì) USB 的支持較弱
          Network Adaptor MAC 00:0c:29:68:16:33
          Type: PCNet
          NAT
          Virtual DHCP
          MAC 00:0c:29:a9:7b:83
          Type: Virtio
          NAT
          Virtual DHCP
          Mac 相同,網(wǎng)卡類型和連接方式轉(zhuǎn)換為適合 libvirt 的類型
          Video Card Vmware SVGA Model: Cirrus
          9M RAM
          轉(zhuǎn)換為 libvirt 支持的類型
          Audio device ES1371 ES1370 轉(zhuǎn)換為 libvirt 支持的類型
          系統(tǒng)用戶 root/admin001 root/admin001 一致
          磁盤分區(qū) /dev/sda1
          /dev/sda2
          /dev/sda1
          /dev/sda2
          物理盤符及系統(tǒng)分區(qū)一致

          和使用 virt-v2v 自動(dòng)化遷移工具相比,手動(dòng)遷移增加了很多工作和不確定性。在本系列文章第一篇列舉了”Linux 系統(tǒng)在虛擬機(jī)遷移中的技術(shù)難點(diǎn)”,此處正好驗(yàn)證了手動(dòng)遷移中需要注意的問(wèn)題。比如在本例中,有以下兩個(gè)問(wèn)題:

          • 如何選擇磁盤總線類型。virt-v2v 工具自動(dòng)選擇 virtio 磁盤驅(qū)動(dòng)來(lái)提高 KVM 虛擬機(jī)的性能,但是在本例中,SLES 虛擬機(jī)不能直接使用 virtio 磁盤驅(qū)動(dòng)。因?yàn)?SLES 系統(tǒng)的磁盤分區(qū)名在 /etc/fstab 被硬編碼為 /dev/sda,而 virtio 磁盤分區(qū)名為 /dev/vda,直接使用 virtio 磁盤驅(qū)動(dòng)會(huì)導(dǎo)致系統(tǒng)找不到分區(qū)而無(wú)法啟動(dòng)的錯(cuò)誤。所以本例為 KVM 虛擬機(jī)選擇了性能較差的 IDE 磁盤類型。
          • Xwindow 需要重新配置。SLES 虛擬機(jī)不能自動(dòng)處理顯示設(shè)備的變化,所以需要手動(dòng)運(yùn)行 SaX2 重新配置 Xwindow 并重新啟動(dòng) gdm。

          實(shí)際上,手動(dòng)把 SLES 虛擬機(jī)里面關(guān)于磁盤分區(qū)的硬編碼全部改成 UUID 后,就可以使用高性能的 virtio 磁盤驅(qū)動(dòng)。具體操作方法將在本系列文章的第五部分介紹。

          手動(dòng)遷移 VMware Player 上的 Win2008R2 虛擬機(jī)

          VMware Player 軟件安裝在 Linux 系統(tǒng)上,然后創(chuàng)建了 Windows 2008 R2 虛擬機(jī)。虛擬機(jī)的文件都存儲(chǔ)在本地。KVM 主機(jī)通過(guò)網(wǎng)絡(luò)連接到 VMware Player 的主機(jī)系統(tǒng)。


          圖 13. 手動(dòng)遷移 Win2008R2 虛擬機(jī)的環(huán)境設(shè)置

          遷移的過(guò)程如下:

          1. 登錄宿主機(jī) Linux 系統(tǒng),在 VMware Player 上檢查 Win2008R2 虛擬機(jī),如果安裝了 VMware Tools,必須先卸載它。

          2. 關(guān)閉 Win2008R2 虛擬機(jī),因?yàn)槭謩?dòng)遷移必須保持虛擬機(jī)文件的一致性。

          3. 檢查虛擬機(jī)的鏡像文件。如果虛擬機(jī)的鏡像存儲(chǔ)在多個(gè) vmdk 文件中,需要在遷移前合并。本例的 VMware 虛擬機(jī)存儲(chǔ)在單獨(dú)的 vmdk 文件中,所以略過(guò)此步。

          4. 拷貝 vmdk 文件到 KVM 主機(jī)上。本例中,拷貝 Win2008R2.vmdk 文件到 KVM 主機(jī)的 /home/images/migration 目錄下。并且使用 qemu-img 工具將 vmdk 文件轉(zhuǎn)換成 qcow2 格式的文件??梢钥闯?,轉(zhuǎn)換后鏡像文件 Win2008R2.img 的實(shí)際大小 6.4G 和最大范圍 20G 沒(méi)有改變,僅僅是文件系統(tǒng)類型變化了。


          清單 10. 轉(zhuǎn)換 vmdk 文件到 qcow2 格式
          				 [root@localhost migration]# qemu-img info Win2008R2.vmdk  image: Win2008R2.vmdk  file format: vmdk  virtual size: 20G (21474836480 bytes)  disk size: 6.4G  [root@localhost migration]# qemu-img convert -f vmdk  -O qcow2 Win2008R2.vmdk Win2008R2.img  [root@localhost 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 腳本是用來(lái)做 vmx 到 xml 轉(zhuǎn)換的簡(jiǎn)單工具。但是由于它很長(zhǎng)時(shí)間沒(méi)有升級(jí),而且不同的 Linux 發(fā)行版對(duì) KVM/libvirt 安裝方式不同,vmware2libvirt 工具轉(zhuǎn)換后的 xml 文件需要手動(dòng)更改或添加某些配置。

            • 注意不同 Linux 發(fā)行版 qemu-kvm 的路徑不同,RHEL6.1 下是 /usr/libexec/qemu-kvm。
            • 把虛擬機(jī)的鏡像文件路徑及名字改成 /home/images/migration/Win2008R2.img。
            • vmware2libvirt 只轉(zhuǎn)換第一塊網(wǎng)卡,如果有多塊網(wǎng)卡需要手動(dòng)添加。
            • vmware2libvirt 不轉(zhuǎn)換 CDROM、Floppy、USB 和顯示設(shè)備,需要手動(dòng)為 KVM 虛擬機(jī)添加。
            • 磁盤和網(wǎng)卡采用默認(rèn)的驅(qū)動(dòng)程序,因?yàn)?Windows 系統(tǒng)沒(méi)有預(yù)裝 virtio 驅(qū)動(dòng)。

          清單 11. vmware2libvirt 轉(zhuǎn)換 vmx 文件
          				 [root@localhost migration]# /home/vmware2libvirt  -f Win2008R2.vmx > /etc/libvirt/qemu/Win2008R2.xml 添加 Win2008R2 到 virt-manager  [root@localhost migration]# virsh -c qemu:///system  define /etc/libvirt/qemu/Win2008R2.xml  Domain Win2008R2 defined from /etc/libvirt/qemu/Win2008R2.xml 

          6. 在 virt-manager 中啟動(dòng) Win2008R2 虛擬機(jī),手動(dòng)添加缺少的硬件。


          圖 14. KVM 上 Win2008R2 虛擬機(jī)的配置

          7. 啟動(dòng)虛擬機(jī),檢查系統(tǒng)狀態(tài)。


          表 5. Win2008R2 虛擬機(jī)遷移前后在 VMware Player 和 KVM 上的比較
          Win2008R2 VMware Player KVM/Libvirt 結(jié)論
          CPUs Intel Core Duo 2.66G x 2 QEMU vCPU 2.66G x 2 數(shù)量一致,類型和轉(zhuǎn)化為虛擬 CPU,主頻和支持的 flags 有變化
          Memory 1024M 1024M 數(shù)量一致
          Hard Disk 20GB,
          LSI Logic SCSI
          VMDK
          20GB
          IDE
          qcow2
          大小一致,總線接口和文件系統(tǒng)轉(zhuǎn)換為適合 libvirt 的類型
          CDROM VMware IDE IDE 類型一致
          Network Adaptor MAC 00:0c:29:aa:9b:a4
          Type: e1000
          NAT
          MAC 00:0c:29:aa:9b:a4
          Type: e1000
          NAT
          Mac 地址、網(wǎng)卡類型和連接方式相同
          Video Card Vmware SVGA Model: Cirrus
          9M RAM
          轉(zhuǎn)換為 libvirt 支持的類型
          系統(tǒng) Administrator/qwe123OP Administrator/qwe123OP 一致
          磁盤分區(qū) C:\
          D:\
          C:\
          D:\
          一致

          由上表可以看出,Win2008R2 虛擬機(jī)遷移到 KVM 后,雖然硬件有變化,但是不影響操作系統(tǒng)及軟件的運(yùn)行。這此遷移過(guò)程中沒(méi)有使用任何 virtio 的驅(qū)動(dòng)程序,因?yàn)?Windows 系統(tǒng)本身沒(méi)有 virtio 的驅(qū)動(dòng)。如果想使用 virtio 來(lái)提高 KVM 虛擬機(jī)的性能,參見(jiàn)下節(jié)如何用 virtio 驅(qū)動(dòng)光盤或軟盤手動(dòng)安裝。

          在 Windows 虛擬機(jī)上手動(dòng)安裝 virtio 驅(qū)動(dòng)

          實(shí)際上,virtio 驅(qū)動(dòng)光盤鏡像文件和軟盤鏡像文件包含在清單 2 列出的 virtio-win 包中。只需要在虛擬機(jī)的虛擬光驅(qū)或軟驅(qū)中裝載這些鏡像文件,就可以升級(jí)磁盤和網(wǎng)卡驅(qū)動(dòng)為 virtio 驅(qū)動(dòng)了。


          清單 12. virtio 光盤鏡像和軟盤鏡像文件
          				 [root@localhost migration]# rpm -ql virtio-win  .......  /usr/share/virtio-win/virtio-win-1.2.0.iso  /usr/share/virtio-win/virtio-win-1.2.0.vfd  /usr/share/virtio-win/virtio-win.iso  /usr/share/virtio-win/virtio-win.vfd 

          下面以上一個(gè)小節(jié)中,遷移到 KVM 的 Win2008R2 虛擬機(jī)為例,介紹如何在 Windows 虛擬機(jī)上安裝 virtio 驅(qū)動(dòng)。

          1. 在虛擬光驅(qū)中加載 virtio 鏡像。


          圖 15. 加載 virtio 光盤鏡像

          2. 更改網(wǎng)卡的類型為 virtio,這樣系統(tǒng)啟動(dòng)后可以從 virtio 光盤升級(jí)網(wǎng)卡驅(qū)動(dòng)程序。

          3. 此時(shí)不能更改磁盤的驅(qū)動(dòng)類型。因?yàn)榇藭r(shí) virtio 驅(qū)動(dòng)還沒(méi)有安裝,直接更改磁盤類型會(huì)導(dǎo)致系統(tǒng)無(wú)法啟動(dòng)的錯(cuò)誤。替代方法是臨時(shí)添加一塊新的磁盤,大小隨意,類型為 virtio。


          圖 16. 添加臨時(shí) virtio 磁盤

          4. 啟動(dòng)虛擬機(jī)并登陸系統(tǒng),查看硬件設(shè)備管理器。發(fā)現(xiàn)缺少了網(wǎng)卡和磁盤控制器的驅(qū)動(dòng)。用 virtio 光盤中的驅(qū)動(dòng)安裝他們。


          圖 17. 安裝 virtio 驅(qū)動(dòng)

          5. 安裝完成后,關(guān)閉虛擬機(jī)。刪除臨時(shí)磁盤并把主磁盤的類型改為 virtio,然后啟動(dòng)虛擬機(jī)。這時(shí)你會(huì)發(fā)現(xiàn) Win2008R2 虛擬機(jī)已經(jīng)用上 virtio 的磁盤和網(wǎng)卡設(shè)備了。

          目前 virtio 光盤鏡像包含 WinXP、Win7、Win2003 和 Win2008 四個(gè)平臺(tái)的驅(qū)動(dòng)程序,都可以用上面這種方法手動(dòng)安裝。

          小結(jié)

          以上章節(jié)詳細(xì)介紹了幾種遷移 VMware 虛擬機(jī)到 KVM 的方法,下面總結(jié)一下各種遷移方法的的優(yōu)缺點(diǎn)。

          • virt-v2v 工具是專門針對(duì) VMware ESX/ESXi 的自動(dòng)化遷移工具,而且支持的虛擬機(jī)系統(tǒng)僅限于 RHEL 和 Windows 虛擬機(jī)。Virt-v2v 在遷移后的 KVM 虛擬機(jī)中優(yōu)先使用 virtio 虛擬驅(qū)動(dòng)來(lái)提高系統(tǒng) IO 的性能。如果不支持,才選用性能稍低,但更穩(wěn)定可靠的虛擬硬件。而且這個(gè)過(guò)程全部自動(dòng)化完成。
          • 手動(dòng)遷移可以涵蓋所有的 VMware 軟件和所有的虛擬機(jī)系統(tǒng)。從而遷移中面臨的問(wèn)題也是多樣化的,需要不同程度的手動(dòng)干預(yù)。某些特定的環(huán)境下,可以使用一些工具來(lái)輔助手動(dòng)遷移,比如 virt-goodies/vmware2libvirt。另外 libvirt 也在開(kāi)發(fā)支持 VMware Workstation/Player 遷移的新功能。

          不論是 virt-v2v 自動(dòng)化工具還是手動(dòng)遷移,由于商業(yè)軟件 VMware 開(kāi)放的編程接口的限制,VMware 虛擬機(jī)到 KVM 的遷移有一些軟肋:

          1. 一些 VMware 虛擬機(jī)的特性沒(méi)有辦法遷移到 KVM 虛擬機(jī)上。比如 VMware 虛擬機(jī)廣泛使用的快照功能。
          1. 只能實(shí)現(xiàn)關(guān)閉虛擬機(jī)情況下的靜態(tài)遷移,無(wú)法做到虛擬機(jī)不關(guān)機(jī)情況下的在線遷移。
          2. 一些特殊的 VMware 設(shè)備不能遷移到 KVM 虛擬機(jī),于是采用了類似功能的硬件設(shè)備替代。比如 VMware Tools 中的虛擬驅(qū)動(dòng)、VMware SVGA、VMware USB Controller 等。

          總的來(lái)說(shuō),VMware 虛擬機(jī)到 KVM 的遷移不夠成熟和自動(dòng)化,遷移的過(guò)程需要手動(dòng)干預(yù)。這要求遷移的操作人員具有相關(guān)的知識(shí)和經(jīng)驗(yàn)。開(kāi)源工具 virt-v2v 的出現(xiàn)簡(jiǎn)化了 VMware ESX/ESXi 上部分虛擬機(jī)的遷移,而且計(jì)劃將來(lái)支持 VMware Workstation/Player 上虛擬機(jī)的自動(dòng)遷移。反言之,自動(dòng)化的遷移工具不就是用腳本語(yǔ)言把手動(dòng)遷移的步驟和條件程序化么?掌握了手動(dòng)遷移,才能了解虛擬機(jī)遷移更多的奧秘。


          參考資料

          學(xué)習(xí)

          討論

          • 加入 developerWorks 中文社區(qū),developerWorks 社區(qū)是一個(gè)面向全球 IT 專業(yè)人員,可以提供博客、書簽、wiki、群組、聯(lián)系、共享和協(xié)作等社區(qū)功能的專業(yè)社交網(wǎng)絡(luò)社區(qū)。

          作者簡(jiǎn)介

          郭晉兵,高級(jí)軟件工程師,目前在 IBM 中國(guó)軟件開(kāi)發(fā)中心從事軟件的開(kāi)發(fā)測(cè)試工作。

          吳超鳳,軟件工程師,目前在 IBM 中國(guó)軟件開(kāi)發(fā)中心從事 KVM 虛擬機(jī)相關(guān)軟件的開(kāi)發(fā)測(cè)試工作。

          叢彬彬,高級(jí)軟件工程師,目前在 IBM 中國(guó)軟件開(kāi)發(fā)中心從事軟件的開(kāi)發(fā)測(cè)試工作。

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
          打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          (2)KVM存儲(chǔ)池與存儲(chǔ)卷,使用virt
          RHCSA 系列(十五):虛擬化基礎(chǔ)和使用KVM 進(jìn)行虛擬機(jī)管理
          KVM使用
          VMware業(yè)務(wù)系統(tǒng)遷移上云方案
          使用virt-p2v把win2003物理機(jī)轉(zhuǎn)換為kvm虛擬機(jī)
          VMware下的Centos7實(shí)踐Kvm虛擬化(通俗易懂)
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服