升级指南
升级 Red Hat Ceph Storage 集群
摘要
第 1 章 将 Red Hat Ceph Storage 集群从 RHCS 4 升级到 RHCS 5 复制链接链接已复制到粘贴板!
作为存储管理员,您可以将 Red Hat Ceph Storage 集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5。升级过程包括以下任务:
- 如果您的存储集群仍在运行 Red Hat Enterprise Linux 7,将存储集群中的主机操作系统版本从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 如果该节点仍在运行 Red Hat Enterprise Linux 7,请将 Ceph Ansible 管理节点上的主机操作系统版本从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
- 使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。
如果您要从 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 4 集群已在 Red Hat Enterprise Linux 8 中运行,请参阅将在 Red Hat Enterprise Linux 8 中运行的 Red Hat Ceph Storage 从 RHCS4 升级到 RHCS 5。
leapp 不支持对具有加密分区的加密 OSD 或 OSD 进行升级。如果您的 OSD 已加密,并且您要升级主机操作系统,请在升级操作系统前在 ceph-ansible 中 禁用 dmcrypt。有关使用 leapp 的更多信息,请参阅从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8 以及从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
Red Hat Ceph Storage 5 目前不支持 ceph-ansible。这意味着,当您将存储集群迁移到 Red Hat Ceph Storage 5 后,您必须使用 cephadm 和 cephadm-ansible 执行后续更新。
当从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 时,不要将 bluestore_fsck_quick_fix_on_mount 参数设置为 true,或者不运行 ceph-bluestore-tool --path PATH_TO_OSD --command quick-fix|repair 命令,因为它可能会导致格式的 OMAP 密钥并导致数据损坏。
在 Ceph Object Gateway 存储集群中(单站点或多站点)从 Red Hat Ceph Storage 5.0 升级到 Red Hat Ceph Storage 5.2 被支持,但在升级您的存储集群前需要设置 ceph config set mgr mgr/cephadm/no_five_one_rgw true --force 选项。
由于一个已知问题,在 Ceph Object Gateway 存储集群中从 Red Hat Ceph Storage 5.1 升级到 Red Hat Ceph Storage 5.2 不被支持。如需更多信息,请参阅 Support Restrictions for upgrades for RADOS Gateway (RGW) on Red Hat Red Hat Ceph Storage 5.2 知识库文章。
如果您计划升级到 Red Hat Ceph Storage 5.0z4,请参阅知识库文章从 Red Hat Ceph Storage 4.2 z4 升级到 5.0z4。
对于 Red Hat Ceph Storage,默认将 bluefs_buffered_io 选项设为 True。这个选项使 BlueFS 能够在某些情况下执行缓冲的读取,并允许内核页面缓存作为辅助缓存进行读取,如 RocksDB 块读取。例如,如果 RocksDB 块缓存不足以在 OMAP 迭代期间保存所有块,则可以从页面缓存而不是磁盘中读取它们。当 osd_memory_target 太小而无法存放块缓存中的所有条目时,这可显著提高性能。目前,启用 bluefs_buffered_io 并禁用系统级别交换可防止性能下降。
有关 bluefs_buffered_io 的当前设置的更多信息,请参阅 Red Hat Ceph Storage 管理指南中的查看 bluefs_buffered_io 设置章节。
在将集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 时,您需要在所有客户端节点上升级 ceph-common 软件包。要升级 ceph-common 软件包,请在其他守护进程升级后在所有客户端上运行 yum update ceph-common 命令。
Red Hat Ceph Storage 5 仅支持容器化守护进程。它不支持非容器化存储集群。如果您要将非容器化存储集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5,升级过程包括转换为容器化部署。
1.1. 先决条件 复制链接链接已复制到粘贴板!
- 正在运行的 Red Hat Ceph Storage 4 集群。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 对存储集群中所有节点的根级别访问权限。
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
您可以手动将 Red Hat Ceph Storage 集群中的 Ceph 文件系统 (CephFS) 元数据服务器 (MDS) 软件同时升级到新的主版本。底层 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。
1.2. RHCS 和 podman 版本间的兼容性注意事项 复制链接链接已复制到粘贴板!
Podman 和 Red Hat Ceph Storage 具有不同的生命周期结束策略,这可能会导致查找兼容版本变得困难。
如果您计划从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8,作为 Ceph 升级过程的一部分,请确保 podman 的版本与 Red Hat Ceph Storage 5 兼容。
红帽建议,使用 Red Hat Ceph Storage 5 相关的 Red Hat Enterprise Linux 所附带的 podman 版本。如需了解更多详细信息,请参阅 Red Hat Ceph Storage: 支持的配置知识库文章。如需更多信息,请参阅 Red Hat Ceph Storage 故障排除指南中的联系红帽支持部分。
Red Hat Ceph Storage 5 与 podman 2.0.0 及更新的版本兼容,但 2.2.1 版本除外。版本 2.2.1 与 Red Hat Ceph Storage 5 不兼容。
下表显示了 Red Hat Ceph Storage 5 和 podman 版本之间的版本兼容性。
| Ceph | Podman | ||||
|---|---|---|---|---|---|
| 1.9 | 2.0 | 2.1 | 2.2 | 3.0 | |
| 5.0 (Pacific) | false | true | true | false | true |
1.3. 准备升级 复制链接链接已复制到粘贴板!
作为存储管理员,您可以将 Ceph 存储集群升级到 Red Hat Ceph Storage 5。但是,在进行升级前,存储集群的一些组件必须运行特定的软件版本。以下列表显示在存储集群中安装的最低软件版本,然后才能升级到 Red Hat Ceph Storage 5。
- Red Hat Ceph Storage 4.3 或更高版本。
- Ansible 2.9.
- 最新版本的 Red Hat Ceph Storage 提供的 ceph-ansible。
- Red Hat Enterprise Linux 8.4 EUS 或更高版本。
- FileStore OSD 必须迁移到 BlueStore。有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。
对于早于 Red Hat Ceph Storage 4.3 的 Red Hat Ceph Storage 版本,没有直接的升级路径。如果您要从 Red Hat Ceph Storage 3 升级,您必须首先升级到 Red Hat Ceph Storage 4.3 或更高版本,然后再升级到 Red Hat Ceph Storage 5。
您只能升级到最新版本的 Red Hat Ceph Storage 5。例如,如果版本 5.1 可用,则无法从 4 升级到 5.0;您必须直接升级到 5.1。
在 Red Hat Enterprise Linux-8.7 (或更高)上的 Red Hat Ceph Storage-4.3.z1 的新部署,或将 Red Hat Ceph Storage-4.3.z1 升级到 5.X,主机 OS 为 Red Hat Enterprise Linux-8.7 (或更高)在 TASK [ceph-mgr : : 等待所有 mgr 变为 up]。Red Hat Enterprise Linux 8.7 发布的 podman 的行为已根据 SELinux 重新标记而有所变化。因此,根据启动顺序,一些 Ceph 容器将无法启动,因为它们无法访问所需的文件。
作为临时解决方案,请参阅知识库文章 RHCS 4.3 安装失败,同时执行命令 'ceph mgr dump'。
要将存储集群升级到 Red Hat Ceph Storage 5,红帽建议您集群运行 Red Hat Ceph Storage 4.3 或更高版本。请参阅知识库文章 Red Hat Ceph Storage 发行版本是什么?本文包含到 Ceph 软件包和 ceph-ansible 最新版本的下载链接。
升级过程使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。如果您的 Red Hat Ceph Storage 4 集群是一个非容器化集群,升级过程包括将集群转换为容器化版本的步骤。Red Hat Ceph Storage 5 不在非容器化集群中运行。
如果您有镜像或多站点配置,一次升级一个集群。在升级另一个集群前,请确保每个升级的集群都正常运行。
leapp 不支持对具有加密分区的加密 OSD 或 OSD 进行升级。如果您的 OSD 已加密,并且您要升级主机操作系统,请在升级操作系统前在 ceph-ansible 中 禁用 dmcrypt。有关使用 leapp 的详情,请参考 从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
只有在存储集群尚未运行最新版本的 Red Hat Ceph Storage 4 时,才执行此流程中的前三个步骤。Red Hat Ceph Storage 4 的最新版本应该是 4.3 或更高版本。
先决条件
- 正在运行的 Red Hat Ceph Storage 4 集群。
- 对存储集群中所有节点的 sudo 级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
在 Ansible 管理节点上启用 Ceph 和 Ansible 存储库:
示例
subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
[root@admin ceph-ansible]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 Ansible:
示例
dnf update ansible ceph-ansible
[root@admin ceph-ansible]# dnf update ansible ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要升级的存储集群包含使用
exclusive-lock功能的 Ceph 块设备镜像,请确保所有 Ceph 块设备用户都有为客户端创建 denylist 的权限:语法
ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'
ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群最初使用 Cockpit 安装,请在
/usr/share/ceph-ansible目录中创建一个符号链接到 Cockpit 创建它的清单文件,位于/usr/share/ansible-runner-service/inventory/hosts:进入
/usr/share/ceph-ansible目录:cd /usr/share/ceph-ansible
# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建符号链接:
ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
# ln -s /usr/share/ansible-runner-service/inventory/hosts hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用
ceph-ansible升级集群,请在etc/ansible/hosts目录中创建符号链接到hosts清单文件:ln -s /etc/ansible/hosts hosts
# ln -s /etc/ansible/hosts hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群最初使用 Cockpit 安装,请将 Cockpit 生成的 SSH 密钥复制到 Ansible 用户的
~/.ssh目录中:复制密钥:
语法
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 ANSIBLE_USERNAME 替换为 Ansible 的用户名。常见的默认用户名是
admin。示例
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa
# cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在密钥文件中设置适当的所有者、组群和权限:
语法
chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa
# chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 ANSIBLE_USERNAME 替换为 Ansible 的用户名。常见的默认用户名是
admin。示例
chown admin:admin /home/admin/.ssh/id_rsa.pub chown admin:admin /home/admin/.ssh/id_rsa chmod 644 /home/admin/.ssh/id_rsa.pub chmod 600 /home/admin/.ssh/id_rsa
# chown admin:admin /home/admin/.ssh/id_rsa.pub # chown admin:admin /home/admin/.ssh/id_rsa # chmod 644 /home/admin/.ssh/id_rsa.pub # chmod 600 /home/admin/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. 在主机操作系统升级前备份文件 复制链接链接已复制到粘贴板!
仅在升级主机操作系统时执行本节中的步骤。如果您没有升级主机操作系统,请跳过本节。
在执行升级步骤前,您必须备份您为存储集群自定义的文件副本,包括用于配置的密钥环文件和 yml 文件,因为执行任何 playbook 时 ceph.conf 文件会被覆盖。
先决条件
- 正在运行的 Red Hat Ceph Storage 4 集群。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
-
生成
/etc/ceph和/var/lib/ceph文件夹的备份副本。 -
生成
ceph.client.admin.keyring文件的备份副本。 -
备份每个节点中的
ceph.conf文件副本。 -
在每个节点上制作
/etc/ganesha/文件夹的备份副本。 -
如果存储集群定义了 RBD 镜像功能,则生成
/etc/ceph文件夹和group_vars/rbdmirrors.yml文件的备份副本。
1.5. 转换为容器化部署 复制链接链接已复制到粘贴板!
非容器化集群需要这个过程。如果存储集群是一个非容器化集群,这个过程会将集群转换为容器化版本。
Red Hat Ceph Storage 5 仅支持基于容器的部署。在升级到 RHCS 5.x 之前,需要容器化集群。
如果您的 Red Hat Ceph Storage 4 存储集群已经容器化,请跳过本节。
这个过程将停止并重启守护进程。如果 playbook 在此过程中停止执行,请务必在重启前分析集群的状态。
先决条件
- 正在运行的 Red Hat Ceph Storage 非容器化 4 集群。
- 对存储集群中所有节点的根级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
流程
-
如果您正在运行多站点设置,请在
all.yml中设置rgw_multisite: false。 确保
group_vars/all.yml具有以下配置参数默认值:ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: true
ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您使用本地 registry 和自定义镜像名称,这些值会有所不同。
可选:对于使用裸机存储集群中使用命令行界面配置的双向 RBD 镜像功能,集群不会迁移 RBD 镜像。对于这样的配置,请在将非容器化存储集群迁移到容器化部署前按照以下步骤操作:
在 Ceph 客户端节点上创建一个用户:
语法
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
[root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更改
/etc/ceph目录中的auth文件中的用户名:示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导入
auth文件以添加相关权限:语法
ceph auth import -i PATH_TO_KEYRING
ceph auth import -i PATH_TO_KEYRINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring
[root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 RBD 镜像节点的服务名称:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 rbd-mirror 节点添加到
/etc/ansible/hosts文件中:示例
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您使用的守护进程不是容器化的,请将它们转换为容器化格式:
语法
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow vvvv选项收集转换过程的详细日志。示例
ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Playbook 成功完成后,编辑
all.yml文件中的rgw_multisite: true的值,并确保containerized_deployment的值为true。注意确保从管理节点中删除
ceph-iscsi、libtcmu和tcmu-runner软件包。
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-podmanplaybook 将 docker 转换为 podman:示例
ansible-playbook -vvvv -i hosts infrastructure-playbooks/
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/ docker-to-podman.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
systemctl stop ceph-mon@MONITOR_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 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
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用 mon 存储库:
subscription-manager repos --disable=rhel-7-server-rhceph-4-mon-rpms
# subscription-manager repos --disable=rhel-7-server-rhceph-4-mon-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用
leapp实用程序升级存储集群后,会删除许多 Ceph 软件包。在升级前记录 Ceph 软件包:示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
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 软件包:
dnf install ceph-ansible
[root@admin ~]# dnf install ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以
ansible用户身份,在所有升级节点上运行 Ansible playbook:裸机部署:
ansible-playbook -vvvv -i INVENTORY site.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
[user@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 容器部署:
ansible-playbook -vvvv -i INVENTORY site-container.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 hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
升级到 Red Hat Enterprise Linux 9.x 后,将
podman-auth.json文件从其他节点复制到/etc/ceph/'中的升级节点,然后重启每个服务。systemctl restart _SERVICE NAME_
# systemctl restart _SERVICE NAME_Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在
/etc/ssh/sshd_config中设置PermitRootLogin yes。 重启 OpenSSH SSH 守护进程:
systemctl restart sshd.service
# systemctl restart sshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Linux 内核中删除 iSCSI 模块:
modprobe -r iscsi
# modprobe -r iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新引导节点。
为 Red Hat Ceph Storage 5 启用软件仓库:
启用工具存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
从尚未升级的 monitor 节点或已经恢复这些文件的节点恢复
ceph-client-admin.keyring和ceph.conf文件。 重启 Ceph Monitor 服务:
示例
systemctl restart ceph-mon@host01.service systemctl status ceph-mon@host01.service
[root@host01 ~]# systemctl restart ceph-mon@host01.service [root@host01 ~]# systemctl status ceph-mon@host01.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证监控器和管理器服务是否已恢复,并且 monitor 是否在仲裁中。
语法
ceph -s
ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 services: 下的 mon: 行中,确保该节点被列为 quorum(仲裁) 而不是 out of quorum(未仲裁)
示例
ceph -s
# ceph -s mon: 3 daemons, quorum node0,node1,node2 (age 2h) mgr: node0(active, since 2h), standbys: node1, node2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在所有 monitor 节点上重复上述步骤,直到它们都已升级。
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-bluestoreplaybook。有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。 设置 OSD
noout标志,以防止 OSD 在迁移期间被标记为 down:语法
ceph osd set noout
ceph osd set nooutCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 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
ceph osd set nobackfill ceph osd set norecover ceph osd set norebalance ceph osd set noscrub ceph osd set nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 正常关闭节点上的所有 OSD 进程:
语法
systemctl stop ceph-osd.target
systemctl stop ceph-osd.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用 Red Hat Ceph Storage 4,请禁用 Red Hat Ceph Storage 4 存储库。
禁用工具存储库:
语法
subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用 osd 存储库:
语法
subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpms
subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
安装
leapp实用程序。请参阅 从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。 -
通过
leapp预升级检查运行。请参阅从命令行评估可升级性。 -
在
/etc/ssh/sshd_config中设置PermitRootLogin yes。 重启 OpenSSH SSH 守护进程:
语法
systemctl restart sshd.service
systemctl restart sshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Linux 内核中删除 iSCSI 模块:
语法
modprobe -r iscsi
modprobe -r iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 根据执行从 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
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
恢复
ceph.conf文件。 取消设置
noout、nobackfill、norecover、norebalance、noscrub和nodeep-scrub标志:语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 OSDs 为
up和in,它们处于active+clean状态。语法
ceph -s
ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 services: 下的 osd: 行中,确定所有 OSDs 都为
up和in:示例
ceph -s
# ceph -s osd: 3 osds: 3 up (since 8s), 3 in (since 3M)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在所有 OSD 节点上重复这个过程,直到它们都已升级。
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
# systemctl stop ceph-radosgw.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用 Red Hat Ceph Storage 4 工具存储库:
subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
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
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 OpenSSH SSH 守护进程:
systemctl restart sshd.service
# systemctl restart sshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Linux 内核中删除 iSCSI 模块:
modprobe -r iscsi
# modprobe -r iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 根据从 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
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
恢复
ceph-client-admin.keyring和ceph.conf文件。 验证守护进程是否活跃:
语法
ceph -s
ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 services: 下的 rgw: 行 以确保 RGW 守护进程处于活动状态。
示例
rgw: 1 daemon active (node4.rgw0)
rgw: 1 daemon active (node4.rgw0)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在所有 Ceph 对象网关节点上重复上述步骤,直到它们都已升级。
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
ceph fs set FILE_SYSTEM_NAME max_mds 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph fs set fs1 max_mds 1
[root@mds ~]# ceph fs set fs1 max_mds 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待集群停止所有 MDS 等级。当所有 MDS 停止后,仅排名 0 才处于活动状态。剩余的操作应处于待机模式。检查文件系统的状态:
ceph status
[root@mds ~]# ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
systemctl关闭所有备用 MDS:systemctl stop ceph-mds.target
[root@mds ~]# systemctl stop ceph-mds.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认只有一个 MDS 是在线的,并且它已在文件系统中排名为 0:
[ceph: root@host01 /]# ceph status
[ceph: root@host01 /]# ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用 Red Hat Ceph Storage 4 工具存储库:
subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
[root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
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
[root@mds ~]# systemctl restart sshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Linux 内核中删除 iSCSI 模块:
modprobe -r iscsi
[root@mds ~]# modprobe -r iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 执行升级:
- 对于 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
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
恢复
ceph-client-admin.keyring和ceph.conf文件。 验证守护进程是否活跃:
ceph -s
[root@mds ~]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 为待机守护进程跟踪相同的进程。
当您完成重启所有待机 MDS 后,请恢复集群中的
max_mds的值:语法
ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE
ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph fs set fs1 max_mds 5
[root@mds ~]# ceph fs set fs1 max_mds 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
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
# systemctl restart sshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Linux 内核中删除 iSCSI 模块:
modprobe -r iscsi
# modprobe -r iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 执行升级:
- 对于 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
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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 的工具存储库:
subscription-manager repos --disable=rhceph-4-tools-for-rhel-8-x86_64-rpms subscription-manager repos --disable=ansible-2.9-for-rhel-8-x86_64-rpms
[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-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
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
[root@mds ~]# systemctl restart sshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从 Linux 内核中删除 iSCSI 模块:
modprobe -r iscsi
[root@mds ~]# modprobe -r iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 执行升级:
- 对于 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
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
恢复
ceph-client-admin.keyring和ceph.conf文件。
1.7. 恢复备份文件 复制链接链接已复制到粘贴板!
在存储集群中的每个节点上完成主机操作系统升级后,恢复您之前备份到每个节点的所有文件,以便升级的节点使用保留的设置。
在完成该主机的 OS 升级过程后,在存储集群中的每个主机上重复此过程。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有节点的根级别访问权限。
流程
- 将您在主机操作系统升级前备份的文件恢复到主机。
-
将
/etc/ceph文件夹及其内容恢复到所有主机,包括ceph.client.admin.keyring和ceph.conf文件。 -
将
/etc/ganesha/文件夹恢复到每个节点。 检查以确保操作系统升级后每个备份的文件的所有权没有被改变。文件所有者应当是
ceph。如果文件所有者已更改为root,请对每个文件使用以下命令将所有权更改回ceph:示例
chown ceph: ceph.client.rbd-mirror.node1.keyring
[root@admin]# chown ceph: ceph.client.rbd-mirror.node1.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8,且存储集群定义了 RBD 镜像功能,请从备份副本中恢复
/etc/ceph文件夹。 -
恢复之前备份的
group_vars/rbdmirrors.yml文件。 更改所有节点上的文件夹的所有权:
示例
chown -R /etc/ceph chown -R /var/log/ceph chown -R /var/lib/ceph
[root@admin]# chown -R /etc/ceph [root@admin]# chown -R /var/log/ceph [root@admin]# chown -R /var/lib/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8. 在 RHCS 升级前备份文件 复制链接链接已复制到粘贴板!
在运行 rolling_update.yml playbook,将 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 前,生成所有 yml 文件的备份副本。
先决条件
- 运行 RHCS 4.3 或更高版本的 Red Hat Ceph Storage 4 集群。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
备份所有
yml文件的副本。示例
cp group_vars/all.yml group_vars/all_old.yml cp group_vars/osds.yml group_vars/osds_old.yml cp group_vars/mdss.yml group_vars/mdss_old.yml cp group_vars/rgws.yml group_vars/rgws_old.yml cp group_vars/clients.yml group_vars/clients_old.yml
[root@admin ceph-ansible]# cp group_vars/all.yml group_vars/all_old.yml [root@admin ceph-ansible]# cp group_vars/osds.yml group_vars/osds_old.yml [root@admin ceph-ansible]# cp group_vars/mdss.yml group_vars/mdss_old.yml [root@admin ceph-ansible]# cp group_vars/rgws.yml group_vars/rgws_old.yml [root@admin ceph-ansible]# cp group_vars/clients.yml group_vars/clients_old.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9. 升级过程 复制链接链接已复制到粘贴板!
作为存储管理员,您可以使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。rolling_update.yml Ansible playbook 为部署Red Hat Ceph Storage 执行升级。ceph-ansible 按照以下顺序升级 Ceph 节点:
- Ceph monitor
- Ceph Manager
- Ceph OSD 节点
- MDS 节点
- Ceph 对象网关(RGW)节点
- Ceph RBD-mirror 节点
- Ceph NFS 节点
- Ceph iSCSI 网关节点
- Ceph 客户端节点
- Ceph-crash 守护进程
- 所有节点上的 node-exporter
- Ceph 仪表板
在存储集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 后,Grafana UI 会显示两个仪表板。这是因为 Red Hat Ceph Storage 4 中的 Prometheus 端口为 9092,而 Red Hat Ceph Storage 5 为 9095。您可以删除 grafana。cephadm 重新部署服务和守护进程,并在 Grafana UI 上删除旧的仪表板。
Red Hat Ceph Storage 5 仅支持容器化部署。
Red Hat Ceph Storage 5 目前不支持 ceph-ansible。这意味着,当您将存储集群迁移到 Red Hat Ceph Storage 5 后,您必须使用 cephadm 来执行后续更新。
若要部署具有单一域和多个域的多站点 Ceph 对象网关,请编辑 all.yml 文件。有关更多信息,请参阅 Red Hat Ceph Storage 4 安装指南中的配置多站点 Ceph 对象网关。
Red Hat Ceph Storage 5 还包括一个健康检查功能,如果它检测到存储集群中的任何守护进程正在运行多个版本的 Red Hat Ceph Storage,它会返回 DAEMON_OLD_VERSION 警告。当守护进程继续运行多个版本的 Red Hat Ceph Storage 时,会触发警告,超过 mon_warn_older_version_delay 选项中设置的时间值。默认情况下,mon_warn_older_version_delay 选项设置为一周。此设置允许大多数升级进行,而不会看到警告。如果升级过程暂停了较长的时间,您可以屏蔽健康警告:
ceph health mute DAEMON_OLD_VERSION --sticky
ceph health mute DAEMON_OLD_VERSION --sticky
升级完成后,取消健康警告:
ceph health unmute DAEMON_OLD_VERSION
ceph health unmute DAEMON_OLD_VERSION
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有主机的根级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
-
Red Hat Ceph Storage 5 提供的最新版本的 Ansible 和
ceph-ansible。 -
用于 Ansible 应用的
ansible用户帐户。 - 存储集群的节点已升级到 Red Hat Enterprise Linux 8.4 EUS 或更高版本。
Ansible 清单文件必须位于 ceph-ansible 目录中。
流程
在 Ansible 管理节点上启用 Ceph 和 Ansible 存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 管理节点上,确保安装了最新版本的
ansible和ceph-ansible软件包。语法
dnf update ansible ceph-ansible
dnf update ansible ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
/usr/share/ceph-ansible/目录:示例
cd /usr/share/ceph-ansible
[root@admin ~]# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5,请分别将它们重命名为
group_vars/osds.yml.sample和group_vars/clients.yml.sample文件,并将它们重命名为group_vars/osds.yml,并分别重命名为group_vars/clients.yml。示例
cp group_vars/osds.yml.sample group_vars/osds.yml cp group_vars/mdss.yml.sample group_vars/mdss.yml cp group_vars/rgws.yml.sample group_vars/rgws.yml cp group_vars/clients.yml.sample group_vars/clients.yml
[root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml [root@admin ceph-ansible]# cp group_vars/mdss.yml.sample group_vars/mdss.yml [root@admin ceph-ansible]# cp group_vars/rgws.yml.sample group_vars/rgws.yml [root@admin ceph-ansible]# cp group_vars/clients.yml.sample group_vars/clients.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5,请编辑
group_vars/all.yml文件来添加 Red Hat Ceph Storage 5 详情。 完成上述两个步骤后,将旧
yaml文件中的设置复制到新的yaml文件中。不要更改ceph_rhcs_version、ceph_docker_image和grafana_container_image的值,因为这些配置参数的值适用于 Red Hat Ceph Storage 5。这样可确保当前yaml文件中存在与集群相关的所有设置。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保将 Red Hat Ceph Storage 5 容器镜像设置为默认值。
编辑
group_vars/osds.yml文件。添加并设置以下选项:语法
nb_retry_wait_osd_up: 50 delay_wait_osd_up: 30
nb_retry_wait_osd_up: 50 delay_wait_osd_up: 30Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开
group_vars/all.yml文件,并验证旧的all.yml文件中是否存在以下值:使用来自旧
all.yml文件中的值相同的值设置fetch_directory选项:语法
fetch_directory: FULL_DIRECTORY_PATH
fetch_directory: FULL_DIRECTORY_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 FULL_DIRECTORY_PATH 替换为可写入位置,如 Ansible 用户的主目录。
如果要升级的集群包含任何 Ceph 对象网关节点,请添加
radosgw_interface选项:radosgw_interface: INTERFACE
radosgw_interface: INTERFACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 INTERFACE 替换为 Ceph 对象网关节点侦听的接口。
如果您的当前设置配置了 SSL 证书,请编辑以下内容:
语法
radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME radosgw_frontend_port: 443
radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME radosgw_frontend_port: 443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 取消注释
upgrade_ceph_packages选项并将其设置为True:语法
upgrade_ceph_packages: True
upgrade_ceph_packages: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群每个节点有多个 Ceph 对象网关实例,请取消注释
radosgw_num_instances设置并将其设置为集群中每个节点的实例数量:语法
radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODE
radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw_num_instances : 2
radosgw_num_instances : 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果存储集群定义了 Ceph 对象网关多站点,请检查
all.yml中的多站点设置,以确保它们包含与旧all.yml文件中相同的值。
如果创建存储桶或具有
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
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 Ansible 管理节点上,以
ansible-user身份登录。 使用
--extra-vars选项更新infrastructure-playbooks/rolling_update.ymlplaybook,并将health_osd_check_retries和health_osd_check_delay值分别更改为50和30:示例
ansible-playbook -i hosts infrastructure-playbooks/rolling_update.yml --extra-vars "health_osd_check_retries=50 health_osd_check_delay=30"
[root@admin ceph-ansible]# ansible-playbook -i hosts infrastructure-playbooks/rolling_update.yml --extra-vars "health_osd_check_retries=50 health_osd_check_delay=30"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于每个 OSD 节点,这些值可使
ceph-ansible每 30 秒检查存储集群运行状况,最多 50 次。这意味着ceph-ansible会等待每个 OSD 最多 25 分钟。根据存储集群的已用存储容量,调整
health_osd_check_retries选项的值。例如,如果您使用了 436 TB 中的 218 TB(或 50% 的存储容量),则将health_osd_check_retries选项设置为50。/etc/ansible/hosts是 Ansible 清单文件的默认位置。运行
rolling_update.ymlplaybook,将存储集群从 Red Hat Ceph Storage 4 转换为 Red Hat Ceph Storage 5:语法
ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i INVENTORY_FILE
ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i INVENTORY_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow vvvv 选项收集升级过程的详细日志。
示例
ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i hosts
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要不支持将
--limitAnsible 选项与rolling_update.ymlplaybook 搭配使用。- 查看 Ansible playbook 日志输出,以验证升级的状态。
验证
列出所有正在运行的容器:
示例
podman ps
[root@mon ~]# podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查集群的健康状况。将 MONITOR_ID 替换为上一步中找到的 Ceph Monitor 容器的名称:
语法
podman exec ceph-mon-MONITOR_ID ceph -s
podman exec ceph-mon-MONITOR_ID ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
podman exec ceph-mon-mon01 ceph -s
[root@mon ~]# podman exec ceph-mon-mon01 ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Ceph 集群守护进程版本,以确认升级所有守护进程。将 MONITOR_ID 替换为上一步中找到的 Ceph Monitor 容器的名称:
语法
podman exec ceph-mon-MONITOR_ID ceph --cluster ceph versions
podman exec ceph-mon-MONITOR_ID ceph --cluster ceph versionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
podman exec ceph-mon-mon01 ceph --cluster ceph versions
[root@mon ~]# podman exec ceph-mon-mon01 ceph --cluster ceph versionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.10. 使用 cephadm将存储集群转换为 复制链接链接已复制到粘贴板!
将存储集群升级到 Red Hat Ceph Storage 5 后,运行 cephadm-adopt playbook 以转换存储集群守护进程以运行 cephadm。
cephadm-adopt playbook 采用 Ceph 服务,安装所有 cephadm 依赖项,启用 cephadm 编配器后端,在所有主机上生成和配置 ssh 密钥,并将主机添加到编配器配置中。
运行 cephadm-adopt playbook 后,删除 ceph-ansible 软件包。集群守护进程不再可用于 ceph-ansible。您必须使用 cephadm 来管理集群守护进程。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有节点的根级别访问权限。
流程
-
登录
ceph-ansible节点,再将目录更改为/usr/share/ceph-ansible。 编辑
all.yml文件。语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
cephadm-adoptplaybook:语法
ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i INVENTORY_FILE
ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i INVENTORY_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i hosts
[ceph-admin@admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将最小 compat 客户端参数设置为
luminous:示例
[ceph: root@node0 /]# ceph osd set-require-min-compat-client luminous
[ceph: root@node0 /]# ceph osd set-require-min-compat-client luminousCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使应用在 NFS-Ganesha 池上运行:POOL_NAME 为
nfs-ganesha,APPLICATION_NAME 是您要启用的应用的名称,如cephfs、rbd或rgw。语法
ceph osd pool application enable POOL_NAME APPLICATION_NAME
ceph osd pool application enable POOL_NAME APPLICATION_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@node0 /]# ceph osd pool application enable nfs-ganesha rgw
[ceph: root@node0 /]# ceph osd pool application enable nfs-ganesha rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在将存储集群从 Red Hat Ceph Storage 4 迁移到 Red Hat Ceph Storage 5 后,
cephadm-adoptplaybook 不会启动 rbd-mirror。要临时解决这个问题,请手动添加 peer:
语法
rbd mirror pool peer add POOL_NAME CLIENT_NAME@CLUSTER_NAME
rbd mirror pool peer add POOL_NAME CLIENT_NAME@CLUSTER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@node0 /]# rbd --cluster site-a mirror pool peer add image-pool client.rbd-mirror-peer@site-b
[ceph: root@node0 /]# rbd --cluster site-a mirror pool peer add image-pool client.rbd-mirror-peer@site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 升级后删除 Grafana:
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在存储集群中获取 Grafana 的名称:
示例
[ceph: root@host01 /]# ceph orch ps --daemon_type grafana
[ceph: root@host01 /]# ceph orch ps --daemon_type grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 Grafana:
语法
ceph orch daemon rm GRAFANA_DAEMON_NAME
ceph orch daemon rm GRAFANA_DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch daemon rm grafana.host01 Removed grafana.host01 from host 'host01'
[ceph: root@host01 /]# ceph orch daemon rm grafana.host01 Removed grafana.host01 from host 'host01'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待几分钟并检查最新的日志:
示例
[ceph: root@host01 /]# ceph log last cephadm
[ceph: root@host01 /]# ceph log last cephadmCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm重新部署 Grafana 服务和守护进程。
1.11. 在升级的存储集群中安装 cephadm-ansible 复制链接链接已复制到粘贴板!
cephadm-ansible 是 Ansible playbook 的集合,可简化由 cephadm 所涵盖的工作流。安装后,playbook 位于 /usr/share/cephadm-ansible/ 中。
在将新节点或新客户端添加到升级的存储集群之前,请运行 cephadm-preflight.yml playbook。
先决条件
- 对 Ansible 管理节点的根级别访问权限.
- 具有适当权利的有效的红帽订阅.
- 用于访问 Red Hat Registry 的有效红帽网络 (RHN) 或服务帐户。
流程
卸载
ansible和旧的ceph-ansible软件包:语法
dnf remove ansible ceph-ansible
dnf remove ansible ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 管理节点上禁用 Ansible 存储库并启用 Ceph 存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --disable=ansible-2.9-for-rhel-8-x86_64-rpms
[root@admin ~]# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --disable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms --disable=ansible-2.9-for-rhel-9-x86_64-rpms
[root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms --disable=ansible-2.9-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
cephadm-ansible软件包,该软件包将ansible-core作为依赖项安装:语法
dnf install cephadm-ansible
dnf install cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
作为存储管理员,您可以将运行 Red Hat Enterprise Linux 8 的 Red Hat Ceph Storage 集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5。升级过程包括以下任务:
- 使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。
Red Hat Ceph Storage 5 目前不支持 ceph-ansible。这意味着,当您将存储集群迁移到 Red Hat Ceph Storage 5 后,您必须使用 cephadm 和 cephadm-ansible 执行后续更新。
当从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 时,不要将 bluestore_fsck_quick_fix_on_mount 参数设置为 true,或者不运行 ceph-bluestore-tool --path PATH_TO_OSD --command quick-fix|repair 命令,因为它可能会导致格式的 OMAP 密钥并导致数据损坏。
在 Ceph Object Gateway 存储集群中(单站点或多站点)从 Red Hat Ceph Storage 5.0 升级到 Red Hat Ceph Storage 5.2 被支持,但在升级您的存储集群前需要设置 ceph config set mgr mgr/cephadm/no_five_one_rgw true --force 选项。
由于一个已知问题,在 Ceph Object Gateway 存储集群中从 Red Hat Ceph Storage 5.1 升级到 Red Hat Ceph Storage 5.2 不被支持。如需更多信息,请参阅 Support Restrictions for upgrades for RADOS Gateway (RGW) on Red Hat Red Hat Ceph Storage 5.2 知识库文章。
如果您计划升级到 Red Hat Ceph Storage 5.0z4,请参阅知识库文章从 Red Hat Ceph Storage 4.2 z4 升级到 5.0z4。
对于 Red Hat Ceph Storage,默认将 bluefs_buffered_io 选项设为 True。这个选项使 BlueFS 能够在某些情况下执行缓冲的读取,并允许内核页面缓存作为辅助缓存进行读取,如 RocksDB 块读取。例如,如果 RocksDB 块缓存不足以在 OMAP 迭代期间保存所有块,则可以从页面缓存而不是磁盘中读取它们。当 osd_memory_target 太小而无法存放块缓存中的所有条目时,这可显著提高性能。目前,启用 bluefs_buffered_io 并禁用系统级别交换可防止性能下降。
有关 bluefs_buffered_io 的当前设置的更多信息,请参阅 Red Hat Ceph Storage 管理指南中的查看 bluefs_buffered_io 设置章节。
Red Hat Ceph Storage 5 仅支持容器化守护进程。它不支持非容器化存储集群。如果您要将非容器化存储集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5,升级过程包括转换为容器化部署。
2.1. 先决条件 复制链接链接已复制到粘贴板!
- 运行 Red Hat Enterprise Linux 8.4 或更高版本的 Red Hat Ceph Storage 4 集群。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 对存储集群中所有节点的根级别访问权限。
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
您可以手动将 Red Hat Ceph Storage 集群中的 Ceph 文件系统 (CephFS) 元数据服务器 (MDS) 软件同时升级到新的主版本。底层 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。
2.2. RHCS 和 podman 版本间的兼容性注意事项 复制链接链接已复制到粘贴板!
Podman 和 Red Hat Ceph Storage 具有不同的生命周期结束策略,这可能会导致查找兼容版本变得困难。
如果您计划从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8,作为 Ceph 升级过程的一部分,请确保 podman 的版本与 Red Hat Ceph Storage 5 兼容。
红帽建议,使用 Red Hat Ceph Storage 5 相关的 Red Hat Enterprise Linux 所附带的 podman 版本。如需了解更多详细信息,请参阅 Red Hat Ceph Storage: 支持的配置知识库文章。如需更多信息,请参阅 Red Hat Ceph Storage 故障排除指南中的联系红帽支持部分。
Red Hat Ceph Storage 5 与 podman 2.0.0 及更新的版本兼容,但 2.2.1 版本除外。版本 2.2.1 与 Red Hat Ceph Storage 5 不兼容。
下表显示了 Red Hat Ceph Storage 5 和 podman 版本之间的版本兼容性。
| Ceph | Podman | ||||
|---|---|---|---|---|---|
| 1.9 | 2.0 | 2.1 | 2.2 | 3.0 | |
| 5.0 (Pacific) | false | true | true | false | true |
2.3. 准备升级 复制链接链接已复制到粘贴板!
作为存储管理员,您可以将 Ceph 存储集群升级到 Red Hat Ceph Storage 5。但是,在进行升级前,存储集群的一些组件必须运行特定的软件版本。以下列表显示在存储集群中安装的最低软件版本,然后才能升级到 Red Hat Ceph Storage 5。
- Red Hat Ceph Storage 4.3 或更高版本。
- Ansible 2.9.
- 最新版本的 Red Hat Ceph Storage 提供的 ceph-ansible。
- Red Hat Enterprise Linux 8.4 EUS 或更高版本。
- FileStore OSD 必须迁移到 BlueStore。有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。
对于早于 Red Hat Ceph Storage 4.3 的 Red Hat Ceph Storage 版本,没有直接的升级路径。如果您要从 Red Hat Ceph Storage 3 升级,您必须首先升级到 Red Hat Ceph Storage 4.3 或更高版本,然后再升级到 Red Hat Ceph Storage 5。
您只能升级到最新版本的 Red Hat Ceph Storage 5。例如,如果版本 5.1 可用,则无法从 4 升级到 5.0;您必须直接升级到 5.1。
在 Red Hat Enterprise Linux-8.7 (或更高)上的 Red Hat Ceph Storage-4.3.z1 的新部署,或将 Red Hat Ceph Storage-4.3.z1 升级到 5.X,主机 OS 为 Red Hat Enterprise Linux-8.7 (或更高)在 TASK [ceph-mgr : : 等待所有 mgr 变为 up]。Red Hat Enterprise Linux 8.7 发布的 podman 的行为已根据 SELinux 重新标记而有所变化。因此,根据启动顺序,一些 Ceph 容器将无法启动,因为它们无法访问所需的文件。
作为临时解决方案,请参阅知识库文章 RHCS 4.3 安装失败,同时执行命令 'ceph mgr dump'。
要将存储集群升级到 Red Hat Ceph Storage 5,红帽建议您集群运行 Red Hat Ceph Storage 4.3 或更高版本。请参阅知识库文章 Red Hat Ceph Storage 发行版本是什么?本文包含到 Ceph 软件包和 ceph-ansible 最新版本的下载链接。
升级过程使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。如果您的 Red Hat Ceph Storage 4 集群是一个非容器化集群,升级过程包括将集群转换为容器化版本的步骤。Red Hat Ceph Storage 5 不在非容器化集群中运行。
如果您有镜像或多站点配置,一次升级一个集群。在升级另一个集群前,请确保每个升级的集群都正常运行。
leapp 不支持对具有加密分区的加密 OSD 或 OSD 进行升级。如果您的 OSD 已加密,并且您要升级主机操作系统,请在升级操作系统前在 ceph-ansible 中 禁用 dmcrypt。有关使用 leapp 的详情,请参考 从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
只有在存储集群尚未运行最新版本的 Red Hat Ceph Storage 4 时,才执行此流程中的前三个步骤。Red Hat Ceph Storage 4 的最新版本应该是 4.3 或更高版本。
先决条件
- 正在运行的 Red Hat Ceph Storage 4 集群。
- 对存储集群中所有节点的 sudo 级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
在 Ansible 管理节点上启用 Ceph 和 Ansible 存储库:
示例
subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
[root@admin ceph-ansible]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 Ansible:
示例
dnf update ansible ceph-ansible
[root@admin ceph-ansible]# dnf update ansible ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要升级的存储集群包含使用
exclusive-lock功能的 Ceph 块设备镜像,请确保所有 Ceph 块设备用户都有为客户端创建 denylist 的权限:语法
ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'
ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群最初使用 Cockpit 安装,请在
/usr/share/ceph-ansible目录中创建一个符号链接到 Cockpit 创建它的清单文件,位于/usr/share/ansible-runner-service/inventory/hosts:进入
/usr/share/ceph-ansible目录:cd /usr/share/ceph-ansible
# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建符号链接:
ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
# ln -s /usr/share/ansible-runner-service/inventory/hosts hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用
ceph-ansible升级集群,请在etc/ansible/hosts目录中创建符号链接到hosts清单文件:ln -s /etc/ansible/hosts hosts
# ln -s /etc/ansible/hosts hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群最初使用 Cockpit 安装,请将 Cockpit 生成的 SSH 密钥复制到 Ansible 用户的
~/.ssh目录中:复制密钥:
语法
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 ANSIBLE_USERNAME 替换为 Ansible 的用户名。常见的默认用户名是
admin。示例
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa
# cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在密钥文件中设置适当的所有者、组群和权限:
语法
chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa
# chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 ANSIBLE_USERNAME 替换为 Ansible 的用户名。常见的默认用户名是
admin。示例
chown admin:admin /home/admin/.ssh/id_rsa.pub chown admin:admin /home/admin/.ssh/id_rsa chmod 644 /home/admin/.ssh/id_rsa.pub chmod 600 /home/admin/.ssh/id_rsa
# chown admin:admin /home/admin/.ssh/id_rsa.pub # chown admin:admin /home/admin/.ssh/id_rsa # chmod 644 /home/admin/.ssh/id_rsa.pub # chmod 600 /home/admin/.ssh/id_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. 在主机操作系统升级前备份文件 复制链接链接已复制到粘贴板!
仅在升级主机操作系统时执行本节中的步骤。如果您没有升级主机操作系统,请跳过本节。
在执行升级步骤前,您必须备份您为存储集群自定义的文件副本,包括用于配置的密钥环文件和 yml 文件,因为执行任何 playbook 时 ceph.conf 文件会被覆盖。
先决条件
- 正在运行的 Red Hat Ceph Storage 4 集群。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
-
生成
/etc/ceph和/var/lib/ceph文件夹的备份副本。 -
生成
ceph.client.admin.keyring文件的备份副本。 -
备份每个节点中的
ceph.conf文件副本。 -
在每个节点上制作
/etc/ganesha/文件夹的备份副本。 -
如果存储集群定义了 RBD 镜像功能,则生成
/etc/ceph文件夹和group_vars/rbdmirrors.yml文件的备份副本。
2.5. 转换为容器化部署 复制链接链接已复制到粘贴板!
非容器化集群需要这个过程。如果存储集群是一个非容器化集群,这个过程会将集群转换为容器化版本。
Red Hat Ceph Storage 5 仅支持基于容器的部署。在升级到 RHCS 5.x 之前,需要容器化集群。
如果您的 Red Hat Ceph Storage 4 存储集群已经容器化,请跳过本节。
这个过程将停止并重启守护进程。如果 playbook 在此过程中停止执行,请务必在重启前分析集群的状态。
先决条件
- 正在运行的 Red Hat Ceph Storage 非容器化 4 集群。
- 对存储集群中所有节点的根级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
流程
-
如果您正在运行多站点设置,请在
all.yml中设置rgw_multisite: false。 确保
group_vars/all.yml具有以下配置参数默认值:ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: true
ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您使用本地 registry 和自定义镜像名称,这些值会有所不同。
可选:对于使用裸机存储集群中使用命令行界面配置的双向 RBD 镜像功能,集群不会迁移 RBD 镜像。对于这样的配置,请在将非容器化存储集群迁移到容器化部署前按照以下步骤操作:
在 Ceph 客户端节点上创建一个用户:
语法
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
[root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更改
/etc/ceph目录中的auth文件中的用户名:示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导入
auth文件以添加相关权限:语法
ceph auth import -i PATH_TO_KEYRING
ceph auth import -i PATH_TO_KEYRINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring
[root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 RBD 镜像节点的服务名称:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 rbd-mirror 节点添加到
/etc/ansible/hosts文件中:示例
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您使用的守护进程不是容器化的,请将它们转换为容器化格式:
语法
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow vvvv选项收集转换过程的详细日志。示例
ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Playbook 成功完成后,编辑
all.yml文件中的rgw_multisite: true的值,并确保containerized_deployment的值为true。注意确保从管理节点中删除
ceph-iscsi、libtcmu和tcmu-runner软件包。
2.6. 升级过程 复制链接链接已复制到粘贴板!
作为存储管理员,您可以使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。rolling_update.yml Ansible playbook 为部署Red Hat Ceph Storage 执行升级。ceph-ansible 按照以下顺序升级 Ceph 节点:
- Ceph monitor
- Ceph Manager
- Ceph OSD 节点
- MDS 节点
- Ceph 对象网关(RGW)节点
- Ceph RBD-mirror 节点
- Ceph NFS 节点
- Ceph iSCSI 网关节点
- Ceph 客户端节点
- Ceph-crash 守护进程
- 所有节点上的 node-exporter
- Ceph 仪表板
在存储集群从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5 后,Grafana UI 会显示两个仪表板。这是因为 Red Hat Ceph Storage 4 中的 Prometheus 端口为 9092,而 Red Hat Ceph Storage 5 为 9095。您可以删除 grafana。cephadm 重新部署服务和守护进程,并在 Grafana UI 上删除旧的仪表板。
Red Hat Ceph Storage 5 仅支持容器化部署。
Red Hat Ceph Storage 5 目前不支持 ceph-ansible。这意味着,当您将存储集群迁移到 Red Hat Ceph Storage 5 后,您必须使用 cephadm 来执行后续更新。
若要部署具有单一域和多个域的多站点 Ceph 对象网关,请编辑 all.yml 文件。有关更多信息,请参阅 Red Hat Ceph Storage 4 安装指南中的配置多站点 Ceph 对象网关。
Red Hat Ceph Storage 5 还包括一个健康检查功能,如果它检测到存储集群中的任何守护进程正在运行多个版本的 Red Hat Ceph Storage,它会返回 DAEMON_OLD_VERSION 警告。当守护进程继续运行多个版本的 Red Hat Ceph Storage 时,会触发警告,超过 mon_warn_older_version_delay 选项中设置的时间值。默认情况下,mon_warn_older_version_delay 选项设置为一周。此设置允许大多数升级进行,而不会看到警告。如果升级过程暂停了较长的时间,您可以屏蔽健康警告:
ceph health mute DAEMON_OLD_VERSION --sticky
ceph health mute DAEMON_OLD_VERSION --sticky
升级完成后,取消健康警告:
ceph health unmute DAEMON_OLD_VERSION
ceph health unmute DAEMON_OLD_VERSION
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有主机的根级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
-
Red Hat Ceph Storage 5 提供的最新版本的 Ansible 和
ceph-ansible。 -
用于 Ansible 应用的
ansible用户帐户。 - 存储集群的节点已升级到 Red Hat Enterprise Linux 8.4 EUS 或更高版本。
Ansible 清单文件必须位于 ceph-ansible 目录中。
流程
在 Ansible 管理节点上启用 Ceph 和 Ansible 存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 管理节点上,确保安装了最新版本的
ansible和ceph-ansible软件包。语法
dnf update ansible ceph-ansible
dnf update ansible ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
/usr/share/ceph-ansible/目录:示例
cd /usr/share/ceph-ansible
[root@admin ~]# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5,请分别将它们重命名为
group_vars/osds.yml.sample和group_vars/clients.yml.sample文件,并将它们重命名为group_vars/osds.yml,并分别重命名为group_vars/clients.yml。示例
cp group_vars/osds.yml.sample group_vars/osds.yml cp group_vars/mdss.yml.sample group_vars/mdss.yml cp group_vars/rgws.yml.sample group_vars/rgws.yml cp group_vars/clients.yml.sample group_vars/clients.yml
[root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml [root@admin ceph-ansible]# cp group_vars/mdss.yml.sample group_vars/mdss.yml [root@admin ceph-ansible]# cp group_vars/rgws.yml.sample group_vars/rgws.yml [root@admin ceph-ansible]# cp group_vars/clients.yml.sample group_vars/clients.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5,请编辑
group_vars/all.yml文件来添加 Red Hat Ceph Storage 5 详情。 完成上述两个步骤后,将旧
yaml文件中的设置复制到新的yaml文件中。不要更改ceph_rhcs_version、ceph_docker_image和grafana_container_image的值,因为这些配置参数的值适用于 Red Hat Ceph Storage 5。这样可确保当前yaml文件中存在与集群相关的所有设置。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保将 Red Hat Ceph Storage 5 容器镜像设置为默认值。
编辑
group_vars/osds.yml文件。添加并设置以下选项:语法
nb_retry_wait_osd_up: 50 delay_wait_osd_up: 30
nb_retry_wait_osd_up: 50 delay_wait_osd_up: 30Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开
group_vars/all.yml文件,并验证旧的all.yml文件中是否存在以下值:使用来自旧
all.yml文件中的值相同的值设置fetch_directory选项:语法
fetch_directory: FULL_DIRECTORY_PATH
fetch_directory: FULL_DIRECTORY_PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 FULL_DIRECTORY_PATH 替换为可写入位置,如 Ansible 用户的主目录。
如果要升级的集群包含任何 Ceph 对象网关节点,请添加
radosgw_interface选项:radosgw_interface: INTERFACE
radosgw_interface: INTERFACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 INTERFACE 替换为 Ceph 对象网关节点侦听的接口。
如果您的当前设置配置了 SSL 证书,请编辑以下内容:
语法
radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME radosgw_frontend_port: 443
radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME radosgw_frontend_port: 443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 取消注释
upgrade_ceph_packages选项并将其设置为True:语法
upgrade_ceph_packages: True
upgrade_ceph_packages: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群每个节点有多个 Ceph 对象网关实例,请取消注释
radosgw_num_instances设置并将其设置为集群中每个节点的实例数量:语法
radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODE
radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw_num_instances : 2
radosgw_num_instances : 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果存储集群定义了 Ceph 对象网关多站点,请检查
all.yml中的多站点设置,以确保它们包含与旧all.yml文件中相同的值。
如果创建存储桶或具有
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
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 Ansible 管理节点上,以
ansible-user身份登录。 使用
--extra-vars选项更新infrastructure-playbooks/rolling_update.ymlplaybook,并将health_osd_check_retries和health_osd_check_delay值分别更改为50和30:示例
ansible-playbook -i hosts infrastructure-playbooks/rolling_update.yml --extra-vars "health_osd_check_retries=50 health_osd_check_delay=30"
[root@admin ceph-ansible]# ansible-playbook -i hosts infrastructure-playbooks/rolling_update.yml --extra-vars "health_osd_check_retries=50 health_osd_check_delay=30"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于每个 OSD 节点,这些值可使
ceph-ansible每 30 秒检查存储集群运行状况,最多 50 次。这意味着ceph-ansible会等待每个 OSD 最多 25 分钟。根据存储集群的已用存储容量,调整
health_osd_check_retries选项的值。例如,如果您使用了 436 TB 中的 218 TB(或 50% 的存储容量),则将health_osd_check_retries选项设置为50。/etc/ansible/hosts是 Ansible 清单文件的默认位置。运行
rolling_update.ymlplaybook,将存储集群从 Red Hat Ceph Storage 4 转换为 Red Hat Ceph Storage 5:语法
ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i INVENTORY_FILE
ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i INVENTORY_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow vvvv 选项收集升级过程的详细日志。
示例
ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i hosts
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要不支持将
--limitAnsible 选项与rolling_update.ymlplaybook 搭配使用。- 查看 Ansible playbook 日志输出,以验证升级的状态。
验证
列出所有正在运行的容器:
示例
podman ps
[root@mon ~]# podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查集群的健康状况。将 MONITOR_ID 替换为上一步中找到的 Ceph Monitor 容器的名称:
语法
podman exec ceph-mon-MONITOR_ID ceph -s
podman exec ceph-mon-MONITOR_ID ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
podman exec ceph-mon-mon01 ceph -s
[root@mon ~]# podman exec ceph-mon-mon01 ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Ceph 集群守护进程版本,以确认升级所有守护进程。将 MONITOR_ID 替换为上一步中找到的 Ceph Monitor 容器的名称:
语法
podman exec ceph-mon-MONITOR_ID ceph --cluster ceph versions
podman exec ceph-mon-MONITOR_ID ceph --cluster ceph versionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
podman exec ceph-mon-mon01 ceph --cluster ceph versions
[root@mon ~]# podman exec ceph-mon-mon01 ceph --cluster ceph versionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. 使用 cephadm将存储集群转换为 复制链接链接已复制到粘贴板!
将存储集群升级到 Red Hat Ceph Storage 5 后,运行 cephadm-adopt playbook 以转换存储集群守护进程以运行 cephadm。
cephadm-adopt playbook 采用 Ceph 服务,安装所有 cephadm 依赖项,启用 cephadm 编配器后端,在所有主机上生成和配置 ssh 密钥,并将主机添加到编配器配置中。
运行 cephadm-adopt playbook 后,删除 ceph-ansible 软件包。集群守护进程不再可用于 ceph-ansible。您必须使用 cephadm 来管理集群守护进程。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 对存储集群中所有节点的根级别访问权限。
流程
-
登录
ceph-ansible节点,再将目录更改为/usr/share/ceph-ansible。 编辑
all.yml文件。语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
cephadm-adoptplaybook:语法
ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i INVENTORY_FILE
ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i INVENTORY_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i hosts
[ceph-admin@admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/cephadm-adopt.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将最小 compat 客户端参数设置为
luminous:示例
[ceph: root@node0 /]# ceph osd set-require-min-compat-client luminous
[ceph: root@node0 /]# ceph osd set-require-min-compat-client luminousCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使应用在 NFS-Ganesha 池上运行:POOL_NAME 为
nfs-ganesha,APPLICATION_NAME 是您要启用的应用的名称,如cephfs、rbd或rgw。语法
ceph osd pool application enable POOL_NAME APPLICATION_NAME
ceph osd pool application enable POOL_NAME APPLICATION_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@node0 /]# ceph osd pool application enable nfs-ganesha rgw
[ceph: root@node0 /]# ceph osd pool application enable nfs-ganesha rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在将存储集群从 Red Hat Ceph Storage 4 迁移到 Red Hat Ceph Storage 5 后,
cephadm-adoptplaybook 不会启动 rbd-mirror。要临时解决这个问题,请手动添加 peer:
语法
rbd mirror pool peer add POOL_NAME CLIENT_NAME@CLUSTER_NAME
rbd mirror pool peer add POOL_NAME CLIENT_NAME@CLUSTER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@node0 /]# rbd --cluster site-a mirror pool peer add image-pool client.rbd-mirror-peer@site-b
[ceph: root@node0 /]# rbd --cluster site-a mirror pool peer add image-pool client.rbd-mirror-peer@site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 升级后删除 Grafana:
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在存储集群中获取 Grafana 的名称:
示例
[ceph: root@host01 /]# ceph orch ps --daemon_type grafana
[ceph: root@host01 /]# ceph orch ps --daemon_type grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 Grafana:
语法
ceph orch daemon rm GRAFANA_DAEMON_NAME
ceph orch daemon rm GRAFANA_DAEMON_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch daemon rm grafana.host01 Removed grafana.host01 from host 'host01'
[ceph: root@host01 /]# ceph orch daemon rm grafana.host01 Removed grafana.host01 from host 'host01'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待几分钟并检查最新的日志:
示例
[ceph: root@host01 /]# ceph log last cephadm
[ceph: root@host01 /]# ceph log last cephadmCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm重新部署 Grafana 服务和守护进程。
2.8. 在升级的存储集群中安装 cephadm-ansible 复制链接链接已复制到粘贴板!
cephadm-ansible 是 Ansible playbook 的集合,可简化由 cephadm 所涵盖的工作流。安装后,playbook 位于 /usr/share/cephadm-ansible/ 中。
在将新节点或新客户端添加到升级的存储集群之前,请运行 cephadm-preflight.yml playbook。
先决条件
- 对 Ansible 管理节点的根级别访问权限.
- 具有适当权利的有效的红帽订阅.
- 用于访问 Red Hat Registry 的有效红帽网络 (RHN) 或服务帐户。
流程
卸载
ansible和旧的ceph-ansible软件包:语法
dnf remove ansible ceph-ansible
dnf remove ansible ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 管理节点上禁用 Ansible 存储库并启用 Ceph 存储库:
Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --disable=ansible-2.9-for-rhel-8-x86_64-rpms
[root@admin ~]# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --disable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms --disable=ansible-2.9-for-rhel-9-x86_64-rpms
[root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms --enable=rhel-9-for-x86_64-appstream-rpms --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms --disable=ansible-2.9-for-rhel-9-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
cephadm-ansible软件包,该软件包将ansible-core作为依赖项安装:语法
dnf install cephadm-ansible
dnf install cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 使用 cephadm 升级 Red Hat Ceph Storage 集群 复制链接链接已复制到粘贴板!
作为存储管理员,您可以使用 cephadm Orchestrator 升级 Red Hat Ceph Storage 5.0 及更高版本。
自动化升级流程遵循 Ceph 最佳实践。例如:
- 升级顺序从 Ceph 管理器、Ceph 监控器开始,然后是其他守护进程。
- 只有在 Ceph 指示集群可用后,每一守护进程才会重新启动。
存储集群健康状态可能会在升级过程中切换到 HEALTH_WARNING。升级完成后,健康状态应该切回到 HEALTH_OK。
支持直接从 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 7。
在 Ceph Object Gateway 存储集群中(单站点或多站点)升级到 Red Hat Ceph Storage 5.2 被支持,但在升级您的存储集群前需要设置 ceph config set mgr mgr/cephadm/no_five_one_rgw true --force 选项。
如需更多信息,请参阅 Red Hat Ceph Storage 5.2 发行注记中的Red Hat Red Hat Ceph Storage 5.2 中的 RADOS Gateway (RGW) 升级支持限制和已知问题部分。
Red Hat Ceph Storage 5 目前不支持 ceph-ansible。这意味着,当您将存储集群迁移到 Red Hat Ceph Storage 5 后,您必须使用 cephadm 和 cephadm-ansible 执行后续更新。
Red Hat Enterprise Linux 9 及更新的版本不支持 cephadm-ansible playbook。
升级成功后,您不会收到消息。运行 ceph versions 和 ceph orch ps 命令,以验证新的镜像 ID 和存储集群的版本。
3.1. 升级 Red Hat Ceph Storage 集群 复制链接链接已复制到粘贴板!
您可以使用 ceph orch upgrade 命令升级 Red Hat Ceph Storage 5.0 集群。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群 5。
- Red Hat Enterprise Linux 8.4 EUS 或更高版本。
- 所有节点的根级别访问权限。
-
具有 sudo 的 Ansible 用户,对存储集群中所有节点的
ssh访问和免密码访问。 - 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
Red Hat Ceph Storage 5 还包括一个健康检查功能,如果它检测到存储集群中的任何守护进程正在运行多个版本的 RHCS,它会返回 DAEMON_OLD_VERSION 警告。当守护进程继续运行多个版本的 Red Hat Ceph Storage 时,会触发警告,超过 mon_warn_older_version_delay 选项中设置的时间值。默认情况下,mon_warn_older_version_delay 选项设置为 1 周。此设置允许大多数升级进行,而不会看到警告。如果升级过程暂停了较长的时间,您可以屏蔽健康警告:
ceph health mute DAEMON_OLD_VERSION --sticky
ceph health mute DAEMON_OLD_VERSION --sticky
升级完成后,取消健康警告:
ceph health unmute DAEMON_OLD_VERSION
ceph health unmute DAEMON_OLD_VERSION
流程
更新
cephadm和cephadm-ansible软件包:示例
dnf update cephadm dnf update cephadm-ansible
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
/usr/share/cephadm-ansible/目录:示例
cd /usr/share/cephadm-ansible
[root@admin ~]# cd /usr/share/cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果创建存储桶或具有
num_shards = 0, 请在规划升级到 Red Hat Ceph Storage 5.3 前手动重新划分存储桶:语法
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME
radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket
[ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在存储集群的 bootstrap 主机上,运行 preflight playbook,并将
upgrade_ceph_packages参数设置为true:语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"
[ceph-admin@admin cephdm-ansible]$ ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=rhcs upgrade_ceph_packages=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此软件包升级所有节点上的
cephadm。登录
cephadmshell:示例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 OSD
noout、noscrub、和nodeep-scrub标记,以防止 OSD 在升级过程中被标记为 out,并避免对集群造成不必要的负载:示例
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查服务版本和可用目标容器:
语法
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-5-rhel8:latest
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-5-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意镜像名称适用于 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9。
升级存储集群:
语法
ceph orch upgrade start IMAGE_NAME
ceph orch upgrade start IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start registry.redhat.io/rhceph/rhceph-5-rhel8:latest
[ceph: root@host01 /]# ceph orch upgrade start registry.redhat.io/rhceph/rhceph-5-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要执行交错升级,请参阅执行交错升级。
在升级过程中,
ceph status输出中会出现一个进度条。示例
[ceph: root@host01 /]# ceph status [...] progress: Upgrade to 16.2.0-146.el8cp (1s) [............................][ceph: root@host01 /]# ceph status [...] progress: Upgrade to 16.2.0-146.el8cp (1s) [............................]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在升级 Ceph 集群后如果不使用
cephadm-ansibleplaybook,则必须升级客户端节点上的ceph-common软件包和客户端库。示例
[root@client01 ~] dnf update ceph-common
[root@client01 ~] dnf update ceph-commonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您是否具有最新版本:
示例
[root@client01 ~] ceph --version
[root@client01 ~] ceph --versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 升级完成后,取消设置
noout、noscrub和nodeep-scrub标记:示例
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 在断开连接的环境中升级 Red Hat Ceph Storage 集群 复制链接链接已复制到粘贴板!
您可以使用 --image 标签在断开连接的环境中升级存储集群。
您可以使用 ceph orch upgrade 命令升级 Red Hat Ceph Storage 5 集群。
Red Hat Enterprise Linux 9 及更新的版本不支持 cephadm-ansible playbook。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群 5。
- Red Hat Enterprise Linux 8.4 EUS 或更高版本。
- 所有节点的根级别访问权限。
-
具有 sudo 的 Ansible 用户,对存储集群中所有节点的
ssh访问和免密码访问。 - 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
- 将节点注册到 CDN 并附加订阅。
- 在断开连接的环境中检查客户容器镜像,并根据需要更改配置。如需了解更多详细信息,请参阅 Red Hat Ceph Storage 安装指南中的为断开连接的安装更改自定义容器镜像的配置。
默认情况下,监控堆栈组件根据主 Ceph 镜像进行部署。对于存储集群的断开连接环境,您必须使用最新的监控堆栈组件镜像。
| 监控堆栈组件 | Red Hat Ceph Storage 版本 | 镜像详情 |
|---|---|---|
| Prometheus | Red Hat Ceph Storage 5.0 和 5.1 | registry.redhat.io/openshift4/ose-prometheus:v4.6 |
| Red Hat Ceph Storage 5.2 开始 | registry.redhat.io/openshift4/ose-prometheus:v4.10 | |
| Grafana | 所有 Red Hat Ceph Storage 5 版本 | registry.redhat.io/rhceph/rhceph-5-dashboard-rhel8:latest |
| Node-exporter | Red Hat Ceph Storage 5.0 | registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.5 |
| Red Hat Ceph Storage 5.0z1 and 5.1 | registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6 | |
| Red Hat Ceph Storage 5.2 开始 | registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.10 | |
| AlertManager | Red Hat Ceph Storage 5.0 | registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.5 |
| Red Hat Ceph Storage 5.0z1 and 5.1 | registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.6 | |
| Red Hat Ceph Storage 5.2 开始 | registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.10 | |
| HAProxy | Red Hat Ceph Storage 5.1 以后 | registry.redhat.io/rhceph/rhceph-haproxy-rhel8:latest |
| Keepalived | Red Hat Ceph Storage 5.1 以后 | registry.redhat.io/rhceph/keepalived-rhel8:latest |
| SNMP Gateway | Red Hat Ceph Storage 5.0 以后 | registry.redhat.io/rhceph/snmp-notifier-rhel8:latest |
流程
更新
cephadm和cephadm-ansible软件包。示例
dnf update cephadm dnf update cephadm-ansible
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 preflight playbook,将
upgrade_ceph_packages参数设置为true,在存储集群中 bootstrapped 主机上将ceph_origin参数设置为custom:语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"
[ceph-admin@admin ~]$ ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此软件包升级所有节点上的
cephadm。登录
cephadmshell:示例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 OSD
noout、noscrub、和nodeep-scrub标记,以防止 OSD 在升级过程中被标记为 out,并避免对集群造成不必要的负载:示例
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查服务版本和可用目标容器:
语法
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8
[ceph: root@host01 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 升级存储集群:
语法
ceph orch upgrade start IMAGE_NAME
ceph orch upgrade start IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8
[ceph: root@host01 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-5-rhel8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在升级过程中,
ceph status输出中会出现一个进度条。示例
[ceph: root@host01 /]# ceph status [...] progress: Upgrade to 16.2.0-115.el8cp (1s) [............................][ceph: root@host01 /]# ceph status [...] progress: Upgrade to 16.2.0-115.el8cp (1s) [............................]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@host01 /]# ceph version [ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph version [ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 升级完成后,取消设置
noout、noscrub和nodeep-scrub标记:示例
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 交错升级 复制链接链接已复制到粘贴板!
作为存储管理员,您可以选择以阶段性的形式升级 Red Hat Ceph Storage 组件,而不是一次升级所有组件。从 Red Hat Ceph Storage 5.2 开始,您可以通过在ceph orch upgrade 命令中使用选项来限制要升级哪些守护进程。
如果要从不支持交错升级的版本进行升级,您需要首先手动升级 Ceph Manager (ceph-mgr) 守护进程。有关从之前版本执行交错升级的更多信息,请参阅从之前版本进行升级。
3.3.1. 交错升级选项 复制链接链接已复制到粘贴板!
从 Red Hat Ceph Storage 5.2 开始,ceph orch upgrade 命令提供了几个选项来以阶段性的方式升级集群组件。交错升级选项包括:
-
--daemon_types:
--daemon_types选项使用以逗号分隔的守护进程类型列表,只升级这些类型的守护进程。此选项的有效守护进程类型包括mgr、mon、crash、osd、mds、rgw、rbd-mirror、cephfs-mirror、iscsi和nfs。 -
--services:
--services选项与--daemon-types相互排斥,每次只能使用其中一个选项,仅升级属于这些服务的守护进程。例如,您无法同时提供 OSD 和 RGW 服务。 -
--hosts :您可以将
--hosts选项与--daemon_types、--services结合使用,或者单独使用这个选项。--hosts选项参数的格式与编配器 CLI 放置规格的命令行选项相同。 -
--limit:
--limit选项使用一个大于零的整数,它提供了cephadm要升级的守护进程的数量限制。您可以将--limit选项与--daemon_types、--services或--hosts组合使用。例如,如果要升级host01上的类型为osd的守护进程,并将限制设置为3,则cephadm将最多升级 host01 上的三个 OSD 守护进程。
3.3.2. 执行交错升级 复制链接链接已复制到粘贴板!
作为存储管理员,您可以使用 ceph orch upgrade 选项来限制单个升级命令升级哪些守护进程。
Cephadm 严格强制实施在升级场景中仍然存在的守护进程升级的顺序。当前升级顺序是:
- Ceph Manager 节点
- Ceph 监控节点
- Ceph-crash 守护进程
- Ceph OSD 节点
- Ceph 元数据服务器 (MDS) 节点
- Ceph 对象网关(RGW)节点
- Ceph RBD-mirror 节点
- CephFS-mirror 节点
- Ceph iSCSI 网关节点
- Ceph NFS 节点
如果您的参数所指定的守护进程升级没有遵循正常的顺序,则升级命令会阻止并记录在继续执行前需要先升级哪些守护进程。
示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest --hosts host02 Error EINVAL: Cannot start upgrade. Daemons with types earlier in upgrade order than daemons on given host need upgrading. Please first upgrade mon.ceph-host01 NOTE: Enforced upgrade order is: mgr -> mon -> crash -> osd -> mds -> rgw -> rbd-mirror -> cephfs-mirror -> iscsi -> nfs
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest --hosts host02
Error EINVAL: Cannot start upgrade. Daemons with types earlier in upgrade order than daemons on given host need upgrading.
Please first upgrade mon.ceph-host01
NOTE: Enforced upgrade order is: mgr -> mon -> crash -> osd -> mds -> rgw -> rbd-mirror -> cephfs-mirror -> iscsi -> nfs
先决条件
- 运行 Red Hat Ceph Storage 5.2 或更高版本的集群。
- 所有节点的根级别访问权限。
- 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
流程
登录
cephadmshell:示例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 OSD
noout、noscrub、和nodeep-scrub标记,以防止 OSD 在升级过程中被标记为 out,并避免对集群造成不必要的负载:示例
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查服务版本和可用目标容器:
语法
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-5-rhel8:latest
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-5-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 升级存储集群:
在特定主机上升级特定的守护进程类型:
语法
ceph orch upgrade start --image IMAGE_NAME --daemon-types DAEMON_TYPE1,DAEMON_TYPE2 --hosts HOST1,HOST2
ceph orch upgrade start --image IMAGE_NAME --daemon-types DAEMON_TYPE1,DAEMON_TYPE2 --hosts HOST1,HOST2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest --daemon-types mgr,mon --hosts host02,host03
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest --daemon-types mgr,mon --hosts host02,host03Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定特定的服务,并限制要升级的守护进程数量:
语法
ceph orch upgrade start --image IMAGE_NAME --services SERVICE1,SERVICE2 --limit LIMIT_NUMBER
ceph orch upgrade start --image IMAGE_NAME --services SERVICE1,SERVICE2 --limit LIMIT_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest --services rgw.example1,rgw1.example2 --limit 2
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest --services rgw.example1,rgw1.example2 --limit 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在交错升级时,如果使用限制参数,则在升级 Ceph Manager 守护进程后会刷新监控堆栈守护进程(包括 Prometheus 和
node-exporter)。由于使用了限制参数,Ceph Manager 升级需要更长时间才能完成。监控堆栈守护进程的版本可能不会在 Ceph 发行版本之间有所变化,在这种情况下,它们只会重新部署。注意对参数进行限制的升级命令会验证开始升级前的选项,这样可能需要拉取新的容器镜像。因此,在您提供限制参数时,
upgrade start命令可能需要一段时间才能返回。
要查看您仍然需要升级的守护进程,请运行
ceph orch upgrade check或ceph versions命令:示例
[ceph: root@host01 /]# ceph orch upgrade check --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest
[ceph: root@host01 /]# ceph orch upgrade check --image registry.redhat.io/rhceph/rhceph-5-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要完成交错升级,请验证所有剩余的服务的升级:
语法
ceph orch upgrade start --image IMAGE_NAME
ceph orch upgrade start --image IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-5-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 升级完成后,取消设置
noout、noscrub和nodeep-scrub标记:示例
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch psCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.3. 从之前的版本执行标签升级 复制链接链接已复制到粘贴板!
从 Red Hat Ceph Storage 5.2 开始,您可以通过提供必要的参数,在存储集群上执行标签升级。如果要从不支持交错升级的版本进行升级,您需要首先手动升级 Ceph Manager (ceph-mgr) 守护进程。升级 Ceph Manager 守护进程后,您可以传递限制参数来完成提取升级。
在尝试此步骤前,验证您至少有两个正在运行的 Ceph Manager 守护进程。
先决条件
- 运行 Red Hat Ceph Storage 5.0 或更高版本的集群。
- 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
流程
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确定哪个 Ceph Manager 处于活跃状态且处于待机状态:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 手动升级每个备用 Ceph Manager 守护进程:
语法
ceph orch daemon redeploy mgr.ceph-HOST.MANAGER_ID --image IMAGE_ID
ceph orch daemon redeploy mgr.ceph-HOST.MANAGER_ID --image IMAGE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch daemon redeploy mgr.ceph-host02.pzgrhz --image registry.redhat.io/rhceph/rhceph-5-rhel8:latest
[ceph: root@host01 /]# ceph orch daemon redeploy mgr.ceph-host02.pzgrhz --image registry.redhat.io/rhceph/rhceph-5-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 故障切换到升级的备用 Ceph Manager:
示例
[ceph: root@host01 /]# ceph mgr fail
[ceph: root@host01 /]# ceph mgr failCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查备用 Ceph Manager 现在是否活跃:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证活跃的 Ceph Manager 是否已升级到新版本:
语法
ceph tell mgr.ceph-HOST.MANAGER_ID version
ceph tell mgr.ceph-HOST.MANAGER_ID versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重复步骤 2 - 6,将剩余的 Ceph Manager 升级到新版本。
检查所有 Ceph Manager 是否已升级到新版本:
示例
[ceph: root@host01 /]# ceph mgr versions { "ceph version 16.2.8-12.el8cp (600e227816517e2da53d85f2fab3cd40a7483372) pacific (stable)": 2 }[ceph: root@host01 /]# ceph mgr versions { "ceph version 16.2.8-12.el8cp (600e227816517e2da53d85f2fab3cd40a7483372) pacific (stable)": 2 }Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 升级所有 Ceph Manager 后,您可以指定限制参数并完成交错升级的其余部分。
3.4. 监控和管理存储集群的升级 复制链接链接已复制到粘贴板!
运行 ceph orch upgrade start 命令以升级 Red Hat Ceph Storage 集群后,您可以检查升级过程的状态、暂停、恢复或停止。集群的健康状态在升级过程中更改为 HEALTH_WARNING。如果集群的主机离线,升级将暂停。
您需要在另一个守护进程后升级一个守护进程类型。如果无法升级守护进程,则会暂停升级。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群 5。
- 所有节点的根级别访问权限。
- 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
- 启动了存储集群的升级。
流程
确定升级是否正在进行以及集群要升级到的版本:
示例
[ceph: root@node0 /]# ceph orch upgrade status
[ceph: root@node0 /]# ceph orch upgrade statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意升级成功后,您不会收到消息。运行
ceph versions和ceph orch ps命令,以验证新的镜像 ID 和存储集群的版本。可选:暂停升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade pause
[ceph: root@node0 /]# ceph orch upgrade pauseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:恢复暂停的升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade resume
[ceph: root@node0 /]# ceph orch upgrade resumeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:停止升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade stop
[ceph: root@node0 /]# ceph orch upgrade stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. 升级错误消息故障排除 复制链接链接已复制到粘贴板!
下表显示了一些 cephadm 升级错误消息:如果 cephadm 升级因任何原因失败,存储集群健康状态中会出现错误消息。
| 错误消息 | 描述 |
|---|---|
| UPGRADE_NO_STANDBY_MGR | Ceph 需要活跃和备用管理器守护进程才能继续,但目前没有待机。 |
| UPGRADE_FAILED_PULL | Ceph 无法拉取目标版本的容器镜像。如果您指定不存在的版本或容器镜像(如 1.2.3),或者无法从集群中的一个或多个主机访问容器 registry,则会出现此情况。 |