当前位置: 首页 > article >正文

浅析云场景SSD实时迁移技术

在数据中心的运营管理中,负载均衡和系统容错是确保高效稳定运行的关键。SSD实时迁移技术,为解决这些问题提供了创新方案,成为数据中心技术发展的重要驱动力。

图片

以AI训练任务为例,其运行时间长且无需用户频繁交互。数据中心的负载会因不同地区的时区差异而波动,在夜间,部分地区的数据中心负载降低。此时,将AI训练任务迁移至负载较低的数据中心,能有效提升资源利用率,避免资源闲置与过载情况同时出现,实现计算资源的优化分配。

图片

数据中心可能遭遇停机、错误或访问异常等状况。实时迁移技术可使工作负载在出现这些问题时,无缝转移到其他正常的环境中继续运行,极大地减少了停机时间,保障业务连续性。例如,当某数据中心的存储设备出现故障时,运行在其上的虚拟机可通过实时迁移迅速切换到其他数据中心的存储设备,业务几乎不受影响。

实时迁移(Live Migration)的原理是在主机 I/O 操作保持连续的情况下,将数据和运行状态从源端迁移到目标端的过程,旨在不中断业务的前提下,实现存储资源的转移或调整。

图片

NVMe主机托管实时迁移技术:

  • 功能与作用:NVMe主机托管实时迁移通过支持数据中心虚拟机(VMs)迁移,同时增强数据中心维护流程,来解决数据中心管理和安全问题。实时迁移协议允许主机将虚拟机、虚拟机使用的NVMe控制器以及连接到这些控制器的命名空间置于静态状态,然后将虚拟机迁移到另一个NVMe子系统继续正常运行。

  • 安全性优势:迁移过程中暂停控制器使其进入静态状态,数据中心能维持各子系统之间的状态,且虚拟机不知道迁移发生,在数据中心内隐藏迁移过程可让主机在保持迁移能力的同时抵御数据安全问题。

  • 标准化与效率提升:实时迁移提供主机与NVMe子系统间建立通信以实现控制器迁移的必要服务,这是NVMe规范族的必要更新。通过启用标准化的虚拟机迁移方法,NVMe设备以及使用NVMe技术的企业和超大规模数据中心将提高可扩展性和效率。

在SSD层面启用实时迁移(Live Migration),能去除I/O队列中的软件层,减轻主机软件负载,优化存储访问延迟。这不仅提升了存储系统的性能,还降低了系统的复杂性,提高了整体运行效率。比如,在大规模数据读写场景下,更低的访问延迟可显著加快数据传输速度,提升业务响应速度。

关键组件:

  1. 迁移管理主机(MMH)与虚拟机监视器(VMM):VMM承担着MMH的角色,是实时迁移的核心控制单元。它负责接收和处理所有实时迁移命令,协调源主机和目标主机之间的迁移流程,确保虚拟机在迁移过程中不受干扰。在一个数据中心中,多个虚拟机共享一个VMM进行迁移管理,VMM就像交通枢纽的调度员,保障迁移任务有序进行。

图片

  1. 迁移管理控制器(MMC)与可迁移控制器(MC):MMC负责管理迁移过程,在SSD的场景中,主控制器(如PF_0上的Primary Ctlr)作为MMC,监控和控制迁移流程。每个虚拟机对应的辅助控制器(如VF_Y和VF_H上的Secondary Ctlr)则是MC,负责处理虚拟机的I/O请求。在迁移过程中,Primary Ctlr与Secondary Ctlr密切配合,完成数据的复制和状态的迁移。

在基于虚拟机的系统中,一个VMM管理多个虚拟机。以具有SR-IOV虚拟化的SSD为例,PF_0上的Primary Ctlr作为迁移管理控制器,每个虚拟机在VF_Y和VF_H上都有对应的Migratable Controller(Secondary Ctlr)。这种配置下,源主机和目标主机的虚拟机都通过VMM进行迁移操作的协调,同时在迁移前,目标虚拟机可能会有预生成的读写命令,这些命令由VMM管理,确保迁移过程的一致性。

图片

实时迁移流程

(一)预拷贝阶段

  1. 开始日志记录:VMM发送“Track Send”命令并启用“Log User Data Changes”选项,Primary Ctlr开始记录虚拟机辅助控制器上的所有I/O请求。这个过程存在竞争条件,即日志记录开始的时间与记录命令完成的时间可能存在差异。但“Logging Started”状态确保了之前未完成的命令全部完成,之后的命令都能被正确记录。这就好比给数据的变化加上了一个时间戳,确保迁移过程中数据的一致性。

图片

  1. 目标准备:目标主机需要准备好可用的虚拟机资源,并使用标准NVMe命令初始化目标SSD。比如,VMM可以在目标控制器(如Ctlr G)上创建共享命名空间,为接收迁移数据做好准备。

