升级指南
升级 Red Hat Ceph Storage 集群
摘要
第 1 章 使用 cephadm 升级 Red Hat Ceph Storage 集群 复制链接链接已复制到粘贴板!
作为存储管理员,您可以使用 cephadm
Orchestrator 升级 Red Hat Ceph Storage 5 及更高版本。
不支持直接从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 6。
自动化升级流程遵循 Ceph 最佳实践。例如:
- 升级顺序从 Ceph 管理器、Ceph 监控器开始,然后是其他守护进程。
- 只有在 Ceph 指示集群可用后,每一守护进程才会重新启动。
存储集群健康状态可能会在升级过程中切换到 HEALTH_WARNING
。升级完成后,健康状态应该切回到 HEALTH_OK。
如果您有一个配置了多站点的 Red Hat Ceph Storage 6 集群,请不要升级到 6.1.z1 的最新版本,因为加密对象上数据损坏在复制到灾难恢复(DR)站点时可能会出现问题。
升级成功后,您不会收到消息。运行 ceph versions
和 ceph orch ps
命令,以验证新的镜像 ID 和存储集群的版本。
Ceph iSCSI 网关从 Red Hat Ceph Storage 6 中删除。因此,在从 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 6 之前,您需要管理 iSCSI LUN。
当您将 Red Hat Ceph Storage 集群从 RHCS 5 升级到 RHCS 6 时,会保留通过 iSCSI 导出的 RBD 镜像,因此不会丢失数据。但是,由于升级中的所有 iSCSI 目标都消失,所以数据暂时无法访问。要恢复数据,您可以使用 rbd device map
命令映射此类 RBD 镜像,或使用 rbd export
命令将它们导出到文件中。
1.1. RHCS 和 podman 版本间的兼容性注意事项 复制链接链接已复制到粘贴板!
Podman
和 Red Hat Ceph Storage 具有不同的生命周期结束策略,这可能会导致查找兼容版本变得困难。
红帽建议为 Red Hat Ceph Storage 使用相应 Red Hat Enterprise Linux 版本附带的 podman
版本。如需了解更多详细信息,请参阅 Red Hat Ceph Storage: 支持的配置知识库文章。如需了解更多帮助,请参阅 Red Hat Ceph Storage 故障排除指南中的 联系红帽支持 部分。
下表显示了 Red Hat Ceph Storage 6 和 podman
版本之间的版本兼容性。
Ceph | Podman | |||||
---|---|---|---|---|---|---|
1.9 | 2.0 | 2.1 | 2.2 | 3.0 | >3.0 | |
Red Hat Ceph Storage 6 | false | true | true | false | true | true |
要将 Podman 与 Red Hat Ceph Storage 5 及更高版本搭配使用,您必须使用版本 2.0.0 或更高版本的 Podman。
1.2. 升级 Red Hat Ceph Storage 集群 复制链接链接已复制到粘贴板!
您可以使用 ceph orch upgrade
命令升级 Red Hat Ceph Storage 5.0 集群。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群 5。
-
Red Hat Enterprise Linux 9.0 或更高版本,带有
ansible-core
捆绑到 AppStream。 - 所有节点的根级别访问权限。
-
具有 sudo 的 Ansible 用户,对存储集群中所有节点的
ssh
访问和免密码访问。 - 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
在升级到最新版本的 Red Hat Ceph Storage 6.1 之前,请升级到 Red Hat Ceph Storage 5.3.z5 的最新版本。
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
流程
在 Ansible 管理节点上启用 Ceph Ansible 存储库:
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新
cephadm
和cephadm-ansible
软件包:示例
dnf update cephadm dnf update cephadm-ansible
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
/usr/share/cephadm-ansible/
目录:示例
cd /usr/share/cephadm-ansible
[root@admin ~]# cd /usr/share/cephadm-ansible
Copy 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 cephadm-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
。登录
cephadm
shell:示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
Copy 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-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查服务版本和可用目标容器:
语法
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest
Copy 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_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start registry.redhat.io/rhceph/rhceph-6-rhel9:latest
[ceph: root@host01 /]# ceph orch upgrade start registry.redhat.io/rhceph/rhceph-6-rhel9:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要执行交错升级,请参阅执行交错升级。
在升级过程中,
ceph status
输出中会出现一个进度条。示例
[ceph: root@host01 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (1s) [............................]
[ceph: root@host01 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (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 ps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在升级 Ceph 集群后如果不使用
cephadm-ansible
playbook,则必须升级客户端节点上的ceph-common
软件包和客户端库。示例
[root@client01 ~] dnf update ceph-common
[root@client01 ~] dnf update ceph-common
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您是否具有最新版本:
示例
[root@client01 ~] ceph --version
[root@client01 ~] ceph --version
Copy 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-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 在断开连接的环境中升级 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 9.0 或更高版本,带有
ansible-core
捆绑到 AppStream。 - 所有节点的根级别访问权限。
-
具有 sudo 的 Ansible 用户,对存储集群中所有节点的
ssh
访问和免密码访问。 - 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
- 将节点注册到 CDN 并附加订阅。
- 在断开连接的环境中检查客户容器镜像,并根据需要更改配置。如需了解更多详细信息,请参阅 Red Hat Ceph Storage 安装指南中的为断开连接的安装更改自定义容器镜像的配置。
默认情况下,监控堆栈组件根据主 Ceph 镜像进行部署。对于存储集群的断开连接环境,您必须使用最新的监控堆栈组件镜像。
监控堆栈组件 | 镜像详情 |
---|---|
Prometheus | registry.redhat.io/openshift4/ose-prometheus:v4.12 |
Grafana | registry.redhat.io/rhceph-6-dashboard-rhel9:latest |
Node-exporter | registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12 |
AlertManager | registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12 |
HAProxy | registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest |
Keepalived | registry.redhat.io/rhceph/keepalived-rhel9:latest |
SNMP Gateway | registry.redhat.io/rhceph/snmp-notifier-rhel9:latest |
流程
在 Ansible 管理节点上启用 Ceph Ansible 存储库:
Red Hat Enterprise Linux 9
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms
subscription-manager repos --enable=rhceph-6-tools-for-rhel-9-x86_64-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新
cephadm
和cephadm-ansible
软件包。示例
dnf update cephadm dnf update cephadm-ansible
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansible
Copy 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
。登录
cephadm
shell:示例
cephadm shell
[root@node0 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@node0 /]# ceph -s
[ceph: root@node0 /]# ceph -s
Copy 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-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查服务版本和可用目标容器:
语法
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@node0 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9
[ceph: root@node0 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 升级存储集群:
语法
ceph orch upgrade start IMAGE_NAME
ceph orch upgrade start IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@node0 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9
[ceph: root@node0 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在升级过程中,
ceph status
输出中会出现一个进度条。示例
[ceph: root@node0 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (1s) [............................]
[ceph: root@node0 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (1s) [............................]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph versions [ceph: root@node0 /]# ceph orch ps
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph versions [ceph: root@node0 /]# ceph orch ps
Copy 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-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 将主机操作系统从 RHEL 8 升级到 RHEL 9 复制链接链接已复制到粘贴板!
您可以使用 Leapp 程序执行 Red Hat Ceph Storage 主机操作系统从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 5 集群。
以下是容器化 Ceph 守护进程支持的组合。有关更多信息,请参阅 Red Hat Ceph Storage 安装指南中的 colocation 的工作原理及其优点 部分。
-
Ceph 元数据服务器(
ceph-mds
)、Ceph OSD (ceph-osd
)和 Ceph 对象网关(radosgw
) -
Ceph Monitor (
ceph-mon
) 或 Ceph 管理器(ceph-mgr
)、Ceph OSD (ceph-osd
)和 Ceph 对象网关(radosgw
) -
Ceph Monitor (
ceph-mon
)、Ceph Manager (ceph-mgr
)、Ceph OSD (ceph-osd
)和 Ceph 对象网关(radosgw
)
流程
- 在带有服务的 Red Hat Enterprise Linux 8 上部署 Red Hat Ceph Storage 5。
验证集群包含两个 admin 节点,以便在一个 admin 节点(使用 _admin
标签)执行主机升级时,可以使用第二个 admin 来管理集群。
具体说明,请参阅 Red Hat Ceph Storage 安装指南中的 Red Hat Ceph Storage 安装,以及使用操作指南中的服务规格部署 Ceph 守护进程。
在 Ceph OSD 上设置
noout
标志。示例
[ceph: root@host01 /]# ceph osd set noout
[ceph: root@host01 /]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Leapp 程序一次执行主机升级一个节点。
在使用 Leapp 执行主机升级前,放置相应的节点维护模式。
语法
ceph orch host maintenance enter HOST
ceph orch host maintenance enter HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph orch host maintenance enter host01
ceph orch host maintenance enter host01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在使用
--enablerepo
参数执行 Leapp 命令时手动启用 ceph 工具存储库。示例
leapp upgrade --enablerepo rhceph-5-tools-for-rhel-9-x86_64-rpms
leapp upgrade --enablerepo rhceph-5-tools-for-rhel-9-x86_64-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请参阅红帽客户门户网站中的在 Red Hat Enterprise Linux 产品文档中将 RHEL 8 升级到 RHEL 9。
重要执行从 Red Hat Enterprise Linux 8 原位升级到 Red Hat Enterprise Linux 9 后,您需要手动启用并启动
logrotate.timer
服务。systemctl start logrotate.timer systemctl enable logrotate.timer
# systemctl start logrotate.timer # systemctl enable logrotate.timer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph orch ps
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph orch ps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 按照 Red Hat Ceph Storage 升级指南中的升级 Red Hat Ceph Storage 集群步骤,继续 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 6。
第 3 章 将 RHCS 5 升级到 RHCS 6,涉及 RHEL 8 到 RHEL 9 升级 复制链接链接已复制到粘贴板!
从 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 6。升级包括从 Red Hat Enterprise Linux 8 升级到 Red Hat Enterprise Linux 9。
在升级到最新版本的 Red Hat Ceph Storage 6.1 之前,请升级到 Red Hat Ceph Storage 5.3.z5 的最新版本。
先决条件
- 在 Red Hat Enterprise Linux 8 上运行 Red Hat Ceph Storage 5 集群。
-
Ceph 二进制文件备份(
/usr/sbin/cephadm
)、ceph.pub (/etc/ceph
)和来自管理节点的 Ceph 集群的公共 SSH 密钥。
流程
- 在集群的所有主机上升级 Red Hat Enterprise Linux 版本。具体步骤请参阅 将 主机操作系统从 RHEL 8 升级到 RHEL 9 以了解这些步骤。
- 在 Red Hat Enterprise Linux 升级后,将 Red Hat Ceph Storage 节点注册到 CDN,并添加必要的存储库。具体步骤请参阅 将 Red Hat Ceph Storage 节点注册到 CDN 并附加订阅。
- 更新 Red Hat Ceph Storage。具体步骤请参阅 使用 cephadm 升级 Red Hat Ceph Storage 集群。
您可以执行从 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 6,涉及 Red Hat Enterprise Linux 8 到启用了扩展模式的 Red Hat Enterprise Linux 9。
在升级到最新版本的 Red Hat Ceph Storage 6.1 之前,请升级到 Red Hat Ceph Storage 5.3.z5 的最新版本。
先决条件
- Red Hat Ceph Storage 5 on Red Hat Enterprise Linux 8,在启用了扩展模式的情况下运行了必要的主机和守护进程。
-
Ceph 二进制文件备份(
/usr/sbin/cephadm
)、ceph.pub (/etc/ceph
)和来自管理节点的 Ceph 集群的公共 SSH 密钥。
无法从主机排空或移除仲裁程序监控器。因此,需要将仲裁 mon 重新置备到另一个 tie-breaker 节点,然后从主机排空或删除 ,如将 tiebreaker 替换为新的监控器所述
流程
登录到 Cephadm shell:
示例
[ceph: root@host01 /]# cephadm shell
[ceph: root@host01 /]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在重新置备 admin 节点时,将第二个节点标记为 admin 以管理集群。
语法
ceph orch host label add HOSTNAME admin
ceph orch host label add HOSTNAME admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch host label add host02 admin
[ceph: root@host01 /]# ceph orch host label add host02 admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
noout
标志。示例
[ceph: root@host01 /]# ceph osd set noout
[ceph: root@host01 /]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 排空主机中的所有守护进程:
语法
ceph orch host drain HOSTNAME --force
ceph orch host drain HOSTNAME --force
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch host drain host02 --force
[ceph: root@host01 /]# ceph orch host drain host02 --force
Copy to Clipboard Copied! Toggle word wrap Toggle overflow _no_schedule
标签自动应用到阻止部署的主机。检查所有守护进程是否已从存储集群中移除:
语法
ceph orch ps HOSTNAME
ceph orch ps HOSTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch ps host02
[ceph: root@host01 /]# ceph orch ps host02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查移除 OSD 的状态:
示例
[ceph: root@host01 /]# ceph orch osd rm status
[ceph: root@host01 /]# ceph orch osd rm status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当 OSD 上没有剩余的放置组(PG)时,该 OSD 会停用并从存储集群中移除。
zap 设备,以便在主机排空时有 OSD,则它们可用于在主机重新添加时重新部署 OSD。
语法
ceph orch device zap HOSTNAME DISK [--force]
ceph orch device zap HOSTNAME DISK [--force]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch device zap ceph-host02 /dev/vdb [--force] zap successful for /dev/vdb on ceph-host02
[ceph: root@host01 /]# ceph orch device zap ceph-host02 /dev/vdb [--force] zap successful for /dev/vdb on ceph-host02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从集群中删除主机:
语法
ceph orch host rm HOSTNAME --force
ceph orch host rm HOSTNAME --force
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch host rm host02 --force
[ceph: root@host01 /]# ceph orch host rm host02 --force
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将相应的主机从 RHEL 8 重新置备到 RHEL 9,如 从 RHEL 8 升级到 RHEL 9 所述。
使用
--limit
选项运行 preflight playbook:语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --limit NEWHOST_NAME
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --limit NEWHOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin={storage-product}" --limit host02
[ceph: root@host01 /]# ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin={storage-product}" --limit host02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow preflight playbook 在新主机上安装
podman
、lvm2
、chronyd
和cephadm
。安装完成后,cephadm
驻留在/usr/sbin/
目录中。将集群的公共 SSH 密钥提取到文件夹:
语法
ceph cephadm get-pub-key ~/PATH
ceph cephadm get-pub-key ~/PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph cephadm get-pub-key ~/ceph.pub
[ceph: root@host01 /]# ceph cephadm get-pub-key ~/ceph.pub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Ceph 集群的公共 SSH 密钥复制到重新置备的节点:
语法
ssh-copy-id -f -i ~/PATH root@HOST_NAME_2
ssh-copy-id -f -i ~/PATH root@HOST_NAME_2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ssh-copy-id -f -i ~/ceph.pub root@host02
[ceph: root@host01 /]# ssh-copy-id -f -i ~/ceph.pub root@host02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果移除的主机有一个 monitor 守护进程,则在将主机添加到集群前,请添加
--unmanaged
标志来监控部署。语法
ceph orch apply mon PLACEMENT --unmanaged
ceph orch apply mon PLACEMENT --unmanaged
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
再次将主机添加到集群中,并添加之前存在的标签:
语法
ceph orch host add HOSTNAME IP_ADDRESS --labels=LABELS
ceph orch host add HOSTNAME IP_ADDRESS --labels=LABELS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果移除的主机最初部署了一个监控器守护进程,则需要使用 location 属性手动添加 monitor 守护进程,如将 tiebreaker 替换为新的监控器 中所述。
语法
ceph mon add HOSTNAME IP LOCATION
ceph mon add HOSTNAME IP LOCATION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph mon add ceph-host02 10.0.211.62 datacenter=DC2
[ceph: root@host01 /]# ceph mon add ceph-host02 10.0.211.62 datacenter=DC2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 语法
ceph orch daemon add mon HOSTNAME
ceph orch daemon add mon HOSTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch daemon add mon ceph-host02
[ceph: root@host01 /]# ceph orch daemon add mon ceph-host02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证 re-provisioned 主机上的守护进程使用相同的 ceph 版本成功运行:
语法
ceph orch ps
ceph orch ps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 monitor 守护进程放置重新设置为
managed
。注意此步骤需要逐一完成。
语法
ceph orch apply mon PLACEMENT
ceph orch apply mon PLACEMENT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 对所有主机重复上述步骤。
- 按照相同的方法重新置备 admin 节点,并使用第二个管理节点管理集群。
- 再次将备份文件添加到节点。
-
.再次使用第二个管理节点将 admin 节点添加到集群中。将
mon
部署设置为unmanaged
。 - 遵循将 tiebreaker 替换为新 monitor,以重新添加旧的仲裁 mon 并删除之前创建的临时 mon。
取消设置
noout
标志。语法
ceph osd unset noout
ceph osd unset noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证 Ceph 版本和集群状态,以确保所有 demons 在 Red Hat Enterprise Linux 升级后按预期工作。
- 现在,RHEL OS 已被成功 升级,请按照使用 cephadm 升级 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 6 升级。
第 5 章 交错升级 复制链接链接已复制到粘贴板!
作为存储管理员,您可以选择以阶段性的形式升级 Red Hat Ceph Storage 组件,而不是一次升级所有组件。从 Red Hat Ceph Storage 5.2 开始,您可以通过在ceph orch upgrade
命令中使用选项来限制要升级哪些守护进程。
如果要从不支持交错升级的版本进行升级,您需要首先手动升级 Ceph Manager (ceph-mgr
) 守护进程。有关从之前版本执行交错升级的更多信息,请参阅从之前版本进行升级。
Ceph iSCSI 网关从 Red Hat Ceph Storage 6 中删除。因此,在从 Red Hat Ceph Storage 5 升级到 Red Hat Ceph Storage 6 之前,您需要管理 iSCSI LUN。
当您将 Red Hat Ceph Storage 集群从 RHCS 5 升级到 RHCS 6 时,会保留通过 iSCSI 导出的 RBD 镜像,因此不会丢失数据。但是,由于升级中的所有 iSCSI 目标都消失,所以数据暂时无法访问。要恢复数据,您可以使用 rbd device map
命令映射此类 RBD 镜像,或使用 rbd export
命令将它们导出到文件中。
5.1. 交错升级选项 复制链接链接已复制到粘贴板!
从 Red Hat Ceph Storage 5.2 开始,ceph orch upgrade
命令提供了几个选项来以阶段性的方式升级集群组件。交错升级选项包括:
-
--daemon_types:
--daemon_types
选项使用以逗号分隔的守护进程类型列表,只升级这些类型的守护进程。此选项的有效守护进程类型包括mgr
,mon
,crash
,osd
,mds
,rgw
,rbd-mirror
,cephfs-mirror
, 和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 守护进程。
5.1.1. 执行交错升级 复制链接链接已复制到粘贴板!
作为存储管理员,您可以使用 ceph orch upgrade
选项来限制单个升级命令升级哪些守护进程。
Cephadm 严格强制实施在升级场景中仍然存在的守护进程升级的顺序。当前升级顺序是:
- Ceph Manager 节点
- Ceph 监控节点
- Ceph-crash 守护进程
- Ceph OSD 节点
- Ceph 元数据服务器 (MDS) 节点
- Ceph 对象网关(RGW)节点
- Ceph RBD-mirror 节点
- CephFS-mirror 节点
- Ceph NFS 节点
如果您的参数所指定的守护进程升级没有遵循正常的顺序,则升级命令会阻止并记录在继续执行前需要先升级哪些守护进程。
示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9: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
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9: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
在重启实例时不需要按照一定顺序进行。红帽建议重启实例,使其指向主镜像池,然后实例指向镜像池。
先决条件
- 运行 Red Hat Ceph Storage 5.2 或更高版本的集群。
- 所有节点的根级别访问权限。
- 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
流程
登录
cephadm
shell:示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
Copy 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-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查服务版本和可用目标容器:
语法
ceph orch upgrade check IMAGE_NAME
ceph orch upgrade check IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意镜像名称适用于 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9。
升级存储集群:
在特定主机上升级特定的守护进程类型:
语法
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,HOST2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --daemon-types mgr,mon --hosts host02,host03
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --daemon-types mgr,mon --hosts host02,host03
Copy 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_NUMBER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --services rgw.example1,rgw1.example2 --limit 2
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --services rgw.example1,rgw1.example2 --limit 2
Copy 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-6-rhel9:latest
[ceph: root@host01 /]# ceph orch upgrade check --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要完成交错升级,请验证所有剩余的服务的升级:
语法
ceph orch upgrade start --image IMAGE_NAME
ceph orch upgrade start --image IMAGE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
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 ps
Copy 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-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2. 从之前的版本执行标签升级 复制链接链接已复制到粘贴板!
从 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 shell
Copy 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_ID
Copy 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-6-rhel9:latest
[ceph: root@host01 /]# ceph orch daemon redeploy mgr.ceph-host02.pzgrhz --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 故障切换到升级的备用 Ceph Manager:
示例
[ceph: root@host01 /]# ceph mgr fail
[ceph: root@host01 /]# ceph mgr fail
Copy 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 version
Copy 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 后,您可以指定限制参数并完成交错升级的其余部分。
第 6 章 监控和管理存储集群的升级 复制链接链接已复制到粘贴板!
运行 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 status
Copy 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 pause
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:恢复暂停的升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade resume
[ceph: root@node0 /]# ceph orch upgrade resume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:停止升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade stop
[ceph: root@node0 /]# ceph orch upgrade stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 7 章 升级错误消息故障排除 复制链接链接已复制到粘贴板!
下表显示了一些 cephadm
升级错误消息:如果 cephadm
升级因任何原因失败,存储集群健康状态中会出现错误消息。
错误消息 | 描述 |
---|---|
UPGRADE_NO_STANDBY_MGR | Ceph 需要活跃和备用管理器守护进程才能继续,但目前没有待机。 |
UPGRADE_FAILED_PULL | Ceph 无法拉取目标版本的容器镜像。如果您指定不存在的版本或容器镜像(如 1.2.3),或者无法从集群中的一个或多个主机访问容器 registry,则会出现此情况。 |