qemu的不断网动态迁移的试验


需求:
目前有两台服务器
192.168.139.117
192.168.139.83

把117上的一台vm动态迁移到83上,中间不断网,不影响用户使用
假设vm的网络也是一个网段的192.168.139.66,使用相同的dhcp服务
服务器上配置网络:
两台机器都要
systemctl stop NetworkManager
systemctl disable NetworkManager


网络配置为
192.168.139.117:
[root@jslinux network-scripts]# cat ifcfg-br0 
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.139.117
NETMASK=255.255.240.0
GATEWAY=192.168.128.1
DNS1=114.114.114.114
[root@jslinux network-scripts]# cat ifcfg-eth0 
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
[root@jslinux network-scripts]#

##################
192.168.139.83:
[root@mcontroller network-scripts]# cat ifcfg-br0 
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.139.83
NETMASK=255.255.240.0
GATEWAY=192.168.128.1
DNS1=114.114.114.114
[root@mcontroller network-scripts]# cat ifcfg-eth0 
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
[root@mcontroller network-scripts]# 

准备
kernel文件 :bzImage
系统镜像:hda.qcow2   迁移的必须是qcow2等格式,raw不行
如果是raw的hda.img需要转一下:
qemu-img convert -f raw -O qcow2 hda.img hda.qcow2


qemu的启动的网络脚本:
if-up:
#!/bin/sh
ip link set tap1 up   
brctl addif br0 tap1

关闭的脚本:
if-down:
#!/bin/sh
ip link set tap1 down   
brctl delif br0 tap1


在117上qemu启动vm:
/usr/libexec/qemu-kvm -kernel bzImage -drive file=hda.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1"  -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net tap,ifname=tap1,script=./if-up,downscript=./if-down -vnc 0.0.0.0:1


脚本和hda.qcow,bzImage都复制到83上

#####################
进入刚起的vm,执行dhclient获取ip为192.168.139.66
设置一些变量(为了观察内存迁移后是否同步)
export haohao=ning
修改一个文件(为了观察硬盘迁移后是否同步)
echo 117 > /hello.txt


####################################
在83上启动
/usr/libexec/qemu-kvm -kernel bzImage -drive file=hda.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1"  -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net tap,ifname=tap1,script=./if-up,downscript=./if-down -vnc 0.0.0.0:1 -incoming tcp:0:6666


注意多了一个 -incoming tcp:0:6666,其他都一样,准备接受,执行后,vm并没有开始运行

######################################
切换到117上起的vm,ip为192.168.139.66的vm上
ctl+alt 2 切换到monitor模式
(qemu)migrate tcp:192.168.139.83:6666


这个过程观察一直观察网络ping的状况

#############################
发现ping没有明显变化
83上启动的vm
ctl+alt 3  或ctl+alt 1切换到运行的vm上
内存硬盘网络已经为66了

117上的vm已经不可用
达到不影响用户使用的情况把
vm从117迁移到了83上,
好了,117服务器可以下架了

如图:



####################################
需要的基础知识:
vm的网络桥接参考:
http://haoningabc.iteye.com/blog/2306736
基本的动态迁移参考
http://haoningabc.iteye.com/blog/2307304
用qemu建立vm参考:
http://haoningabc.iteye.com/blog/2306941

猜你喜欢

转载自haoningabc.iteye.com/blog/2307806
今日推荐