浅析云场景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资源的竞争;不同硬件设备和系统配置的兼容性也需要进一步优化;此外,迁移过程中的数据一致性和安全性保障,尤其是在复杂的多租户环境下,仍然是需要持续关注和解决的问题。

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

精彩推荐:

相关推荐
Elastic 中国社区官方博客1 小时前
使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack
大数据·linux·服务器·elasticsearch·搜索引擎·信息可视化·debian
pyliumy5 小时前
在基于Arm架构的华为鲲鹏服务器上,针对openEuler 20.03 LTS操作系统, 安装Ansible 和MySQL
服务器·架构·ansible
努力学习的小廉5 小时前
深入了解Linux —— 调试程序
linux·运维·服务器
zsmydz8885 小时前
摩托车PKE感应一键启动智能安全双防护
人工智能·科技·汽车·生活·摩托车一键启动
只做开心事6 小时前
Linux网络之数据链路层协议
linux·服务器·网络
AI学IT6 小时前
(安全防御)旁挂组网双机热备负载分担实验
运维·服务器·网络
已是上好佳6 小时前
介绍一下Qt中的事件过滤
java·服务器·数据库
code monkey.7 小时前
【寻找Linux的奥秘】第一章:基础指令
linux·运维·服务器
@业精于勤荒于嬉7 小时前
将图片存储至阿里云 OSS
前端·阿里云·云计算·oss
罗技1238 小时前
Easysearch 使用 AWS S3 进行快照备份与还原:完整指南及常见错误排查
linux·云计算·aws·es·easysearch