0
0
0
---
qemu新特性—基于micro checkpoint的FT
boh.ricky 发表于 2013年11月04日 23:56 | Hits: 4206
qemu一直没有提供FT特性。从前有个kemari的FT项目,一直游离于主干之外。而且似乎已经废弃很久。曾经试图联络过作者,也袅无音讯。
最近社区邮件列表又出现了一个新的FT项目,似乎很有进入主干的趋势。
实际感受了下,在普通负荷TCP方式下FT的速度还是挺快的。 RDMA方式下速度应该更好。
下边先写下操作的过程,关于原理和代码分析后续再写。
编译
这里是从github上取得的该项目分支。
[root@localhost qemu-mc]# ./configure –target-list=x86_64-softmmu –enable-kvm –enable-rdma –enable-vnc –enable-mc –disable-rbd –disable-xen –disable-fdt –disable-slirp –disable-strip –disable-libusb
[root@localhost qemu-mc]# make clean
[root@localhost qemu-mc]# make -j5
编译问题:
migration-rdma.c缺少头文件”#include <sys/resources.h>”
运行MC方式的FT
- NFS配置
[root@localhost qemu-mc]# mount 186.100.8.170:/data/test/img /data/test/img2 - 运行
从端虚拟机运行
qemu-mc_patch_v1/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -M pc -m 1024 -smp 2 -monitor stdio -localtime -boot c -drive file=/data/test/img/winxp.qcow2,if=virtio,index=0,format=qcow2 -net nic,model=virtio,macaddr=52:54:00:05:11:12 -net tap,ifname=tap1,script=no -vnc :2 -incoming tcp:0:4444
主端虚拟机运行
qemu-mc_patch_v1/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -M pc -m 1024 -smp 2 -monitor stdio -localtime -boot c -drive file=/data/test/img2/winxp.qcow2,if=virtio,index=0,format=qcow2 -net nic,model=virtio,macaddr=52:54:00:05:11:11 -net tap,ifname=tap0,script=no -vnc :1 - 配置IFB(这里需要关联主端虚拟机的网络设备)
$ modprobe ifb numifbs=100 # (or some large number)
$ ip link set up ifb0 # <= corresponds to tap device ‘tap0’
$ tc qdisc add dev tap0 ingress
$ tc filter add dev tap0 parent ffff: proto ip pref 10 u32 match u32 0 0 action mirred egress redirect dev ifb0 - 主端monitor上进行各种FT的设置
打开mc
$ migrate_set_capability x-mc on # disabled by default
关闭net设备的buffer(用于测试,可以在无网络设备的环境下用,一般不必打开)
$ migrate_set_capability mc-net-disable on # buffering activated by default
利用多cpu并行处理ft(建议打开)
$ migrate_set_capability bitworkers on # disabled by default
rdma相关设置:(除非是rdma方式的FT,不必打开)
$ migrate_set_capability rdma-keepalive on # disabled by default
$ migrate_set_capability mc-rdma-copy on # disabled by default - 启动FT
$ migrate -d tcp:127.0.0.1:4444 然后可以在monitor上看到不停地在checkpoint同步 - 手动停止主端,从端很快接管并开始运行
参考资料
http://wiki.qemu.org/Features/MicroCheckpointing
本博客欢迎转发,但请保留原作者(新浪微博:@薄海Ricky;博客地址:http://www.bhgeek.com)信息! 内容系本人学习、研究和总结,如有雷同,实属荣幸!
我要给这篇文章打分:
可以不填写评论, 而只是打分. 如果发表评论, 你可以给的分值是-5到+5, 否则, 你只能评-1, +1两种分数. 你的评论可能需要审核.