前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kvm虚拟机的FT(容错)方案

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

作者头像
虚拟化云计算
修改2018-04-13 22:22:15
3K0
修改2018-04-13 22:22:15
举报
文章被收录于专栏:虚拟化云计算虚拟化云计算

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的备机是处于复制主机内存的待激活状态。


关注本公众号,了解更多关于云计算虚拟化的知识。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 虚拟化云计算 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档