8.7. 手动升级 Ceph 文件系统元数据服务器节点及其操作系统
您可以手动将 Red Hat Ceph Storage 集群中的 Ceph 文件系统 (CephFS) 元数据服务器 (MDS) 软件同时升级到新的主版本。
在升级存储集群前,请将活跃 MDS 的数量减少为每个文件系统一个。这消除了多个 MDS 之间可能存在的版本冲突。另外,在升级前关闭所有待机节点。
这是因为 MDS 集群没有内置的版本或文件系统标志。如果没有这些功能,多个 MDS 可能会使用不同版本的 MDS 软件进行通信,并可能导致断言或其他故障发生。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群。
- 节点正在运行 Red Hat Enterprise Linux 7.9。
- 节点使用 Red Hat Ceph Storage 版本 3.3z6 或 4.1。
- 访问 Red Hat Enterprise Linux 8.3 的安装源。
- 对存储集群中所有节点的根级别访问权限。
底层 XFS 文件系统必须格式化为支持 ftype=1
或 d_type
。运行 xfs_info /var
命令以确保 ftype
设置为 1
。如果 ftype
的值不是 1
,请附加新磁盘或创建卷。在此新设备之上,创建新的 XFS 文件系统并将其挂载到 /var/lib/containers
。
从 Red Hat Enterprise Linux 8 开始,mkfs.xfs
默认启用 ftype=1
。
流程
将活跃 MDS 的数量减少到 1:
语法
ceph fs set FILE_SYSTEM_NAME max_mds 1
示例
[root@mds ~]# ceph fs set fs1 max_mds 1
等待集群停止所有 MDS 等级。当所有 MDS 停止后,仅排名 0 才处于活动状态。剩余的操作应处于待机模式。检查文件系统的状态:
[root@mds ~]# ceph status
使用
systemctl
关闭所有备用 MDS:[root@mds ~]# systemctl stop ceph-mds.target
确认只有一个 MDS 是在线的,并且它已在文件系统中排名为 0:
[root@mds ~]# ceph status
为操作系统版本禁用工具存储库:
如果您要从 RHEL 7 上的 Red Hat Ceph Storage 3 升级,请禁用 Red Hat Ceph Storage 3 工具存储库:
[root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-3-tools-rpms
如果您使用 Red Hat Ceph Storage 4,请禁用 Red Hat Ceph Storage 4 工具存储库:
[root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
-
安装
leapp
实用程序。有关leapp
的详情,请参考从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。 -
通过
leapp
预升级检查运行。如需更多信息,请参阅从命令行评估可升级性。 -
编辑
/etc/ssh/sshd_config
,并将PermitRootLogin
设置为yes
。 重启 OpenSSH SSH 守护进程:
[root@mds ~]# systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
[root@mds ~]# modprobe -r iscsi
- 执行升级。请参阅执行从 RHEL 7 升级到 RHEL 8。
- 重新引导 MDS 节点。
为 Red Hat Enterprise Linux 8 启用 Red Hat Ceph Storage 4 的工具仓库:
[root@mds ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
安装
ceph-mds
软件包:[root@mds ~]# dnf install ceph-mds -y
- 可选:安装在此节点上并置的任何 Ceph 服务的软件包。如果需要,启用额外的 Ceph 存储库。
可选:安装其他 Ceph 服务需要的
leveldb
软件包:[root@mds ~]# dnf install leveldb
-
从尚未升级的节点或已经恢复这些文件的节点恢复
ceph-client-admin.keyring
和 ceph.conf 将任何现有的 CRUSH bucket 切换到最新的 bucket 类型
straw2
。# ceph osd getcrushmap -o backup-crushmap # ceph osd crush set-all-straw-buckets-to-straw2
启动 MDS 服务:
[root@mds ~]# systemctl restart ceph-mds.target
验证守护进程是否活跃:
[root@mds ~]# ceph -s
- 为待机守护进程跟踪相同的进程。
当您完成重启所有待机 MDS 后,请恢复集群中的
max_mds
的值:语法
ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE
示例
[root@mds ~]# ceph fs set fs1 max_mds 5