1.6. 更新主机操作系统
Red Hat Ceph Storage 5 支持 Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 和 9.1。
此流程允许您在存储集群的节点上安装 Red Hat Ceph Storage 5 和 Red Hat Enterprise Linux 8。如果您已在存储集群中运行 Red Hat Enterprise Linux 8,请跳过这个步骤。
您必须手动升级集群中的所有节点,以运行最新版本的 Red Hat Enterprise Linux 和 Red Hat Ceph Storage。
先决条件
- 正在运行的 Red Hat Ceph Storage 4 存储群集.
- 对存储集群中所有节点的 sudo 级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
使用
docker-to-podman
playbook 将 docker 转换为 podman:示例
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/ docker-to-podman.yml
其它资源
1.6.1. 手动升级 Ceph 监控节点及其操作系统
作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph 监控软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。
一次仅在一个 monitor 节点上执行该步骤。要防止集群访问问题,在继续处理下一个节点前,请确保当前升级的 monitor 节点已恢复到正常操作状态。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点正在运行 Red Hat Enterprise Linux 7 7.9。
- 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
- Red Hat Enterprise Linux 8.4 EUS 或更高版本可以访问安装源。
如果您要从 Red Hat Enterprise Linux 7.9 上的 Red Hat Ceph Storage 4.3 升级到 Red Hat Enterprise Linux 9 上的 Red Hat Ceph Storage 5,首先将主机操作系统从 Red Hat Enterprise Linux 7.9 升级到 Red Hat Enterprise Linux 8.x,然后升级到 Red Hat Ceph Storage,然后升级到 Red Hat Enterprise Linux 9.x。
流程
停止 monitor 服务:
语法
systemctl stop ceph-mon@MONITOR_ID
将 MONITOR_ID 替换为 monitor 节点的 ID 号。
如果使用 Red Hat Ceph Storage 4,请禁用 Red Hat Ceph Storage 4 存储库。
禁用工具存储库:
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
禁用 mon 存储库:
# subscription-manager repos --disable=rhel-7-server-rhceph-4-mon-rpms
使用
leapp
实用程序升级存储集群后,会删除许多 Ceph 软件包。在升级前记录 Ceph 软件包:示例
[root@host01 ~]# rpm -qa | grep ceph python-ceph-argparse-14.2.22-128.el7cp.x86_64 ceph-selinux-14.2.22-128.el7cp.x86_64 python-cephfs-14.2.22-128.el7cp.x86_64 ceph-base-14.2.22-128.el7cp.x86_64 ceph-mon-14.2.22-128.el7cp.x86_64 ceph-mgr-diskprediction-local-14.2.22-128.el7cp.noarch ceph-ansible-4.0.70.18-1.el7cp.noarch libcephfs2-14.2.22-128.el7cp.x86_64 ceph-common-14.2.22-128.el7cp.x86_64 ceph-osd-14.2.22-128.el7cp.x86_64 ceph-mgr-14.2.22-128.el7cp.x86_64
安装
leapp
实用程序。- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
-
通过
leapp
预升级检查运行。请参阅从命令行评估可升级性。 升级到 Red Hat Enterprise Linux 8.6 后,安装 Ceph-Ansible 软件包并运行 Ansible playbook:
安装 Ceph-Ansible,它将安装所有 Ceph 软件包:
[root@admin ~]# dnf install ceph-ansible
以
ansible
用户身份,在所有升级节点上运行 Ansible playbook:裸机部署:
[user@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
容器部署:
[ansible@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site-container.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
升级到 Red Hat Enterprise Linux 9.x 后,将
podman-auth.json
文件从其他节点复制到/etc/ceph/'
中的升级节点,然后重启每个服务。# systemctl restart _SERVICE NAME_
-
在
/etc/ssh/sshd_config
中设置PermitRootLogin yes
。 重启 OpenSSH SSH 守护进程:
# systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
# modprobe -r iscsi
- 重新引导节点。
为 Red Hat Ceph Storage 5 启用软件仓库:
启用工具存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
-
从尚未升级的 monitor 节点或已经恢复这些文件的节点恢复
ceph-client-admin.keyring
和ceph.conf
文件。 重启 Ceph Monitor 服务:
示例
[root@host01 ~]# systemctl restart ceph-mon@host01.service [root@host01 ~]# systemctl status ceph-mon@host01.service
验证监控器和管理器服务是否已恢复,并且 monitor 是否在仲裁中。
语法
ceph -s
在 services: 下的 mon: 行中,确保该节点被列为 quorum(仲裁) 而不是 out of quorum(未仲裁)
示例
# ceph -s mon: 3 daemons, quorum node0,node1,node2 (age 2h) mgr: node0(active, since 2h), standbys: node1, node2
- 在所有 monitor 节点上重复上述步骤,直到它们都已升级。
其它资源
- 如需更多信息,请参阅更新主机操作系统。
- 如需更多信息,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 如需更多信息,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
1.6.2. 升级 OSD 节点
作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph OSD 软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。
对 Ceph 集群中的每一 OSD 节点执行此步骤,但通常一次仅针对一个 OSD 节点进行。可以并行执行最多一个故障域的 OSD 节点值。例如,如果正在使用每个机架复制,可以并行升级整个机架的 OSD 节点。为防止数据访问问题,在继续下一 OSD 前,请确保当前 OSD 节点的 OSD 已恢复正常运作,所有集群 PG 都处于 active+clean
状态。
如果您要从 Red Hat Enterprise Linux 7.9 上的 Red Hat Ceph Storage 4.3 升级到在 Red Hat Enterprise Linux 9 上运行的 Red Hat Ceph Storage 5.2 ,请先将主机的操作系统从 Red Hat Enterprise Linux 7.9 升级到 Red Hat Enterprise Linux 8.x,然后升级 Red Hat Ceph Storage,然后再升级到 Red Hat Enterprise Linux 9.x。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点正在运行 Red Hat Enterprise Linux 7 7.9。
- 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
- 访问 Red Hat Enterprise Linux 8.4 EUS 或更高版本的安装源。
- FileStore OSD 必须迁移到 BlueStore。
流程
-
如果您的 FileStore OSD 尚未迁移到 BlueStore,请运行
filestore-to-bluestore
playbook。有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。 设置 OSD
noout
标志,以防止 OSD 在迁移期间被标记为 down:语法
ceph osd set noout
设置 OSD
nobackfill
、norecover
、norrebalance
、noscrub
和nodeep-scrub
标志,以避免集群出现不必要的负载,并在节点停机时避免任何数据被重新创建:语法
ceph osd set nobackfill ceph osd set norecover ceph osd set norebalance ceph osd set noscrub ceph osd set nodeep-scrub
正常关闭节点上的所有 OSD 进程:
语法
systemctl stop ceph-osd.target
如果使用 Red Hat Ceph Storage 4,请禁用 Red Hat Ceph Storage 4 存储库。
禁用工具存储库:
语法
subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
禁用 osd 存储库:
语法
subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpms
-
安装
leapp
实用程序。请参阅 从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。 -
通过
leapp
预升级检查运行。请参阅从命令行评估可升级性。 -
在
/etc/ssh/sshd_config
中设置PermitRootLogin yes
。 重启 OpenSSH SSH 守护进程:
语法
systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
语法
modprobe -r iscsi
根据执行从 Red Hat Enterprise Linux 7 到 Red Hat Enterprise Linux 8 的升级以及执行从 Red Hat Enterprise Linux 8 到 Red Hat Enterprise Linux 9 的升级中的内容进行升级。
启用工具存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
-
恢复
ceph.conf
文件。 取消设置
noout
、nobackfill
、norecover
、norebalance
、noscrub
和nodeep-scrub
标志:语法
ceph osd unset noout ceph osd unset nobackfill ceph osd unset norecover ceph osd unset norebalance ceph osd unset noscrub ceph osd unset nodeep-scrub
验证 OSDs 为
up
和in
,它们处于active+clean
状态。语法
ceph -s
在 services: 下的 osd: 行中,确定所有 OSDs 都为
up
和in
:示例
# ceph -s osd: 3 osds: 3 up (since 8s), 3 in (since 3M)
- 在所有 OSD 节点上重复这个过程,直到它们都已升级。
其它资源
- 有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。
-
有关
leapp
工具程序的更多信息,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。 - 有关将 docker 转换为 podman 的更多信息,请参阅更新主机操作系统。
1.6.3. 升级 Ceph 对象网关节点
作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph Object Gateway (RGW) 软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。
对 Ceph 集群中的每个 RGW 节点执行此步骤,但一次仅针对一个 RGW 节点。要防止客户端访问问题,请确保当前升级的 RGW 已恢复正常操作,然后再继续升级下一个节点。
升级时,请确保 radosgw-admin
工具和 Ceph 对象网关存储集群具有相同的版本。当存储集群升级时,同时升级 radosgw-admin
工具非常重要。不支持使用不匹配的版本。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点正在运行 Red Hat Enterprise Linux 7 7.9。
- 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
- 访问 Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 和 9.1 的安装源。
流程
停止 Ceph 对象网关服务:
语法
# systemctl stop ceph-radosgw.target
禁用 Red Hat Ceph Storage 4 工具存储库:
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
安装
leapp
实用程序。- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
运行
leapp
进行升级前的检查:- 对于 Red Hat Enterprise Linux 8,请参阅从命令行评估升级的可能性。
- 对于 Red Hat Enterprise Linux 9,请参阅从命令行评估升级的可能性。
-
在
/etc/ssh/sshd_config
中设置PermitRootLogin yes
。 如果创建存储桶或具有
num_shards = 0
, 请在规划升级到 Red Hat Ceph Storage 5.3 前手动重新划分存储桶:警告当
bucket_index_max_shards
为0
时,从旧版本升级到 Red Hat Ceph Storage 5.3 可能会导致 Ceph 对象网关存储桶的元数据丢失,从而导致存储桶在尝试访问它时不可用。因此,请确保bucket_index_max_shards
设置为11
个分片。如果没有,在 zonegroup 级别修改此配置。语法
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME
示例
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
重启 OpenSSH SSH 守护进程:
# systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
# modprobe -r iscsi
- 根据从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8 的内容来执行升级。
启用工具存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
-
恢复
ceph-client-admin.keyring
和ceph.conf
文件。 验证守护进程是否活跃:
语法
ceph -s
查看 services: 下的 rgw: 行 以确保 RGW 守护进程处于活动状态。
示例
rgw: 1 daemon active (node4.rgw0)
- 在所有 Ceph 对象网关节点上重复上述步骤,直到它们都已升级。
其它资源
-
有关
leapp
工具程序的更多信息,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。 -
有关
leapp
工具程序的更多信息,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
1.6.4. 升级 CephFS 元数据服务器节点
作为存储管理员,您可以手动将 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 版本 4.3 或更高版本。
- 访问 Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 和 9.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:
[ceph: root@host01 /]# ceph status
禁用 Red Hat Ceph Storage 4 工具存储库:
[root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
安装
leapp
实用程序。- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
运行
leapp
进行升级前的检查:- 对于 Red Hat Enterprise Linux 8,请参阅从命令行评估升级的可能性。
- 对于 Red Hat Enterprise Linux 9,请参阅从命令行评估升级的可能性。
-
编辑
/etc/ssh/sshd_config
,并将PermitRootLogin
设置为yes
。 重启 OpenSSH SSH 守护进程:
[root@mds ~]# systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
[root@mds ~]# modprobe -r iscsi
执行升级:
- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
启用工具存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
-
恢复
ceph-client-admin.keyring
和ceph.conf
文件。 验证守护进程是否活跃:
[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
其它资源
-
有关
leapp
工具程序的更多信息,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
1.6.5. 手动升级 Ceph 控制面板节点及其操作系统
作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph Dashboard 软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 该节点正在运行 Red Hat Enterprise Linux 7.9。
- 节点运行 Red Hat Ceph Storage 版本 4.3 或更高版本。
- Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 或 9.1 的安装源可访问。
流程
禁用 Red Hat Ceph Storage 4 工具存储库:
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
安装
leapp
实用程序。- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
运行
leapp
进行升级前的检查:- 对于 Red Hat Enterprise Linux 8,请参阅从命令行评估升级的可能性。
- 对于 Red Hat Enterprise Linux 9,请参阅从命令行评估升级的可能性。
-
在
/etc/ssh/sshd_config
中设置PermitRootLogin yes
。 重启 OpenSSH SSH 守护进程:
# systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
# modprobe -r iscsi
执行升级:
- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
为 Red Hat Ceph Storage 5 启用工具软件仓库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
其它资源
1.6.6. 手动升级 Ceph Ansible 节点并重新配置设置
将 Red Hat Ceph Storage 集群节点上的 Ceph Ansible 软件和 Red Hat Enterprise Linux 操作系统手动升级到新的主要版本。
在升级 Ceph Ansible 节点上的主机操作系统之前,备份 group_vars
和 hosts
文件。在重新配置 Ceph Ansible 节点之前,使用创建的备份。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 该节点正在运行 Red Hat Enterprise Linux 7.9。
- 节点运行 Red Hat Ceph Storage 版本 4.2z2 或更高版本。
- 访问 Red Hat Enterprise Linux 8.4 EUS 或 Red Hat Enterprise Linux 8.5。
流程
为 Red Hat Enterprise Linux 8 禁用 Red Hat Ceph Storage 4 的工具存储库:
[root@ansible ~]# subscription-manager repos --disable=rhceph-4-tools-for-rhel-8-x86_64-rpms [root@ansible ~]# subscription-manager repos --disable=ansible-2.9-for-rhel-8-x86_64-rpms
安装
leapp
实用程序。- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
运行
leapp
进行升级前的检查:- 对于 Red Hat Enterprise Linux 8,请参阅从命令行评估升级的可能性。
- 对于 Red Hat Enterprise Linux 9,请参阅从命令行评估升级的可能性。
-
编辑
/etc/ssh/sshd_config
,并将PermitRootLogin
设置为yes
。 重启 OpenSSH SSH 守护进程:
[root@mds ~]# systemctl restart sshd.service
从 Linux 内核中删除 iSCSI 模块:
[root@mds ~]# modprobe -r iscsi
执行升级:
- 对于 Red Hat Enterprise Linux 8,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 对于 Red Hat Enterprise Linux 9,请参阅从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
为 Red Hat Ceph Storage 5 启用工具软件仓库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
-
恢复
ceph-client-admin.keyring
和ceph.conf
文件。
其它资源
- 如需更多信息,请参阅更新主机操作系统。
- 如需更多信息,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。