全文概览
在当今快速发展的云计算和虚拟化技术环境中,主机在线迁移成为了确保系统高可用性和资源优化的重要手段。随着企业对数据处理能力和灵活性的需求不断增加,如何在不中断服务的情况下高效地迁移虚拟机(VM)成为了一个亟待解决的挑战。本文围绕主机侧在线迁移的开放生态系统,深入探讨了迁移管理的关键问题及其解决方案。
- 开放生态的挑战:
- 迁移管理宿主集成的问题,支持两种方式:pass-through 和 mediation。
- Pass-through 架构允许虚拟机直接访问底层硬件,提供高性能和低延迟,但对硬件支持要求高。
- Mediation 架构通过Hypervisor调解I/O请求,提供灵活性和安全性,但会引入性能开销。
- 实践案例:
- 微软:实时迁移的必要性,确保虚拟机在硬件故障和负载均衡问题下的持续运行。
- 谷歌:展示了远程存储的使用场景,强调内存和状态迁移的协调。
- 英伟达:介绍VFIO模式在高性能计算中的应用,强调低延迟和高带宽的优势。
阅读收获
- 理解主机侧在线迁移的基本概念及其在开放生态中的重要性。
- 掌握pass-through和mediation两种架构的优缺点及适用场景。
- 学习到不同公司的实践案例,了解如何在实际应用中实现高效的在线迁移。
- 认识到实时迁移在确保虚拟机稳定性和性能方面的重要性。
提纲
分享主要分为两个部分,
- 第一部分,由 Samsung 主持讨论 主机在线迁移开放生态需要聚焦的问题;
- 第二部分,由微软、谷歌、英伟达 分享实践案例
L1-开放生态的挑战
实现主机侧迁移管理
在开放生态系统中,迁移管理宿主集成的问题,需要支持 pass-through 或 mediation 两种方式,具体取决于是否允许直接访问虚拟机资源,还是需要通过虚拟化技术进行调解或拦截。
两者的主要差异:
1. Pass-through 架构
- 定义在此架构中,虚拟机(VM)直接访问底层硬件(如 NVMe SSD),并且不经过 Hypervisor 的干预。
- 特点
- 高性能由于数据直接从虚拟机到硬件,不经过任何虚拟化层的中介或调解,性能损失最小。
- 简单直接不需要过多的虚拟化技术或复杂的配置,直接允许虚拟机操作底层存储。
- 对硬件支持要求高必须确保硬件支持 PCI pass-through 或其他类似技术,且需要 Hypervisor 能够管理这些资源。
- 数据迁移中的应用
- 在数据迁移时,由于虚拟机直接控制存储设备,迁移过程的延迟较小。
- 对于需要频繁和高效存取数据的工作负载(如数据库或高性能计算任务),pass-through 更为合适,因为它能够提供更高的吞吐量和较低的延迟。
2. Mediation 架构
- 定义在此架构中,虚拟机的访问路径被 Hypervisor 所调解或拦截,虚拟机与底层存储设备之间的所有 I/O 请求都会通过 Hypervisor。
- 特点
- 灵活性高由于 Hypervisor 介入,可以对存储资源进行更精细的管理、控制和调度。
- 安全性和隔离性强由于 Hypervisor 控制了 I/O 操作,它可以确保虚拟机之间的资源隔离和安全性。
- 性能开销与 pass-through 不同,mediation 会引入一定的性能开销,因为每个 I/O 请求都必须经过 Hypervisor 进行处理。
- 数据迁移中的应用
- 在数据迁移时,Hypervisor 可以管理和调节虚拟机的存储访问,保证迁移的顺利进行,特别是当虚拟机间需要共享存储或在不同存储之间迁移时,mediation 提供了更好的控制。
- 对于需要高安全性、隔离性或灵活调度的工作负载,mediation 是更合适的选择,但会有一定的性能损失。
数据追踪与设备虚拟化
图描述了在开放生态系统中需要解决的两个关键问题:
- Dirty Tracking这涉及数据变化追踪的管理,可能由 Translation Agent 或 Device 来协助。
- NVMe 控制器和 PCIe 功能虚拟化这包括处理不同代际或跨厂商兼容性的问题,以及对主机控制的权限限制。如果设备是 mediation(中介),这些任务可以在宿主机软件中完成,反之则可能由硬件设备本身处理。
L2- 1 微软在线迁移案例-VM支持
在线迁移的必要性
图解释了为什么使用实时迁移(Live Migration)。具体理由包括:
- 客户希望他们的虚拟机(VM)能够长时间运行且不受中断。
- 尽管服务器节点通常非常可靠,但仍然存在一些复杂性和潜在的问题,如硬件故障(包括即时和可预测的故障)、固件更新(安全性、漏洞修复和新功能)以及资源耗尽和负载均衡问题。
- 实时迁移可以在硬件不完美的情况下,仍然为虚拟机提供稳健的支持,帮助解决这些问题。
NVMe 设备侧实时迁移的优势
NVMe® 实时迁移 的一些关键优势:
- 统一标准为多个 CSP(云服务提供商)使用提供了一个标准,减少了厂商的工作量,因为这意味着可以使用统一的固件(FW)和减少验证工作。
- 安全分离允许宿主控制器和虚拟机控制器(例如 MPF 和 SR-IOV)之间的安全分离,增强了隔离性和安全性。
- 独立的加密和清理功能支持加密和清理操作的独立控制,确保数据的安全性和合规性。
- 调试能力允许宿主控制器访问遥测数据(telemetry),帮助进行故障排查和调试。
L2-2 Google 案例:远程/本地存储
远程存储
图展示了一个 远程存储的使用场景,其中两个计算节点(Compute Node A 和 Compute Node B)通过 pass-through 连接到各自的 NVMe 设备,支持内存迁移和状态迁移。图中的 DPU 负责协调内存和状态迁移过程。
这个架构突出了 远程存储 中的数据迁移和状态迁移机制,适用于需要高效管理计算资源和存储的场景,确保 VM 在不同计算节点之间的顺利迁移。
在线迁移在Google的应用场景
- Google Compute Engine (GCE):
- 主要关注控制器在管理队列上的展示。
- 强调敌对和不可信工作负载的隔离。
- 关注控制器的调试能力和遥测功能,以便提供更好的监控和排查。
- Internal:
- 提到信任根和加密的使用,确保系统安全。
- 强调通过 "左移"(Left shift)缩短市场时间,即尽早介入并减少开发迭代,从而提高效率。
- 通过揭示需求和验证步骤,减少开发过程中的反复调整。
L2-3 英伟达案例:VFIO模式
VFIO 场景
图解释了为何在虚拟机中使用 NVMe Express® 配合 虚拟功能 I/O (VFIO 模式):
- 高性能 I/O当虚拟机配置为需要最高性能时,通常会使用直接设备访问,这样可以实现最佳的 I/O 性能。
- 低延迟和高带宽从设备和宿主机的角度来看,VFIO 模式使虚拟机充当用户空间驱动程序,这带来了显著的低延迟和更高的带宽优势。
为何在虚拟机中使用 NVMe Express® 配合 VFIO 模式,尤其是在高性能计算领域:
- 低开销和直接设备访问高性能计算领域的应用能够通过低开销、直接的设备访问来提高效率,减少中间层带来的延迟。
- 应用实例包括网络适配器(通常是非 TCP/IP 基础的)和计算加速器,它们能够通过 VFIO 模式直接访问硬件,提升性能。
- NVMe 协议NVMe 协议特别为高性能存储设计,能够使用户从存储设备中获得最大的性能。
VFIO 和 SR-IOV 技术有什么区别?
1. VFIO (Virtual Function I/O)
- 定义VFIO 是一种驱动程序架构,用于允许虚拟机直接访问物理设备,通常通过 PCIe 设备的 Passthrough 方式。
- 工作原理通过 VFIO,虚拟机能够直接访问宿主机上的硬件资源,例如网络适配器或 NVMe 存储,而无需虚拟化层干预。VFIO 模式使虚拟机变成一个用户空间驱动程序,直接与设备通信,从而实现低延迟和高带宽。
2. SR-IOV (Single Root I/O Virtualization)
- 定义SR-IOV 是一种硬件级别的虚拟化技术,用于通过硬件对 I/O 资源进行虚拟化,使得多个虚拟机可以共享同一物理设备。
- 工作原理SR-IOV 允许一个物理设备(如网络适配器)通过硬件创建多个虚拟功能(VFs,Virtual Functions)。每个虚拟机可以直接访问一个虚拟功能,从而实现高效的资源共享。这些虚拟功能独立于物理设备操作,可以通过 I/O 请求直接访问设备。
主要区别总结:
- 虚拟化方式VFIO 是通过 PCIe Passthrough 将物理设备直接提供给虚拟机,而 SR-IOV 则通过硬件提供多个虚拟功能来支持多个虚拟机共享同一设备。
- 性能SR-IOV 在多个虚拟机共享硬件时通常能提供更好的性能,因为它是硬件级虚拟化,减少了虚拟化开销;而 VFIO 是直接访问设备,性能较高,但每个虚拟机只能使用独立的物理设备。
- 资源共享SR-IOV 可以实现多个虚拟机共享同一物理设备的虚拟功能,而 VFIO 通常每个虚拟机需要独占一个物理设备。
- 适用场景:VFIO 更适用于对单一虚拟机要求极高性能的场景,而 SR-IOV 更适用于需要多个虚拟机共享设备的场景,尤其是网络和存储虚拟化。
图讨论了 VFIO NVM Express® 实时迁移 的实现过程:
- 支持实时迁移包括创建 vfio-nvme 实现,该实现支持 VFIO 实时迁移的有限状态机 (FSM)。
- NVM Express® 协议的支持协议支持确保能够执行由 VFIO FSM 发送的后续命令,从而支持完整的实时迁移过程。
简单来说,该方案涉及通过 NVM Express 协议与 VFIO FSM 配合,确保能够在虚拟机迁移时执行必要的命令,以便迁移硬件资源并保持高效性能。
Cite
更多关于 NVMe 支持的数据在线迁移文章可参考阅读:
- Samsung:支持在线迁移的SSD
- 该文章探讨了跨数据中心的数据迁移动机和优势,强调了实时迁移技术在数据中心和SSD存储系统中的应用。它详细介绍了迁移工作流的各个阶段,包括预复制、暂停和复制、后复制阶段,提供了对数据在线迁移的深刻理解。
- 刨根问底:NVMe 从哪里来,到哪里去?
- 这篇文章深入分析了NVMe技术的发展现状和未来规划,特别提到了NVMe在数据迁移和支持新兴技术方面的增强特性。它为理解NVMe设备在数据迁移中的应用提供了必要的技术背景。