升级指南
升级 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.z 的最新版本。
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 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更新
cephadm和cephadm-ansible软件包:示例
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansible进入
/usr/share/cephadm-ansible/目录:示例
[root@admin ~]# cd /usr/share/cephadm-ansible在存储集群的 bootstrap 主机上,运行 preflight playbook,并将
upgrade_ceph_packages参数设置为true:语法
ansible-playbook -i INVENTORY_FILE 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"此软件包升级所有节点上的
cephadm。登录
cephadmshell:示例
[root@host01 ~]# cephadm shell确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s设置 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 orch upgrade check IMAGE_NAME示例
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest注意镜像名称适用于 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9。
升级存储集群:
语法
ceph orch upgrade start IMAGE_NAME示例
[ceph: root@host01 /]# ceph orch upgrade start registry.redhat.io/rhceph/rhceph-6-rhel9:latest注意要执行交错升级,请参阅执行交错升级。
在升级过程中,
ceph status输出中会出现一个进度条。示例
[ceph: root@host01 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (1s) [............................]验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps注意在升级 Ceph 集群后如果不使用
cephadm-ansibleplaybook,则必须升级客户端节点上的ceph-common软件包和客户端库。示例
[root@client01 ~] dnf update ceph-common验证您是否具有最新版本:
示例
[root@client01 ~] ceph --version升级完成后,取消设置
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
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更新
cephadm和cephadm-ansible软件包。示例
[root@admin ~]# dnf update cephadm [root@admin ~]# dnf update cephadm-ansible运行 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"示例
[ceph-admin@admin ~]$ ansible-playbook -i /etc/ansible/hosts cephadm-preflight.yml --extra-vars "ceph_origin=custom upgrade_ceph_packages=true"此软件包升级所有节点上的
cephadm。登录
cephadmshell:示例
[root@node0 ~]# cephadm shell确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@node0 /]# ceph -s设置 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 orch upgrade check IMAGE_NAME示例
[ceph: root@node0 /]# ceph orch upgrade check LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9升级存储集群:
语法
ceph orch upgrade start IMAGE_NAME示例
[ceph: root@node0 /]# ceph orch upgrade start LOCAL_NODE_FQDN:5000/rhceph/rhceph-6-rhel9在升级过程中,
ceph status输出中会出现一个进度条。示例
[ceph: root@node0 /]# ceph status [...] progress: Upgrade to 17.2.6-70.el9cp (1s) [............................]验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph versions [ceph: root@node0 /]# ceph orch ps升级完成后,取消设置
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
第 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使用 Leapp 程序一次执行主机升级一个节点。
在使用 Leapp 执行主机升级前,放置相应的节点维护模式。
语法
ceph orch host maintenance enter HOST示例
ceph orch host maintenance enter host01在使用
--enablerepo参数执行 Leapp 命令时手动启用 ceph 工具存储库。示例
leapp upgrade --enablerepo rhceph-5-tools-for-rhel-9-x86_64-rpms请参阅红帽客户门户网站中的在 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
验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@node0 /]# ceph version [ceph: root@node0 /]# ceph orch ps- 按照 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 的最新版本。
先决条件
- 在 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 的最新版本。
先决条件
- 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在重新置备 admin 节点时,将第二个节点标记为 admin 以管理集群。
语法
ceph orch host label add HOSTNAME admin示例
[ceph: root@host01 /]# ceph orch host label add host02 admin设置
noout标志。示例
[ceph: root@host01 /]# ceph osd set noout排空主机中的所有守护进程:
语法
ceph orch host drain HOSTNAME --force示例
[ceph: root@host01 /]# ceph orch host drain host02 --force_no_schedule标签自动应用到阻止部署的主机。检查所有守护进程是否已从存储集群中移除:
语法
ceph orch ps HOSTNAME示例
[ceph: root@host01 /]# ceph orch ps host02检查移除 OSD 的状态:
示例
[ceph: root@host01 /]# ceph orch osd rm status当 OSD 上没有剩余的放置组(PG)时,该 OSD 会停用并从存储集群中移除。
zap 设备,以便在主机排空时有 OSD,则它们可用于在主机重新添加时重新部署 OSD。
语法
ceph orch device zap HOSTNAME DISK [--force]示例
[ceph: root@host01 /]# ceph orch device zap ceph-host02 /dev/vdb [--force] zap successful for /dev/vdb on ceph-host02从集群中删除主机:
语法
ceph orch host rm HOSTNAME --force示例
[ceph: root@host01 /]# ceph orch host rm host02 --force- 将相应的主机从 RHEL 8 重新置备到 RHEL 9,如 从 RHEL 8 升级到 RHEL 9 所述。
使用
--limit选项运行 preflight playbook:语法
ansible-playbook -i INVENTORY_FILE cephadm-preflight.yml --limit NEWHOST_NAME示例
[ceph: root@host01 /]# ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin={storage-product}" --limit host02preflight playbook 在新主机上安装
podman、lvm2、chronyd和cephadm。安装完成后,cephadm驻留在/usr/sbin/目录中。将集群的公共 SSH 密钥提取到文件夹:
语法
ceph cephadm get-pub-key ~/PATH示例
[ceph: root@host01 /]# ceph cephadm get-pub-key ~/ceph.pub将 Ceph 集群的公共 SSH 密钥复制到重新置备的节点:
语法
ssh-copy-id -f -i ~/PATH root@HOST_NAME_2示例
[ceph: root@host01 /]# ssh-copy-id -f -i ~/ceph.pub root@host02可选:如果移除的主机有一个 monitor 守护进程,则在将主机添加到集群前,请添加
--unmanaged标志来监控部署。语法
ceph orch apply mon PLACEMENT --unmanaged
再次将主机添加到集群中,并添加之前存在的标签:
语法
ceph orch host add HOSTNAME IP_ADDRESS --labels=LABELS可选:如果移除的主机最初部署了一个监控器守护进程,则需要使用 location 属性手动添加 monitor 守护进程,如将 tiebreaker 替换为新的监控器 中所述。
语法
ceph mon add HOSTNAME IP LOCATION示例
[ceph: root@host01 /]# ceph mon add ceph-host02 10.0.211.62 datacenter=DC2语法
ceph orch daemon add mon HOSTNAME示例
[ceph: root@host01 /]# ceph orch daemon add mon ceph-host02
验证 re-provisioned 主机上的守护进程使用相同的 ceph 版本成功运行:
语法
ceph orch ps将 monitor 守护进程放置重新设置为
managed。注意此步骤需要逐一完成。
语法
ceph orch apply mon PLACEMENT- 对所有主机重复上述步骤。
- 按照相同的方法重新置备 admin 节点,并使用第二个管理节点管理集群。
- 再次将备份文件添加到节点。
-
.再次使用第二个管理节点将 admin 节点添加到集群中。将
mon部署设置为unmanaged。 - 遵循将 tiebreaker 替换为新 monitor,以重新添加旧的仲裁 mon 并删除之前创建的临时 mon。
取消设置
noout标志。语法
ceph osd unset noout- 验证 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
在重启实例时不需要按照一定顺序进行。红帽建议重启实例,使其指向主镜像池,然后实例指向镜像池。
先决条件
- 运行 Red Hat Ceph Storage 5.2 或更高版本的集群。
- 所有节点的根级别访问权限。
- 存储集群中至少有两个 Ceph 管理器节点:一个活跃节点和一个备用节点。
流程
登录
cephadmshell:示例
[root@host01 ~]# cephadm shell确定所有主机都在线,并且存储集群处于健康状态:
示例
[ceph: root@host01 /]# ceph -s设置 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 orch upgrade check IMAGE_NAME示例
[ceph: root@host01 /]# ceph orch upgrade check registry.redhat.io/rhceph/rhceph-6-rhel9:latest注意镜像名称适用于 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: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --daemon-types mgr,mon --hosts host02,host03指定特定的服务,并限制要升级的守护进程数量:
语法
ceph orch upgrade start --image IMAGE_NAME --services SERVICE1,SERVICE2 --limit LIMIT_NUMBER示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest --services rgw.example1,rgw1.example2 --limit 2注意在交错升级时,如果使用限制参数,则在升级 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 orch upgrade start --image IMAGE_NAME示例
[ceph: root@host01 /]# ceph orch upgrade start --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest
验证
验证 Ceph 集群的新 IMAGE_ID 和 VERSION :
示例
[ceph: root@host01 /]# ceph versions [ceph: root@host01 /]# ceph orch ps升级完成后,取消设置
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
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:
示例
[root@host01 ~]# cephadm shell确定哪个 Ceph Manager 处于活跃状态且处于待机状态:
示例
[ceph: root@host01 /]# ceph -s cluster: id: 266ee7a8-2a05-11eb-b846-5254002d4916 health: HEALTH_OK services: mon: 2 daemons, quorum host01,host02 (age 92s) mgr: host01.ndtpjh(active, since 16h), standbys: host02.pzgrhz手动升级每个备用 Ceph Manager 守护进程:
语法
ceph orch daemon redeploy mgr.ceph-HOST.MANAGER_ID --image IMAGE_ID示例
[ceph: root@host01 /]# ceph orch daemon redeploy mgr.ceph-host02.pzgrhz --image registry.redhat.io/rhceph/rhceph-6-rhel9:latest故障切换到升级的备用 Ceph Manager:
示例
[ceph: root@host01 /]# ceph mgr fail检查备用 Ceph Manager 现在是否活跃:
示例
[ceph: root@host01 /]# ceph -s cluster: id: 266ee7a8-2a05-11eb-b846-5254002d4916 health: HEALTH_OK services: mon: 2 daemons, quorum host01,host02 (age 1h) mgr: host02.pzgrhz(active, since 25s), standbys: host01.ndtpjh验证活跃的 Ceph Manager 是否已升级到新版本:
语法
ceph tell mgr.ceph-HOST.MANAGER_ID version示例
[ceph: root@host01 /]# ceph tell mgr.host02.pzgrhz version { "version": "16.2.8-12.el8cp", "release": "pacific", "release_type": "stable" }- 重复步骤 2 - 6,将剩余的 Ceph Manager 升级到新版本。
检查所有 Ceph Manager 是否已升级到新版本:
示例
[ceph: root@host01 /]# ceph mgr versions { "ceph version 16.2.8-12.el8cp (600e227816517e2da53d85f2fab3cd40a7483372) pacific (stable)": 2 }- 升级所有 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 versions和ceph orch ps命令,以验证新的镜像 ID 和存储集群的版本。可选:暂停升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade pause可选:恢复暂停的升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade resume可选:停止升级过程:
示例
[ceph: root@node0 /]# ceph orch upgrade stop
第 7 章 升级错误消息故障排除 复制链接链接已复制到粘贴板!
下表显示了一些 cephadm 升级错误消息:如果 cephadm 升级因任何原因失败,存储集群健康状态中会出现错误消息。
| 错误消息 | 描述 |
|---|---|
| UPGRADE_NO_STANDBY_MGR | Ceph 需要活跃和备用管理器守护进程才能继续,但目前没有待机。 |
| UPGRADE_FAILED_PULL | Ceph 无法拉取目标版本的容器镜像。如果您指定不存在的版本或容器镜像(如 1.2.3),或者无法从集群中的一个或多个主机访问容器 registry,则会出现此情况。 |