注意

本文档适用于 Ceph 开发版本。

升级 MDS 集群

目前MDS集群没有内置的版本控制或文件系统标志来支持无缝升级MDS,以免由于不兼容的消息或其他功能差异导致断言或其他错误。因此,在集群升级期间,需要将文件系统的活动MDS数量减少为一个,以便两个活动MDS不会与不同版本通信。

升级MDS集群的正确顺序是:

  1. 对于每个文件系统,禁用并停止备用重播守护进程。

ceph fs set <fs_name> allow_standby_replay false

在Pacific中,运行此命令后会为您停止备用重播守护进程。旧版本的Ceph需要您手动停止这些守护进程。

ceph fs dump # find standby-replay daemons
ceph mds fail mds.<X>
  1. 对于每个文件系统,将等级数减少到1:

ceph fs set <fs_name> max_mds 1
  1. 等待集群停止非零等级,其中只有等级0是活动的,其余都是备用。

ceph status # wait for MDS to finish stopping
  1. 对于每个MDS,升级软件包并重新启动。注意:为了减少故障转移,建议(但不是严格必要)首先升级备用守护进程。

# use package manager to update cluster
systemctl restart ceph-mds.target
  1. 对于每个文件系统,恢复集群的先前max_mds和allow_standby_replay设置:

ceph fs set <fs_name> max_mds <old_max_mds>
ceph fs set <fs_name> allow_standby_replay <old_allow_standby_replay>

升级预 Firefly 文件系统至 Jewel

提示

这条建议仅适用于使用Ceph旧于Firefly(0.80)版本创建的文件系统的用户。创建新文件系统的用户可以忽略这条建议。

Ceph的Firefly之前的版本使用了一种现在已弃用的格式来存储CephFS目录对象,称为TMAPs。在Ceph的Jewel发布后,将移除在RADOS中读取这些对象的支持,因此对于升级CephFS用户,确保任何旧目录对象都已转换非常重要。

在所有您的MDS和OSD服务器上安装Jewel并重新启动服务后,运行以下命令:

cephfs-data-scan tmap_upgrade <metadata pool name>

这只需要运行一次,运行它时不需要停止任何其他服务。命令可能需要一些时间来执行,因为它会迭代您的元数据池中的所有对象。在它执行时,您可以像平常一样继续使用您的文件系统。如果命令因任何原因中止,可以安全地再次运行它。

如果您正在将预Firefly的CephFS文件系统升级到Jewel之上的Ceph新版本,您必须首先升级到Jewel并运行tmap_upgrade命令,然后再完成升级到最新版本。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.