2.5. 关闭并重启 Red Hat Ceph Storage 集群
您可以使用两种不同的方法关闭并重启 Red Hat Ceph Storage 集群: systemctl
命令和 Ceph Orchestrator。您可以选择关闭并重启集群的方法。
2.5.1. 使用 systemctl
命令关闭并重启集群
您可以使用 systemctl
命令来关闭并重启 Red Hat Ceph Storage 集群。此方法遵循 Linux 停止服务的方式。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 根级别访问权限.
流程
关闭 Red Hat Ceph Storage 集群
- 停止使用块设备镜像 RADOS 网关 - 此集群上的 Ceph 对象网关以及任何其他客户端的客户端。
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell
在继续操作前,集群必须处于健康状态(
Health_OK
以及所有的 PG 为active+clean
)。使用客户端密钥环在主机上(如 Ceph 监控器或 OpenStack 控制器节点)运行ceph status
,以确保集群健康。示例
[ceph: root@host01 /]# ceph -s
如果使用 Ceph 文件系统 (
CephFS
),请关闭CephFS
集群:语法
ceph fs set FS_NAME max_mds 1 ceph fs fail FS_NAME ceph status ceph fs set FS_NAME joinable false
示例
[ceph: root@host01 /]# ceph fs set cephfs max_mds 1 [ceph: root@host01 /]# ceph fs fail cephfs [ceph: root@host01 /]# ceph status [ceph: root@host01 /]# ceph fs set cephfs joinable false
设置
noout
、norecover
、norebalance
、nobackfill
、nodown
和pause
标志。在使用客户端密钥环的节点上运行以下命令,如 Ceph 监控器或 OpenStack 控制器节点:示例
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set norecover [ceph: root@host01 /]# ceph osd set norebalance [ceph: root@host01 /]# ceph osd set nobackfill [ceph: root@host01 /]# ceph osd set nodown [ceph: root@host01 /]# ceph osd set pause
重要上例仅用于停止服务和 OSD 节点上的每个 OSD,需要在每个 OSD 节点上重复。
- 如果 MDS 和 Ceph 对象网关节点位于自己的专用节点上,请将其关闭。
获取守护进程的 systemd 目标:
示例
[root@host01 ~]# systemctl list-units --type target | grep ceph ceph-0b007564-ec48-11ee-b736-525400fd02f8.target loaded active active Ceph cluster 0b007564-ec48-11ee-b736-525400fd02f8 ceph.target loaded active active All Ceph clusters and services
禁用包含集群 FSID 的目标:
示例
[root@host01 ~]# systemctl disable ceph-0b007564-ec48-11ee-b736-525400fd02f8.target Removed "/etc/systemd/system/multi-user.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target". Removed "/etc/systemd/system/ceph.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target".
停止目标:
示例
[root@host01 ~]# systemctl stop ceph-0b007564-ec48-11ee-b736-525400fd02f8.target
这会停止主机上需要停止的所有守护进程。
关闭该节点:
示例
[root@host01 ~]# shutdown Shutdown scheduled for Wed 2024-03-27 11:47:19 EDT, use 'shutdown -c' to cancel.
- 对集群中的所有节点重复上述步骤。
重新引导 Red Hat Ceph Storage 集群
- 如果涉及网络设备,请确保在打开任何 Ceph 主机或节点之前将其开机和稳定。
- 打开管理节点。
启用 systemd 目标以获取所有守护进程运行:
示例
[root@host01 ~]# systemctl enable ceph-0b007564-ec48-11ee-b736-525400fd02f8.target Created symlink /etc/systemd/system/multi-user.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target
/etc/systemd/system/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target. Created symlink /etc/systemd/system/ceph.target.wants/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target /etc/systemd/system/ceph-0b007564-ec48-11ee-b736-525400fd02f8.target. 启动 systemd 目标:
示例
[root@host01 ~]# systemctl start ceph-0b007564-ec48-11ee-b736-525400fd02f8.target
- 等待所有节点上线。验证所有服务都已启动,且节点之间没有网络连接的问题。
取消设置
noout
、norecover
、norebalance
、nobackfill
、nodown
和pause
标志。在使用客户端密钥环的节点上运行以下命令,如 Ceph 监控器或 OpenStack 控制器节点:示例
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset norecover [ceph: root@host01 /]# ceph osd unset norebalance [ceph: root@host01 /]# ceph osd unset nobackfill [ceph: root@host01 /]# ceph osd unset nodown [ceph: root@host01 /]# ceph osd unset pause
如果使用 Ceph 文件系统 (
CephFS
),请通过将joinable
标记设置为true
来使CephFS
集群重新启动:语法
ceph fs set FS_NAME joinable true
示例
[ceph: root@host01 /]# ceph fs set cephfs joinable true
验证
-
验证集群处于健康状态(
Health_OK
和所有 PGactive+clean
)。在具有客户端密钥环的节点上运行ceph 状态
,如 Ceph 监控器或 OpenStack 控制器节点,以确保集群健康。
示例
[ceph: root@host01 /]# ceph -s
其它资源
- 有关安装 Ceph 的更多信息,请参阅 Red Hat Ceph Storage 安装指南。
2.5.2. 使用 Ceph Orchestrator 关闭并重新引导集群
您还可以使用 Ceph Orchestrator 的功能来关闭并重启 Red Hat Ceph Storage 集群。在大多数情况下,它是一个单个系统登录,可以帮助关闭集群。
Ceph 编排器支持若干操作,如 start
, stop
, 和 restart
。您可以将这些命令与 systemctl
搭配使用,在某些情况下可以关闭或重新引导集群。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
关闭 Red Hat Ceph Storage 集群
- 停止使用该集群上的用户 Block Device Image 和 Ceph 对象网关以及任何其他客户端的客户端。
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell
在继续操作前,集群必须处于健康状态(
Health_OK
以及所有的 PG 为active+clean
)。使用客户端密钥环在主机上(如 Ceph 监控器或 OpenStack 控制器节点)运行ceph status
,以确保集群健康。示例
[ceph: root@host01 /]# ceph -s
如果使用 Ceph 文件系统 (
CephFS
),请关闭CephFS
集群:语法
ceph fs set FS_NAME max_mds 1 ceph fs fail FS_NAME ceph status ceph fs set FS_NAME joinable false ceph mds fail FS_NAME:N
示例
[ceph: root@host01 /]# ceph fs set cephfs max_mds 1 [ceph: root@host01 /]# ceph fs fail cephfs [ceph: root@host01 /]# ceph status [ceph: root@host01 /]# ceph fs set cephfs joinable false [ceph: root@host01 /]# ceph mds fail cephfs:1
设置
noout
、norecover
、norebalance
、nobackfill
、nodown
和pause
标志。在使用客户端密钥环的节点上运行以下命令,如 Ceph 监控器或 OpenStack 控制器节点:示例
[ceph: root@host01 /]# ceph osd set noout [ceph: root@host01 /]# ceph osd set norecover [ceph: root@host01 /]# ceph osd set norebalance [ceph: root@host01 /]# ceph osd set nobackfill [ceph: root@host01 /]# ceph osd set nodown [ceph: root@host01 /]# ceph osd set pause
停止 MDS 服务。
获取 MDS 服务名称:
示例
[ceph: root@host01 /]# ceph orch ls --service-type mds
使用上一步中获取的名称停止 MDS 服务:
语法
ceph orch stop SERVICE-NAME
停止 Ceph 对象网关服务。对部署的每个服务重复此操作。
获取 Ceph 对象网关服务名称:
示例
[ceph: root@host01 /]# ceph orch ls --service-type rgw
使用获取的名称停止 Ceph 对象网关服务:
语法
ceph orch stop SERVICE-NAME
停止 Alertmanager 服务:
示例
[ceph: root@host01 /]# ceph orch stop alertmanager
停止 node-exporter 服务,该服务是监控堆栈的一部分:
示例
[ceph: root@host01 /]# ceph orch stop node-exporter
停止 Prometheus 服务:
示例
[ceph: root@host01 /]# ceph orch stop prometheus
停止 Grafana 仪表板服务:
示例
[ceph: root@host01 /]# ceph orch stop grafana
停止崩溃的服务:
示例
[ceph: root@host01 /]# ceph orch stop crash
将 OSD 节点从 cephadm 节点关闭,每次关闭一个。对集群中的所有 OSD 重复此步骤。
获取 OSD ID:
示例
[ceph: root@host01 /]# ceph orch ps --daemon-type=osd
使用您获取的 OSD ID 关闭 OSD 节点:
示例
[ceph: root@host01 /]# ceph orch daemon stop osd.1 Scheduled to stop osd.1 on host 'host02'
逐一停止监视器。
识别托管该监控器的主机:
示例
[ceph: root@host01 /]# ceph orch ps --daemon-type mon
在每个主机上,停止该监控器。
确定
systemctl
单元名称:示例
[ceph: root@host01 /]# systemctl list-units ceph-* | grep mon
停止该服务:
语法
systemct stop SERVICE-NAME
- 关闭所有主机。
重新引导 Red Hat Ceph Storage 集群
- 如果涉及网络设备,请确保在打开任何 Ceph 主机或节点之前将其开机和稳定。
- 打开所有 Ceph 主机。
从 Cephadm shell 登录管理节点:
示例
[root@host01 ~]# cephadm shell
验证所有服务都处于运行状态:
示例
[ceph: root@host01 /]# ceph orch ls
确保集群健康状态为 'Health_OK'status:
示例
[ceph: root@host01 /]# ceph -s
取消设置
noout
、norecover
、norebalance
、nobackfill
、nodown
和pause
标志。在使用客户端密钥环的节点上运行以下命令,如 Ceph 监控器或 OpenStack 控制器节点:示例
[ceph: root@host01 /]# ceph osd unset noout [ceph: root@host01 /]# ceph osd unset norecover [ceph: root@host01 /]# ceph osd unset norebalance [ceph: root@host01 /]# ceph osd unset nobackfill [ceph: root@host01 /]# ceph osd unset nodown [ceph: root@host01 /]# ceph osd unset pause
如果使用 Ceph 文件系统 (
CephFS
),请通过将joinable
标记设置为true
来使CephFS
集群重新启动:语法
ceph fs set FS_NAME joinable true
示例
[ceph: root@host01 /]# ceph fs set cephfs joinable true
验证
-
验证集群处于健康状态(
Health_OK
和所有 PGactive+clean
)。在具有客户端密钥环的节点上运行ceph 状态
,如 Ceph 监控器或 OpenStack 控制器节点,以确保集群健康。
示例
[ceph: root@host01 /]# ceph -s
其它资源
- 有关安装 Ceph 的更多信息,请参阅 Red Hat Ceph Storage 安装指南