书库技术与未来The Design of a Practical System for Fault-Tolerant Virtual Machines
书籍封面

The Design of a Practical System for Fault-Tolerant Virtual Machines

作者 Daniel J. Scales, Mike Nelson, Ganesh Venkitachalam
15.0 分钟

摘要

VMware FT:构建容错虚拟机的实践系统

  • 本文介绍了VMware vSphere 4.0中实现的商用企业级容错虚拟机系统,该系统基于主虚拟机(VM)通过备用虚拟机在另一台服务器上复制执行的方法。
  • 你能获得:了解VMware FT的设计与实践,理解其容错机制、性能表现及与其他方案的对比,为构建高可用性系统提供参考。

核心内容:

1. 基本设计:主备模式与确定性重放

  • 系统采用主备模式,通过确定性重放技术,将主VM的执行过程记录并同步到备VM,确保两者状态一致。
    • 详细解释:
      • 主VM处理所有输入和输出,并将非确定性操作的信息发送到备VM。
      • 备VM重放这些操作,保持与主VM同步,但其输出被丢弃。
      • 通过心跳检测和日志通道监控,系统能检测主备VM的故障。

2. FT协议:输出规则是关键

  • FT协议的核心是“输出规则”,即主VM在备VM确认收到输出操作相关的日志条目之前,不得向外部发送输出。
    • 详细解释:
      • 该规则确保在主VM故障时,备VM接管后能保持与主VM已发送输出的一致性,避免数据丢失。
      • 协议通过日志条目和确认机制,保证了主备VM在执行过程中的同步和数据一致性。

3. 实用实现:启动、管理与优化

  • 启动和重启FT VM:系统利用改进的VMotion功能,快速创建备VM,并无缝恢复故障后的冗余。
    • 详细解释:
      • 管理日志通道:通过缓冲区和流控机制,平衡主备VM的执行速度,避免缓冲区溢出或滞后。
      • 操作FT VM:控制操作在主VM上发起,并通过日志通道同步到备VM,保持配置一致。
      • 磁盘IO实现:解决磁盘IO的非确定性问题,确保数据一致性,并在故障切换时重新发布未完成的IO。
      • 网络IO实现:禁用异步网络优化,减少VM trap和中断,优化网络性能,降低传输延迟。

4. 设计选择:共享磁盘与非共享磁盘

  • 共享磁盘设计:主备VM共享虚拟磁盘,简化故障切换,但需遵循输出规则延迟写入。
    • 详细解释:
      • 非共享磁盘设计:主备VM使用独立磁盘,适用于无法访问共享存储的场景,但需同步磁盘状态。
      • 在非共享磁盘配置中,可能没有共享存储来处理脑裂情况。在这种情况下,系统可以使用一些其他的外部决胜器,例如双方服务器都可以通信的第三方服务器。如果服务器是具有两个以上节点的集群的一部分,系统可以改为使用基于集群成员资格的多数算法。在这种情况下,VM 只有在运行在作为包含大多数原始节点的通信子集群一部分的服务器上时才允许上线。

5. 评估结果:低开销与可扩展性

  • 实验表明,VMware FT对典型应用的性能影响小于10%,日志带宽需求较低,适用于长距离部署。
    • 详细解释:
      • 对于计算密集型应用,FT开销极低;对于IO密集型应用,网络和磁盘IO成为瓶颈。
      • 在网络基准测试中,FT对高速网络传输有一定限制,但仍能实现较高的传输速率。
      • 结论:VMware FT在商品硬件上实现了高效的容错VM,适用于多种应用场景。

问答

Q: 确定性重放技术是什么?

A: 确定性重放是一种记录VM输入和非确定性事件的技术,用于在备VM上精确重现主VM的执行过程,从而保持两者状态同步。

Q: 什么是“输出规则”,它在FT协议中有什么作用?

A: “输出规则”要求主VM在备VM确认收到输出操作相关的日志条目之前,不得向外部发送输出。该规则保证故障切换后备VM的数据一致性。

Q: 共享磁盘和非共享磁盘设计有什么区别?

A: 共享磁盘设计中,主备VM共享同一虚拟磁盘,简化故障切换,但需延迟写入;非共享磁盘设计中,主备VM使用独立磁盘,适用于无法访问共享存储的场景,但需同步磁盘状态。

Q: VMware FT的性能开销如何?

A: VMware FT对典型应用的性能影响小于10%,日志带宽需求较低,适用于长距离部署。

思维导图

目标读者

本文档的目标读者包括系统管理员、虚拟化工程师、云计算架构师以及对容错技术感兴趣的研究人员。阅读本文档需要具备一定的虚拟化技术基础,了解 VMware vSphere 平台的基本概念,并熟悉服务器硬件和网络配置。此外,对于容错系统的设计原则和实现方法有一定的了解将有助于更好地理解本文档的内容。

作者背景

Daniel J. Scales, Mike Nelson, 和 Ganesh Venkitachalam 均为 VMware, Inc 的员工。他们的研究背景集中在虚拟化技术和容错系统的设计与实现上。他们在 VMware 负责开发和优化 vSphere 平台的容错功能,致力于提高虚拟机的可靠性和性能。他们在系统设计、性能分析和实际应用方面拥有丰富的经验,为 VMware 的虚拟化解决方案做出了重要贡献。

历史背景

在服务器虚拟化技术快速发展的背景下,构建高可用性和容错能力成为企业级应用的关键需求。传统的容错方案往往成本高昂且部署复杂,难以满足大规模虚拟化环境的需求。因此,VMware 提出了基于虚拟机的容错解决方案,旨在利用虚拟化技术的优势,在通用硬件平台上实现低成本、易部署的容错系统。该方案的设计目标是提供一种透明的容错机制,使得应用程序无需修改即可在容错虚拟机上运行,从而简化了应用迁移和管理。

章节摘要

音频

Comming Soon...