云硬盘跨存储迁移方案

云硬盘跨存储迁移方案

修订记录

日期

版本

修订说明

修订人

审核人

批准人

2021-06-29

1.0

初稿

卢启涛

目录

1 背景 1

2 实现方案 1

2.1 跨存储冷迁移 1

2.2 跨存储热迁移 1

3 跨存储卷冷迁移步骤 2

背景

业务系统存在虚拟机卷数据跨存储迁移需求,常见场景:

  • 源卷在HDD pool,目的卷在SSD pool,也就是卷属于同一套ceph集群,但是卷所在pool不同。
  • 源卷在ceph,目的卷在FCSAN/IPSAN,这种属于跨存储类型的迁移,也有可能源卷和目的卷属于不同ceph集群。

根据迁移操作对业务系统的影响,虚拟机的迁移一般分为两类:

1、冷迁移(Cold Migration / Non-live Migration)

虚拟机需要先停机,等待与此虚拟机相关的计算和存储等资源迁移完成后,再重新启动。在迁移期间,业务无法访问,只有迁移完成后,业务才能恢复。由于迁移过程中涉及到存储数据的拷贝,如果数据量比较大,会造成停机时间过长且不可控,因此冷迁移仅适用于对系统可用性要求不高的业务。

2、热迁移(Live Migration)

虚拟机在迁移过程中保持运行状态,业务可正常访问,根据虚拟机的存储类型又可分为:基于共享存储的热迁移、块设备的热迁移和基于卷的热迁移等。由于涉及到计算、网络和存储的一体化热迁移,对底层基础设施的要求较高。

实现方案

跨存储冷迁移

可通过cinder retype功能实现,相同后端的retype不在这里描述,以不同类型后端为例说明:

  1. 使用目的卷类型创建一个新卷。
  2. 同时将源卷和目的卷挂载到物理机,得到挂载点地址。
  3. 如果挂载地址为字符串调用dd命令将源卷数据拷贝到目的卷,否则调用driver提供的读写方法进行数据拷贝。
  4. 交换卷id,确保retype后卷id不变,删除源卷。
  5. 如果卷之前有挂载到虚拟机,将目的卷挂载到虚拟机。

跨存储热迁移

目前没有可行方案,libvirt热迁移虚拟机依赖共享存储,如果跨存储会导致虚拟机卷对应的uri不相同,热迁移报错。

VMware通过VMotion实现跨集群热迁移,方案实现较复杂。

跨存储卷冷迁移步骤

以卷所在集群不同为例,前置条件cinder同时对接2套ceph集群

  1. 查询卷类型和后端服务列表,得到A集群对应的卷类型为ceph_hdd,B集群对应卷类型为ceph_hdd2。

cinder type-list

cinder service-list

  1. 在ceph A集群创建一个卷,等待卷创建成功状态变成available。

cinder create --volume-type ceph_hdd2 --name test 1

  1. 登录到A集群查询卷详情。

rbd info pool2/volume-23b01dbf-1668-4791-98a3-76183ae0726c

rbd image 'volume-23b01dbf-1668-4791-98a3-76183ae0726c':

size 1GiB in 256 objects

order 22 (4MiB objects)

block_name_prefix: rbd_data.2758a17399ab7

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

flags:

create_timestamp: Wed Jun 30 16:25:17 2021

  1. 执行retype命令。

cinder retype --migration-policy on-demand test ceph_hdd

  1. 查询卷迁移状态,可以看到卷的migration_status从migrating状态变为success表示迁移成功,如果变为error表示迁移失败。

cinder show 23b01dbf-1668-4791-98a3-76183ae0726c

  1. 再次登录到A集群查询卷返回失败,因为卷已经迁走了。

rbd info pool2/volume-23b01dbf-1668-4791-98a3-76183ae0726c

rbd: error opening image volume-23b01dbf-1668-4791-98a3-76183ae0726c: (2) No such file or directory

  1. 登录到B集群可以正常查询卷详情,说明数据已从A集群迁移到B集群。

rbd info volumes/volume-23b01dbf-1668-4791-98a3-76183ae0726c

rbd image 'volume-23b01dbf-1668-4791-98a3-76183ae0726c':

size 1GiB in 256 objects

order 22 (4MiB objects)

block_name_prefix: rbd_data.d18dbdf3d6ce

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

flags:

create_timestamp: Wed Jun 30 16:27:16 2021

同一集群跨存储池,以及从FCSAN/IPSAN到ceph的互迁步骤类似。

posted @ 2023-04-24 10:45  XU-NING  阅读(218)  评论(0)    收藏  举报