如何在迁移过程中更换存储资源池

简介: 在一个云迁移项目中,用户希望将系统盘存储于SATA资源池,而将数据盘全部存储于SAS资源池内。

在一个云迁移项目中,用户希望将系统盘存储于SATA资源池,而将数据盘全部存储于SAS资源池内,由于最初没有合理的就存储资源池类型进行规划,而割接的时间点又迫在眉睫,重新同步数据不现实。最终,通过云平台侧和HyperMotion迁移工具团队的共同努力,找到了最佳方案,满足了客户需求,也为相关需求提供了最佳实践。

项目现状与需求

在某政务云项目中,HyperMotion需要将用户原有运行在物理机、Xen、VMware、KVM上的多种操作系统迁移至目标云平台中。用户多套业务系统分布在89台主机中,总磁盘数量178块,分配数据量为58TB,实际使用量为23TB。目标云平台基于OpenStack技术构建,底层存储使用Ceph,分为SATA和SAS两个不同性能的存储池。由于在前期同步时,全部的资源都同步到了SATA池中。

通过HyperMotion云端仿真环境构建能力,用户在验证业务系统过程中,发现运行在SATA资源池内的主机运行过慢,所以希望将数据盘移动至SAS资源池。但是由于原有割接计划的安排,重新同步数据显然是不可能的,所以希望在正式割接完成前,对资源池进行切换。

解决方案

经过初步讨论,大概确定了三种不同的解决方案:

方案一:启动后变更磁盘类型

这种方式是在系统启动后,将数据盘从底层由SATA资源池复制到SAS资源池,从而实现项目需求。但是这种方式有一个明显的硬伤,就是会对割接时间(RTO)造成较大的影响,跨资源池的拷贝速度无疑会耗占很长的时间,虽然这种方式是最稳妥的,但是不符合项目进度的要求。

方案二:增量同步至SAS资源池

这种方式较为复杂,整体的时序图如下图所示。核心思路是将现有正在用于同步的SATA盘,使用Ceph层面的增量方式复制到SAS资源池。在最终启动过程中,直接使用SAS资源池的完成启动。这种方式是对数据流影响最小,但是需要进行一些针对性的定制开发,例如:需要实现Ceph层面的增量同步、以及在启动过程中,让HyperMotion使用SAS资源池的数据盘等。这种方式将耗时的数据同步仍然在同步阶段完成,避免了在割接阶段对项目进度的影响。

image.png

方案三:直接修改卷类型

这种方式直接将目前用于数据同步的SATA卷通过底层同步至SAS资源池,而在cinder中不改变原有的卷id。这种方式对整个迁移流程影响最小,但是可能对源端已经同步的数据造成影响,所以需要非常慎重的进行前期测试。

实施过程

最终,经过云平台和HyperMotion团队的共同讨论及联合测试,最终确定采用方案三作为首选方案,而方案二则作为备选方案。

1、筛选需要切换类型的卷

首先,需要区分所有需要转换资源池的数据盘,这些信息直接可以从HyperMotion现有的资源池中获取。同时,获取这些卷所对应的云存储网关。为了数据完整性,在切换过程中,先暂停源端数据同步并关闭存储网关所在的虚拟机并进行卸载操作。

2、修改卷类型

OpenStack Cinder中提供了一个retype命令,用于修改卷类型,底层会调用存储底层命令实现卷之间的拷贝,例如:在Ceph中就是直接调用RBD相关命令完成复制工作。

image.png

但是在修改之前有两个前提条件:

  • 操作的对象卷不能为挂载状态,所以在上述步骤中,我们需要将卷先进行卸载
  • 操作的对象卷不能有依赖的快照资源,由于之前已经将所有的业务系统在云平台进行了演练,导致底层存在依赖链,必须要断链后才能删除快照,这里使用了rbd flatten命令进行解链操作
rbd --pool {pool-name} flatten --image {image-name}
rbd flatten {pool-name}/{image-name}

完成以上配置后,通过脚本批量的对卷类型进行修改,修改后,卷的ID信息仍然保持不变。

3、重新挂载验证

将修改后的卷,按照之前的归属关系,重新挂载回云存储网关,重新开机。此时由于卷类型已经改变,需要在HyperMotion中修改卷类型,以保证下次接口调用的正确性。完成后,继续进行增量同步,一切恢复正常。通过迁移演练功能,在云平台进行割接前构建仿真环境,经验证数据完整,且能够继续增量,业务系统运行正常,验证方案成功。

总结与产品需求思考

由于HyperMotion在同步数据时,云存储网关可以实现多对一的能力,所以在实际处理过程中相对比较集中,不容易出现错误。通过构建“仿真”环境,在完成相关更换卷类型后,从业务层面进行验证,保证数据完整性和安全性。

目前HyperMotion已经在前期规划阶段提供了功能,支持将系统盘和数据盘分别同步到不同的资源池内,这样就避免了在后期切换资源池的情况发生。目前在同步阶段切换卷类型的需求还不普遍,但是基于HyperMotion与云平台的API深度对接的方式,可以在后期直接利用retype接口自动化完成相关的切换动作。

目录
相关文章
|
6月前
|
消息中间件 存储 关系型数据库
PolarDB产品使用问题之查询归档后的表,是否会占用当前实例负载资源
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之扩展实例节点规格时,对读写有什么影响
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
资源调度 关系型数据库 MySQL
资源池、虚拟机、集群的关系
资源池、虚拟机、集群的关系
|
存储 弹性计算 Kubernetes
闲置资源优化,轻松检查集群中的空闲成本
闲置资源优化,轻松检查集群中的空闲成本
|
运维 监控 Kubernetes
EKS自动扩容-方式一:ASG负载检测自动扩容功能
EKS自动扩容-方式一:ASG负载检测自动扩容功能
483 0
EKS自动扩容-方式一:ASG负载检测自动扩容功能
|
Kubernetes 网络安全 调度
关于K8s中工作节点扩容、隔离、恢复的一些笔记
写在前面 分享一些K8s中Node扩容、隔离、恢复的笔记 博文主要是通过 kubeadm做节点扩容的一个Demo 理解不足小伙伴帮忙指正
340 0
|
弹性计算 Kubernetes Linux
阿里云注册集群—混合集群-创建节点池并扩容
注册集群弹性节点池用于管理一组线上节点资源,您可以通过节点池为您的线下集群扩容线上ECS节点。本文主要介绍如何创建注册集群弹性节点池。
812 0
阿里云注册集群—混合集群-创建节点池并扩容
|
存储 弹性计算 缓存
阿里云共享标准型S6服务器规格配置性能应用环境详细介绍
阿里云共享标准型S6服务器是阿里云推出的最新一代共享型云服务器实例。
1681 0
阿里云共享标准型S6服务器规格配置性能应用环境详细介绍
|
弹性计算 测试技术 API
专有宿主机如何实现“资源池”管理——集群管理能力升级
专有宿主机发布自动部署功能,提高集群管理运维能力
3564 0