Ceph集群冷迁移咨询:满足镜像随时启动、无中间集群要求
Ceph集群冷迁移实现方案(满足镜像可随时启动、无中间集群要求)
一、迁移前准备(需原集群完全控制权)
- 停止所有Ceph服务及客户端IO:先停掉mds、rgw等服务,再停osd,最后停mon,确保集群处于完全静止状态,避免数据不一致。
- 导出完整集群元数据:
- 导出mon节点信息:
ceph mon dump > mon_dump.txt - 导出osd节点信息:
ceph osd dump > osd_dump.txt - 导出CRUSH映射:
ceph crush dump > crush_dump.txt - 导出所有认证密钥:
ceph auth get-all > auth_dump.txt - 备份
/etc/ceph目录下的所有文件(ceph.conf、各类密钥环),这些是集群启动的核心配置。
- 导出mon节点信息:
二、镜像文件完整复制
- 复制所有OSD数据:如果是块设备存储的OSD,用
dd if=/dev/osd-device of=/path/to/backup/osd-device bs=4M;如果是文件存储的OSD,用rsync -avx /var/lib/ceph/osd/ceph-* /path/to/backup/。 - 校验镜像完整性:对每个OSD镜像文件计算哈希值(如
sha256sum /dev/osd-device > osd-hash.txt),复制完成后在目标端重新计算并对比,确保数据无损坏。
三、持镜像者的集群恢复步骤
拿到镜像文件和备份的元数据、配置文件后,无需中间集群,直接在目标环境操作:
- 部署匹配的节点环境:节点数量、OSD挂载路径尽量与原集群一致;若IP或hostname变更,提前修改
ceph.conf中的mon地址、OSD主机映射。 - 还原OSD镜像:将复制的OSD镜像写入目标节点的对应磁盘或目录,确保路径与原集群一致。
- 导入元数据与配置:
- 将备份的
/etc/ceph文件覆盖到目标节点的对应目录。 - 导入mon数据:
ceph mon import mon_dump.txt - 导入osd数据:
ceph osd import osd_dump.txt - 导入CRUSH映射:
ceph crush setmap -i crush_dump.txt - 导入认证密钥:
ceph auth import -i auth_dump.txt
- 将备份的
- 启动集群服务:按mon→osd→mds/rgw的顺序启动服务,启动后执行
ceph -s检查集群状态,确认所有OSD处于up/in状态,PG全部active+clean。
四、原集群的随时启动保障
原集群的镜像文件、元数据、配置文件需完整保留,未被迁移操作修改。需要启动原集群时,直接按原环境流程启动服务即可,无需额外调整,确保集群能随时恢复运行。
内容的提问来源于stack exchange,提问作者Oscar Boman
相关产品推荐
相关产品推荐