图片

  1. 初始命名空间迁移:有两种迁移方式。Option 1是VMM直接复制整个虚拟机命名空间,但对于稀疏写入的数据效率较低。Option 2更具优势,VMM向Primary Ctlr请求获取LBA状态,Primary Ctlr按照SSD设定的粒度返回结果,只迁移已映射且有效的数据,提高了迁移效率。

图片

图片

  1. 迭代数据复制:在初始迁移后,虚拟机持续对源命名空间进行读写操作,Primary Ctlr持续记录写入并复制到目标SSD。由于复制需要时间,VMM需要不断追赶虚拟机的活动,将数据写入目标辅助控制器的命名空间。对于不具备内存跟踪功能的系统,建议进行全内存复制,以确保数据完整迁移。

图片

(二)暂停拷贝阶段

VMM决定完成迁移时,向Primary Ctlr发送暂停命令。Secondary Ctlr停止获取新命令并完成所有未完成的命令,Primary Ctlr完成暂停命令后向VMM反馈,同时将暂停成功的信息记录在MQ中。VMM随后解析剩余的MQEs,将剩余数据复制到目标Secondary Ctlr的命名空间。此时,源SSD需要准备好应对可能的恢复命令,若未恢复,Secondary Ctlr可能会被重置。

图片

(三)后拷贝阶段

VMM从MQ解析获取最终数据并进行复制,迁移控制器状态,如向目标控制器发送恢复命令(Resume Ctlr Y sent to Ctlr X等)。源VMM清理并重置源控制器和命名空间。从SSD的角度看,迁移完成后系统恢复正常的NVMe操作流程。

图片

SSD实时迁移技术在数据中心的高可用性、资源优化等方面具有广阔的应用前景。在云计算领域,它可以实现虚拟机在不同物理服务器之间的无缝迁移,支持动态资源分配和弹性计算服务;在企业级存储系统中,保障业务连续性,减少因硬件维护或故障导致的停机时间。

然而,该技术也面临一些挑战。在大规模数据中心环境中,多个迁移任务同时进行可能导致网络带宽和存储I/O资源的竞争;不同硬件设备和系统配置的兼容性也需要进一步优化;此外,迁移过程中的数据一致性和安全性保障,尤其是在复杂的多租户环境下,仍然是需要持续关注和解决的问题。

如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 学术前沿|专为CXL SSD设计的文件系统

  • 2025伊始,PCIe 7.0的脚步更近了

  • 存储随笔2024年度技术分享总结

  • 浅析下一代NAND接口新特性SCA

  • 2025年CXL强势启航:开启内存扩展新时代

  • PCIe SSD在温变环境的稳健性技术剖析

  • DWPD指标:为何不再适用于大容量SSD?

  • 突破内存墙:DRAM的过去、现在与未来

  • E1.S接口如何解决SSD过热问题?

  • ZNS SSD是不是持久缓存的理想选择?

  • 存储正式迈入超大容量SSD时代!

  • FMS 2024: 带来哪些存储技术亮点?

  • IEEE报告解读:存储技术发展趋势分析

  • PCIe P2P DMA全景解读

  • 深度解读NVMe计算存储协议

  • 浅析不同NAND架构的差异与影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!


http://www.kler.cn/a/518351.html

相关文章:

  • FFmpeg 头文件完美翻译之 libavcodec 模块
  • 利用Qt5.15.2编写Android程序时遇到的问题及解决方法
  • 【unity游戏开发之InputSystem——02】InputAction的使用介绍(基于unity6开发介绍)
  • 笔试-二维数组2
  • React和Vue有什么区别,如何选择?
  • 数据结构(四) B树/跳表
  • 【Linux:序列化和反序列化】
  • 【vLLM 学习】使用 OpenVINO 安装
  • uniapp下拉菜单
  • reactor框架使用时,数据流请求流程
  • 前端性能优化 — 保姆级 Performance 工具使用指南
  • python生成图片和pdf,快速
  • 【Uniapp-Vue3】图片lazy-load懒加载
  • Alfresco Content Services docker自动化部署操作
  • flatten-maven-plugin 统一版本管理插件
  • 大厂案例——腾讯蓝鲸DevOps类应用的设计与实践
  • Unity URP 获取/设置 Light-Indirect Multiplier
  • 考研机试题:打印日期
  • 健康AI应用的逆袭:如何用“死亡时钟”撬动用户增长和媒体关注,实现应用榜快速排名第六
  • 【数据结构】_不带头非循环单向链表
  • 安全扫描Django项目解决存在敏感信息常见问题
  • redis主从集群中的哨兵机制
  • 探索 Web3 技术:如何推动数字身份的自主管理
  • 第4章 神经网络【1】——损失函数
  • css-设置元素的溢出行为为可见overflow: visible;
  • SpringBoot集成Flink-CDC,实现对数据库数据的监听