KVM虚拟机转化为Xen虚拟机

将虚拟机有KVM迁移到Xen的关键是替换掉原先的不带Xen补丁的内核,其次是选择较为合适的grub(较老版本的Xen不支持grub2)。完成以上的两步后,将KVM虚拟机的镜像做成Xen镜像,然后配以Xen虚拟机的配置文件,就能将KVM的虚拟机转化为Xen下的虚拟机了。

安装Xen补丁的内核(以debian 6.0 为例)
安装xen内核

#apt-get install  linux-image-2.6.32-5-xen-amd64 xen-linux-system-2.6.32-5-xen-amd64

安装完成后,会在/boot下生成相应的系统内核文件

#ls

 

config-2.6.32-5-amd64                           System.map-2.6.32-5-amd64         vmlinuz-2.6.32-5-xen-amd64

config-2.6.32-5-xen-amd64  initrd.img-2.6.32-5-amd64          System.map-2.6.32-5-xen-amd64  xen-4.0-amd64.gz

grub                           initrd.img-2.6.32-5-xen-amd64  vmlinuz-2.6.32-5-amd64

 

卸载grub2安装grub-lagecy
备份grub2

#mv /boot/grub /boot/grub.bak

卸载grub2

#apt-get --purge remove grub-pc  grub-common

安装grub-legacy

#apt-get install grub-legacy

重新生成grub

#grub-install /dev/vda

#update-grub

 

将虚拟机的镜像文件进行转化
转化的过程较为简单,最土的办法就是整个虚拟机的文件全部拷贝。较为高级的办法是将虚拟机的镜像文件做快照,然后将快照中的文件拷贝到Xen虚拟化环境中去。

 

修改虚拟机的grub和fstab
修改grub中 root项:

default         0

timeout         5

 

title           Debian

root            (hd0,0)

kernel          /boot/vmlinuz-2.6.32-5-xen-amd64 root=/dev/xvda2 ro

initrd          /boot/initrd.img-2.6.32-5-xen-amd64

 

修改/etc/fstab成如下的形式:

# /etc/fstab: static file system information.

#

# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc            /proc           proc    defaults        0       0

/dev/xvda1 none swap sw 0 0

/dev/xvda2 / ext3 noatime,nodiratime,errors=remount-ro 0 1

最后检查系统的其它配置没有问题后就能够利用配置文件系统虚拟机了

依照同样的思路也可以将Xen的虚拟机转化为KVM平台下的虚拟机

相关推荐