专栏首页虚拟化云计算kvm虚拟机的FT(容错)方案

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

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


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

本文分享自微信公众号 - 虚拟化云计算(openstack_openstack)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用curl调试openstack的api

    访问openstack的API之前,用户使用用户名和密码向keystone进行认证。在通过keystone认证后,keystone会在返回数据中包含一个Serv...

    虚拟化云计算
  • 硬件辅助IO虚拟化之设备透传

    IO虚拟化实现的方式有很多种,有软件模拟、半虚拟化、设备直接分配、单根IO虚拟化。在《说一说虚拟化绕不开的io半虚拟化》一文中介绍了io的全虚拟化和半虚拟化。下...

    虚拟化云计算
  • guestfs这么强大你知道吗

    libguestfs 是Redhat开源的一组工具集,主要用来访问和修改虚拟机的磁盘。其功能非常强大,我们常用的监控虚拟机磁盘使用率、P2V、V2V、备份克隆虚...

    虚拟化云计算
  • 让GridView中CheckBox列支持FireFox

    在Asp.net中,可以通过模板列,在Gridview中实现CheckBox列的实现,相关的代码并不复杂,你可以参考这里,我抽取的部分代码如下: <script...

    Jianbo
  • 程序的编译、链接、装载与运行

    在Linux操作系统中,一段C程序从被写下到最终被CPU执行,要经过一段漫长而又复杂的过程。下图展示了这个过程

    shengjk1
  • Gradle 如何打包 Spring Boot 可执行 JAR

    如何在 Gradle 中配置一个项目可以打包为 Spring Boot 可执行 Jar?

    HoneyMoose
  • Gradle 如何打包 Spring Boot 可执行 JAR

    如何在 Gradle 中配置一个项目可以打包为 Spring Boot 可执行 Jar?

    HoneyMoose
  • 《数学之美》读后感:看数学之美,悟技术之道

      记得几年前看完了《浪潮之巅》之后,便知道了吴军老师还有另外一本非常出名的著作《数学之美》,但是一直没有列入计划阅读。直到2016年我看完了《硅谷之谜》以及《...

    Edison Zhou
  • 工程师入门速成大法:15幅结构动图看懂机械原理

    来自越南的设计师Nguyen Duc Thang使用Inventor绘制了经典的机械结构,并将其制作为动态仿真视频,这些机械结构有利于大家直观的了解机械。 1、...

    机器人网
  • 常见算法面试题

    这几天在网上看到一篇关于算法面试题的博客,归纳的很好,有不少经典的题目,大部分来自《编程珠玑》、《编程之美》、《代码之美》三本书。这里给出书上的解答以及一些思考...

    后端技术探索

扫码关注云+社区

领取腾讯云代金券