将Ceph集群从Ubuntu迁移到RHEL

本文由 Ceph中国社区-半天河翻译,小猴子校稿 。

英文出处:Sébastien Han 欢迎加入 翻译小组

migrate-ceph-cluster-from-ubuntu-to-rhel.jpg

最近我经历的一个使用案例是将基于 Ubuntu 的 Ceph 集群迁移到RHEL系统。对此我们有严格的要求,不希望有任何数据迁移。这是 Ceph 特别是 OSD 的另一种美妙之处,那就是基本上它们能够在任何机器上运行。假设你有一个 OSD,你可以拔出磁盘并无缝地插入另一台机器上。这里采取的方法有点不同,但依赖于这种能力。

我使用 Ansible 构建自动化。过程相当简单,可以解耦为下列步骤。请注意所有任务都是串行的。

对于 monitors:

  • 压缩 monitor store

  • 打包 monitor store

  • 拷贝上一步中打好的包到 Ansible 服务器

  • 停止 monitor 服务

  • 关闭服务器并 使用你自己的方法 安装 RHEL,这里 playbook 只会执行 重启

  • 服务器安装完成并启动后,拷贝上面打好的包到这个新的系统上( 确保已经安装好相同版本的 Ceph )

  • 解包并将文件拷回原来的目录

  • 启动 monitor 服务,并等待跟其他 mon 之间同步好数据

  • 对剩余的 monitors 重复以上步骤

对于 OSDs:

  • 设置 noout 标记,这样就不会触发 recovery

  • 打包 OSD bootstrap key 和 ceph.conf

  • 拷贝这个打包文件到 Ansible 服务器

  • 停止 OSDs 服务

  • 关闭服务器并 使用你自己的方法 安装 RHEL,这里 playbook 只会执行 重启

  • 服务器安装完成并启动后,拷贝上面打好的包到这个新的系统上( 确保已经安装好相同版本的 Ceph )

  • 解包并将文件拷回原来的目录

  • 启动 OSD 并等待 PG 的状态变为 clean,在它们的状态都变成 active+clean 之后再开始对其他 OSD 节点执行上面的步骤

实际上,你只需要下面的步骤:

Leave a Comment

电子邮件地址不会被公开。