Xen-to-KVM虛擬機(jī)遷移指南
Red Hat Enterprise Linux 6不支持Xen虛擬機(jī)。如果用戶升級(jí)到這個(gè)測(cè)試版操作系統(tǒng),需要同時(shí)完成Xen虛擬機(jī)到KVM平臺(tái)的遷移。
紅帽公司正在研發(fā)virt-v2v工具,用于幫助用戶快速實(shí)現(xiàn)Xen-to-KVM的遷移。在這之前,只能手動(dòng)進(jìn)行。本文描述了其遷移過程及原理,請(qǐng)注意:這些方法不適用那些害怕使用Linux命令行的人員。(參閱51CT0相關(guān)文章:虛擬機(jī)在線遷移有何好處?)
準(zhǔn)備Xen-to-KVM遷移的guest服務(wù)器
***步的重點(diǎn)是配置Xen-to-KVM虛擬機(jī)遷移的Xen guest服務(wù)器。您需要在控制臺(tái)升級(jí)reference,因?yàn)閄en平臺(tái)使用xvc0設(shè)備,而KVM虛擬機(jī)是ttyS0設(shè)備。如下的一些文件會(huì)跟該設(shè)備相關(guān):
● /etc/inittab
● /etc/securetty
● /boot/grub/grub.conf
定義跟設(shè)備相關(guān)的文件,并進(jìn)行對(duì)應(yīng)的更改。下一步是配置虛擬機(jī)磁盤設(shè)備,包括如下兩個(gè)文件:
● /etc/fstab
● /boot/grub/device.map
如果您要使用虛擬機(jī)virtio驅(qū)動(dòng)程序,把設(shè)備從Xenc磁盤/dev/xvda修改為KVM磁盤/dev/vda 。反之,則修改為另外一種KVM磁盤/dev/had。(在/etc/fstab中修改磁盤的操作并非必須,只有在沒有設(shè)置虛擬機(jī)使用磁盤卷標(biāo)的情況下才需要。但是我們?nèi)匀唤ㄗh修改/boot/grub/device.map中的設(shè)備)
接下來需要修改內(nèi)核。Xen使用了特殊的Xen內(nèi)核,KVM則需要修改為默認(rèn)的KVM內(nèi)核。首先,通過Yum安裝命令安裝默認(rèn)的內(nèi)核。然后升級(jí)包含了啟動(dòng)內(nèi)核所需驅(qū)動(dòng)在內(nèi)的initrd系統(tǒng)。通過如下命令:
mkinitrd -v -f --with=virtio_pci --builtin=xenblk /boot/nameoftheinitrd kernel-version
在/boot中可以找到initrd系統(tǒng)的真實(shí)名稱,通過uname –r命令獲得內(nèi)核的版本。
通過在文件中包含DEFAULTKERNEL=kernel行,來確保/etc/sysconfig/kernel文件已經(jīng)鏈接到新的內(nèi)核。
***,通過virtio驅(qū)動(dòng)來確保KVM虛擬機(jī)平臺(tái)可以獲得***的性能。通過在/etc/modprobe.conf中添加如下兩行命令,可以在啟動(dòng)虛擬機(jī)時(shí)自動(dòng)加載這些驅(qū)動(dòng):
alias scsi_hostadapter virtio_blk
alias eth0 virtio_net
#p#
準(zhǔn)備Xen-to-KVM遷移的host主機(jī)
完成Xen-to-KVM遷移guest主機(jī)的準(zhǔn)備工作之后,接下來配置host主機(jī)。首先,安裝默認(rèn)內(nèi)核并在/etc/sysconfig/kernel文件中引用。請(qǐng)注意Security-Enhanced Linux,如果使用邏輯卷作為后端存儲(chǔ)設(shè)備,可能會(huì)導(dǎo)致KVM出問題。使用setenforce 0命令可以避免這種情況。
下一步是搭建網(wǎng)橋,使得Xen虛擬機(jī)可以訪問物理網(wǎng)絡(luò)連接。創(chuàng)建包含如下命令行在內(nèi)的/etc/sysconfig/network-scripts/ifcfg-br0文件
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
通過創(chuàng)建包含如下內(nèi)容的/etc/sysconfig/network-scripts/ifcfg-eth0配置文件,實(shí)現(xiàn)把網(wǎng)橋連接到eth0網(wǎng)卡適配器:
DEVICE=eth0
HWADDR=MAC address of the hardware eth0 card
BRIDGE=br0
ONBOOT=yes
完成這些操作后我們重啟host服務(wù)器后就會(huì)調(diào)用新的內(nèi)核。大部分Xen-to-KVM虛擬機(jī)遷移工作宣告完成。還有***兩個(gè)重要步驟:在重啟后,為剛才修改過的KVM虛擬機(jī)創(chuàng)建新的配置文件。使用virt-manager終端來定義guest服務(wù)器如下選項(xiàng):
● 你希望使用的guest服務(wù)器名稱
● guest服務(wù)器使用的CPU架構(gòu)
● OS類型和版本
● Xen虛擬機(jī)使用的后端存儲(chǔ)類型
● 網(wǎng)絡(luò)配置,以及
● 內(nèi)存數(shù)量和CPU核心數(shù)量
不要在guest服務(wù)器上運(yùn)行新安裝程序,這會(huì)覆蓋對(duì)Xen虛擬機(jī)做的所有配置工作。
創(chuàng)建了新的KVM虛擬機(jī)配置文件后,使用virsh編輯命令配置磁盤屬性。找到如下所示用于定義活動(dòng)的主磁盤設(shè)備的代碼:
disk type='block' device='disk'
source dev='/dev/vol0/lv.server'/
target dev='hda' bus='ide'/
/disk
修改target相關(guān)內(nèi)容實(shí)現(xiàn)磁盤對(duì)virtio驅(qū)動(dòng)的調(diào)用:
target dev='vda' bus='virtio'/
現(xiàn)在我們已經(jīng)獲得一個(gè)完整的KVM虛擬機(jī)。
【編輯推薦】