实时迁移

实时迁移 (live migration)是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移,其逻辑步骤与离线迁移几乎完全一致。不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机运行,当迁移进行到一定阶段,目的主机已经具备了运行系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,服务在目的主机上继续运行。对于服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。在线迁移适用于对服务可用性要求很高的场景。

实验环境:

192.168.1.190 XenServer1
192.168.1.91 XenServer2
192.168.1.202 ISCSI服务器


配置ISCSI服务器;

yum install scsi-target-utils -y

编辑配置文件/etc/tgt/targets.conf

<target iqn.2014-09.com.tuchao:chap1>

        backing-store /dev/sdb

        initiator-address 192.168.1.0/24

</target>

重启tgt服务;

/etc/init.d/tgtd restart


XenServer1与XenServer2保证相同配置,XenServer的配置在上篇文章有详细讲到。这里就不重复了。

我们这里要准备GFS2集群文件系统,两个节点安装所需要的程序包:

  • yum install rgmanager cman -y

  • yum install gfs2-utils -y

  • yum install iscsi-initiator-utils -y


安装libvirt,配置网络桥接;

yum install libvirt -y

service libvirtd start

virsh iface-bridge eth0 xenbr0


来到192.168.1.190安装配置高可用

创建一个集群

  • ccs_tool create gcluster

命令执行成功后,会在/etc/cluster目录下生成一个cluster.conf的文件。

添加节点

  • ccs_tool addnode -n 1 192.168.1.190

  • ccs_tool addnode -n 2 192.168.1.91

将配置文件同步到192.168.1.91

  • scp /etc/cluster/cluster.conf 192.168.1.91:/etc/cluster

两个节点同时启动cman;再启动rgmanager


配置登录ISCSI-Server

iscsiadm -m discovery -t sendtargets -p 192.168.1.202

iscsiadm -m node -T iqn.2014-09.com.tuchao:chap1 -p 192.168.1.202:3260 -l

对共享的iSCSI磁盘分区格式化,然后每个节点重启系统。

格式化/dev/sdc1为gfs2文件系统

命令帮助:

mkfs.gfs2

    -J  //指定日志区域大小

    -j  //日志区域个数

    -p  //指定锁协议

    -t  //指定锁表名称

  • mkfs.gfs2 -j 2 -p lock_dlm -t gcluster:sdc1 /dev/sdc1

wKiom1QenleAvMGFAAH7bUzEOXY599.jpg

修改fstab

UUID="b2a73a0e-37e7-511f-f44c-b0274e763a62" /store gfs2 defaults      0 0

启动服务

service cman start

service rgmanager start

service gfs2 start

wKiom1Qen5zCVAflAAHvID_-V4I494.jpg

迁移环境准备完毕


配置迁移功能,修改配置文件/etc/xen/xend-config.sxp;

修改以下关键几项:

(xend-relocation-server yes)

(xend-relocation-port 8002)

(xend-relocation-ssl no) 

(xend-address '0.0.0.0')

(xend-relocation-address '0.0.0.0')

(xend-relocation-hosts-allow '')

将配置文件同步到节点二,之后两个节点重启xend服务。

scp /etc/xen/xend-config.sxp 192.168.1.91:/etc/xen/

/etc/init.d/xend restart

wKioL1QeqgDRbgbGAAIkqODqWaQ701.jpg

来到节点一将虚拟机配置文件同步到节点二,这时虚拟机的磁盘镜像文件是放在/store上的;

scp test1  192.168.1.91:/etc/xen/

启动虚拟机实例

xm create  test1

我们连上虚拟机,在上面运行一个ping程序,然后执行迁移。

xm migrate test1 192.168.1.91

wKiom1QeqSPSunh9AAG5S1IgRBs718.jpg

我们来到节点二查看

wKioL1Qeqj6Qfj6zAAEn0iKAekg420.jpg

总结一下:

    需要一个共享存储,用来放在虚拟机实例的磁盘镜像文件,两个节点必须挂载到同一个名称路径。

    需要将虚拟机实例的配置文件,同步到另一个节点的相同位置。

    两个节点需要修改/etc/xen/xend-config.sxp配置文件,启动xend服务。


本篇结束,感谢大家阅读,哪里有遗漏还请大家多多指点!