kvm虚拟化之虚拟机的FT(容错)方案

(文章来自作者维护的社区微信公众号【虚拟化云计算】)
(目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问)
KVM中的FT(fault tolerance),也叫non-stop service。在有些场景下也被称为虚拟机热备。
 
现在qemu-kvm社区出现过的FT方案:
Features/FaultTolerance
Features/MicroCheckpointing
Features/COLO
 
其中COLO已经在qemu2.8版本进入了upstream。目前正在开发完善中。本文根据qemu和kvm社区的资料整理了一下COLO的实现方案。
 
COLO简介
COLO (COarse-grained LOck-stepping)是一种虚拟机的高可用解决方案。当启用的COLO功能后, 主虚拟机(PVM)和备虚拟机(SVM)都会同时处于running 状态。PVM和SVM都可以接收到来自client的网络数据包, 并对数据包做出回应。当PVM和SVM回复的数据包的内容相同, 则PVM回复的数据包会返回给client, 否则会触发checkpoint对PVM和SVM进行同步,然后再将数据包返回给client。当PVM所在的物理机发生宕机时候, SVM可以立即接管, 为client提供服务。
Application-agnostic Non-stop Virtual Machine
(来自01x07-Hongyang_Yang-Status_update_on_KVM-COLO.pdf)
 
qemu的ChangeLog/2.8中支持了COLO
下面是COLO架构图
(来自03x08B-Hailang_Zhang-Status_Update_on_KVM-COLO_FT.pdf)
架构中几个关键组件:
1.HeartBeat:
提供主备节点间的心跳检测。(主节点上发生故障后停止心跳,触发failover模块进行故障转移操作。)
该功能模块在qemu2.11.0版本中还没实现。
 
2.COLO disk Manager:
保持主备虚拟机的磁盘数据一致性,其工作流程如下:
3.Checkpoint/Failover Controller:
实现内存脏页的连续迁移,来保证备虚拟机和主虚拟机的状态一致性。colo lost heartbeat后进行故障转移操作。
 
4.COLO Proxy:
COLO-proxy模块主要是通过比较主备虚拟机发出的网络包来判断是否要触发checkpoint,提高COLO的性能。
其流程图如下:
COLO和MicroCheckpointing的比较:
1.COLO的checkpoint是根据比较主备虚拟机的对外反馈得出的,根据需要checkpoint。而MicroCheckpointing是周期性进行checkpoint的;
2.COLO的主备是并行执行的,而MicroCheckpointing的备机是处于复制主机内存的待激活状态。
 
==============================================================
关注微信公众号【虚拟化云计算】,阅读更多虚拟化云计算知识,纯技术干货更新不停。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值