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