对于安装使用xen虚拟机大家已是很熟悉的操作了,但有些对于xen migrate的操作有的还不太熟悉。此xen高可用技术可保证guest的不间断服务。
下面介绍几种常用的xen Guest域迁移操作,其中主要介绍动态迁移,如文中有不当之处,欢迎拍砖。
一.冷静态迁移,使用此方法需关闭GUEST域。
xm save domain/id CheckpointFile
保存虚拟机状态检查点,检查点中保存着guest配置当前状态信息。
然后拷贝guest域配置文件、镜像、和检查点文件到目标xen server机器。
xm create ?config xx.xml 启动guest域。
恢复检查点 xm restore CheckpointFile
二.Warm Static (Regular) Migration 温静态迁移或定期迁移
这种迁移只是原宿主机上临时的暂停(suspend)guest域无需关机或重启,然后将其内存和进程在目标宿主机上执行恢复(resume)操作。
如题:
xm migrate vmtest 192.168.200.61 #此时guest域已中断服务。
[root@vm61 etc]# ping 192.168.200.40
(已不通,此时guest域已是暂停状态)
PING 192.168.200.40 (192.168.200.40) 56(84) bytes of data.
From 192.168.200.61 icmp_seq=1 Destination Host Unreachable
From 192.168.200.61 icmp_seq=2 Destination Host Unreachable
guest迁移完成后,guest域已正常运行。
[root@vm61 etc]# ping 192.168.200.40
PING 192.168.200.40 (192.168.200.40) 56(84) bytes of data.
64 bytes from 192.168.200.40: icmp_seq=1 ttl=64 time=2.13 ms
— 192.168.200.40 ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.139/2.139/2.139/0.000 ms
[root@vm61 etc]# xm console vmtest
CentOS release 5.8 (Final)
Kernel 2.6.18-308.el5xen on an x86_64
localhost.localdomain login:
三.Live Migration 动态实时迁移
有时为了迁移guest域而中断了系统服务是不合适的。当然最理想是动态迁移只需瞬间而中断系统服务即可迁移到新的物理主机。
以下内容将介绍迁移要求和动态迁移操作。
迁移要求:
1.两个或多个物理主机需打开迁移配置
2.物理主机之间是在互通的同一局域网内
3.物理主机之间需共享存储
4.物理主机之间guest配置文件需相同
5.目标物理主机上的系统资源需满足GUEST域的需求
6.物理主机之间需使用同一版本的XEN
动态迁移操作(server1dom0和server2dom0两台物理主机,xen版本为4.1):
1.两物理主机需要打开/etc/xen/xend-config.sxp 里的以下配置,然后重启xend服务。
(xend-relocation-server yes)
(xend-relocation-port 8002)
(xend-relocation-address ”)
(xend-relocation-hosts-allow ”)
2.设置共享存储
以NFS为例:
在server1dom0上安装nfs server.
*NFS需要安装nfs-utils和portmap(两台物理机都需启动此服务程序)服务。
[root@xm xen]# cat /etc/exports
##nfs配置 可读写 拥有root权限
/mnt 192.168.0.0/16(rw,no_root_squash)
然后启动nfs server:
[root@xm xen]# /etc/init.d/nfs start
启动 NFS
服务:
[确定]
关掉 NFS
配额:
[确定]
启动 NFS
守护进程:
[确定]
启动 NFS
mountd:
[确定]
server2dom0挂载server1dom0 的nfs共享到同一路径:
mount -t nfs 192.168.200.199:/mnt /mnt
3.迁移操作
假设在服务的GUEST配置文件为:
[root@xm xen]# cat vmtest
name = “vmtest”
uuid = “3b5c0632-5645-bf41-0092-49485b3c13a1″
maxmem = 512
memory = 512
vcpus = 1
bootloader = “/usr/bin/pygrub”
on_poweroff = “destroy”
on_reboot = “restart”
on_crash = “restart”
disk = [ "tap:aio:/mnt/vmtest.img,xvda,w" ]
vif = [ "mac=00:16:3e:7c:23:a1,bridge=xenbr0,script=vif-bridge"
]
运行状态:
[root@xm xen]# xm li
Name
ID Mem VCPUs
State Time(s)
Domain-0
0 512 2
r—? 82.1
vmtest
3 512 1
-b—- 4.
迁移命令:
xm migrate vmtest(Guest名称/id) -l 192.168.200.60 (目标物理主机IP)
#等待完成即可。
目标物理主机:
[root@vm60 ~]# xm li
Name
ID Mem VCPUs
State Time(s)
Domain-0
0 1508 2
r—? 1766.2
vmtest
9 512 1
-b—- 3.7
经过以上操作动态迁移就完成了。