当前位置: > 虚拟化 Virtualization > Xen >

XEN3动态迁移虚拟机

时间:2016-05-29 22:42来源:linux.it.net.cn 作者:IT
 xen中虚拟机的迁移是指在两台物理主机之间迁移domian,有两种迁移类型:regular and live migration,regular的迁移方法是先中止虚拟机,然后移动虚拟机从一台机器到另一台机器,并且拷贝该虚拟机内存中的东西,然后在目的机器上再次启动它。而 live migration也有相同的逻辑功能,但是却不需要中止虚拟机。

      在live migration(动态迁移)时虚拟机像往常一样活动,用户感觉不到迁移的存在。在动态迁移中,主机必须都运行xen/xend,并且目的主机有足够资源供迁移后的虚拟机使用,两端主机要有相同的体系结构和虚拟化扩展,在迁移时,目前还不支持自动访问远程存储在本地的文件系统,所以,需要管理员选择一种共享存储来确保(SAN/NAS)要迁移的domain的文件系统在远程目的机器上也可以访问,GNBD是个好方法,ISCSI也可以做类似简单的工作。

      当一个虚拟机迁移的时候,他的MAC和IP都会被迁移过去,只有一个问题,那就是动态迁移时两端必须在同一个子网中,如果不在一个子网中,会迁移失败。在迁移时可以使用xm migrate命令进行迁移,如果没有加-live参数,则xend会简单的停止虚拟机,然后拷贝内存镜像到新的机器上去,然后重启,如果domian分配了大量内存,即使在Gbit网络中也比较费时。当添加了-live参数时,xend会保持domian在迁移时继续运行,结果只会导致虚拟机宕机60-300ms左右。

      确保两端的物理机上运行的xen开启了动态迁移选项,因为默认是关闭的,编辑/etc/xen/xend-config.sxp:


(xend-relocation-hosts-allow '')
(xend-relocation-port 8002)
(xend-relocation-address '')
(xend-relocation-server yes)
     然后重启xend
/etc/init.d/xend restart
    因为动态迁移需要共享存储,所以我们使用iscsi来模拟共享存储,创建一个iscsi设备,确保两端的物理机可以使用该设备,在源机器上挂载该设备,使用该设备建立LVM,并把源中要迁移的domian的数据迁移到该iscsi设备上新建的LVM中。

      接着修改源中相关domian的配置文件,把disk的相关内容修改为iscsi的的设备,然后就可以启动该虚拟机,和以前没有区别,只不过修改过后的虚拟机运行在共享存储上面。

      修改目的主机的配置文件,把源主机上的domian的配置文件拷贝到目的主机上进行修改,挂载相关的iscsi设备,使用vgscan扫描VG,然后启动扩展的LVM,vgchange -a y,这时使用 vgdisplay 会发现在源主机中建立的LVM。

     下来开始动态迁移,在源主机上找到要迁移的domian的ID,xm list可以查看,然后使用xm migrate --live ID dest_host,即可进行动态迁移。






还有一种方法是还原迁移

      使用xm save和xm restore进行迁移,xm save后,保存状态的domain会从当前运行列表中删除,把工作中的domian保存到一个磁盘文件的时候,文件没有经过加密,所以需要确保文件安全,在还原时即可以在本机还原也可以在其他xen主机上。

(责任编辑:IT)
------分隔线----------------------------