xen虚拟化实战系列文章列表
xen虚拟化实战系列(一)之xen虚拟化环境安装
xen虚拟化实战系列(二)之xen虚拟机安装
xen虚拟化实战系列(三)之xen虚拟机复制
xen虚拟化实战系列(四)之xen虚拟机扩展磁盘空间一法
xen虚拟化实战系列(五)之xen虚拟机扩展磁盘空间再一法
xen虚拟化实战系列(六)之xen虚拟机破解密码
xen虚拟化实战系列(七)之xen虚拟机VNC访问配置
xen虚拟化实战系列(八)之xen虚拟机开机自启动配置
xen虚拟化实战系列(九)之xen虚拟机时间配置
xen虚拟化实战系列(十)之xen虚拟机双网卡配置
xen虚拟化实战系列(十一)之xen虚拟机磁盘文件挂载
xen虚拟化实战系列(十二)之xen虚拟机高可用之在线迁移
xen虚拟化实战系列(十三)之xen虚拟机集中管理之convirt
本文是有对我们一个xen虚拟化生产环境将要改造的一个方案而来,在项目上线初期,没有上存储,也没有采用商业化的服务器虚拟化解决方案如VMware ESXi,而是采用的开源的Xen虚拟化平台。xen虚拟机磁盘也都是采用本地磁盘,当时为了项目上线,风险也是很大的,只能充分的做好备份了。现在服务器运行了几年,需要升级改造,但是完全采用新的虚拟化方案来安装,部署,迁移系统,工作量太大,也不太实际,也只有在原有环境上进行改造了。
初步方案是在虚拟化服务器增加HBA卡,用于连接一台现有光纤存储,虚拟化服务器连接同一个存储空间,配置成集群文件系统,并将虚拟机磁盘文件迁移到集群文件系统上, 这样就构成了一个高可用的环境架构,本文就是在这种环境背景下进行的一个环境测试。本文出自:http://koumm.blog.51cto.com
架构图如下:
应用场景如下:
(1) 在虚拟化服务器挂掉的情况下,可以在另一虚拟化服务器上手动启动,减少故障时间,最基本的是保证数据不会丢失。
(2) 可以利用xen虚拟化高可用在线迁移,实现虚拟化服务器计划内停机。
注:为了实现以上方案测试,采用nfs挂载来模拟集群文件系统,实现以上方案与测试。
(1) xen虚拟化服务器node1
操作系统版本 : OEL5.8 x64
开源xen虚拟化 : 自带版本
桥接IP地址1 : 192.168.233.150
桥接IP地址2 : 10.10.10.10
测试虚拟机:test01
桥接IP地址1 : 192.168.233.133
桥接IP地址2 : 10.10.10.11
虚拟磁盘文件位置: /data/test01.img
(2) xen虚拟化服务器node2
操作系统版本 : OEL5.8 x64
开源xen虚拟化 : 自带版本
桥接IP地址1 : 192.168.233.151
桥接IP地址2 : 10.10.10.20
节点2已经按xen虚拟化实战系列(十)之xen虚拟机双网卡配置,配置成了双网桥,这一步也可以不用。
(3) nfs服务器
操作系统版本 : OEL5.8 x64
桥接IP地址1 : 192.168.233.152
桥接IP地址2 : 10.10.10.30
(1) nfs服务配置
启动nfs服务
# chkconfig nfs on
(2) xen node1服务器上
首先关机test01虚拟机,查看到test01虚拟机的磁盘文件是/data/test01.img,这里先将test01.img文件移到其它目录,然后挂载nfs目录到/data目录下。再将test01.img移回来。
挂载nfs目录
将test01.img虚拟磁盘文件移回到/data目录下。
配置/etc/fstab加入自动挂载
# vi /etc/fstab
10.10.10.30:/data /data nfs hard,rw,rsize=32768,wsize=32768 0 0
(3) xen node2服务器上
挂载nfs目录
配置/etc/fstab加入自动挂载
# vi /etc/fstab
10.10.10.30:/data /data nfs hard,rw,rsize=32768,wsize=32768 0 0
原理: 在线迁移法是通过迭代的方式将内存拷贝到目标主机,然后暂停虚拟机100ms以内的时间,这段时间内,将最后修改过的内存与CPU状态发送到目标主机。然后关闭虚拟机,并在目标主机上恢复。
(1) 在xen虚拟主机node2上创建虚拟机配置文件
(2) 修改两虚拟主机xen配置文件
注:node1,node2都要修改,这个是最关键的内容。
18行加上注释
33行取消注释
47行取消注释
60行取消注释,61上加上注释
(3) 分别重启两虚拟主机xend服务
查看虚拟机的IP地址
# xm console test01
Oracle Linux Server release 5.8
Kernel 2.6.18-308.el5xen on an x86_64
test01 login: root
Password:
Last login: Sun Sep 1 00:08:50 on xvc0
[root@test01 ~]#
[root@test01 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:66:FF:31
inet addr:192.168.233.133 Bcast:192.168.233.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3287 (3.2 KiB) TX bytes:2831 (2.7 KiB)
eth1 Link encap:Ethernet HWaddr 00:16:3E:1A:00:01
inet addr:10.10.10.11 Bcast:10.10.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3449 (3.3 KiB) TX bytes:2723 (2.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
[root@test01 ~]#
(2) 准备一个窗口不停的ping test01虚拟机IP
可以看到整个过程比较平稳,就一两个包超过1ms,其它都在1ms以下。网络完全没有中断,整个迁移过程比较快速。
(3) 在node1虚拟主机上操作开始迁移
可以看到test01 xen虚拟机在node1 xen虚拟主机上,并开始执行在线迁移命令。
# xm migrate -l test01 192.168.233.151
下面命令用来查看test01 xen虚拟机在迁移中与迁移后的状态,可以看到test01 xen虚拟机先变成迁移状态。迁移完成后,test01 xen虚拟机在node1 xen虚拟主机列表中消失。已经迁移到node2 xen虚拟主机上。
(3) 在node2虚拟主机上
下面命令用来查看test01 xen虚拟机在迁移中与迁移后的状态,可以看到test01 xen虚拟机在接收迁移状态。迁移完成后,test01 xen虚拟机在node2 xen虚拟主机上已经成功迁移过来。
至此xen虚拟化实战系列(十二)之xen虚拟机高可用之在线迁移文章结束,简单总结如下:对开源xen真是又爱又恨,希望开源xen在CentOS6.X能发展更好。