2.6. 关闭并重启 Red Hat Ceph Storage 集群


您可以使用两种不同的方法关闭并重启 Red Hat Ceph Storage 集群: systemctl 命令和 Ceph Orchestrator。您可以选择关闭并重启集群的方法。

2.6.1. 使用 systemctl 命令关闭并重启集群

您可以使用 systemctl 命令来关闭并重启 Red Hat Ceph Storage 集群。此方法遵循 Linux 停止服务的方式。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 根级别访问权限.

流程

关闭 Red Hat Ceph Storage 集群

  1. 停止使用块设备镜像 RADOS 网关 - 此集群上的 Ceph 对象网关以及任何其他客户端的客户端。
  2. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell

  3. 在继续操作前,集群必须处于健康状态(Health_OK 以及所有的 PG 为 active+clean)。使用客户端密钥环在主机上(如 Ceph 监控器或 OpenStack 控制器节点)运行 ceph status,以确保集群健康。

    示例

    [ceph: root@host01 /]# ceph -s

  4. 如果使用 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

  5. 设置 nooutnorecovernorebalancenobackfillnodownpause 标志。在使用客户端密钥环的节点上运行以下命令,如 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 节点上重复。

  6. 如果 MDS 和 Ceph 对象网关节点位于自己的专用节点上,请将其关闭。
  7. 获取守护进程的 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

  8. 禁用包含集群 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".

  9. 停止目标:

    示例

    [root@host01 ~]# systemctl stop ceph-0b007564-ec48-11ee-b736-525400fd02f8.target

    这将停止主机上需要停止的所有守护进程。

  10. 关闭该节点:

    示例

    [root@host01 ~]# shutdown
    Shutdown scheduled for Wed 2024-03-27 11:47:19 EDT, use 'shutdown -c' to cancel.

  11. 对集群的所有节点重复上述步骤。

重新引导 Red Hat Ceph Storage 集群

  1. 如果涉及网络设备,请确保在打开任何 Ceph 主机或节点之前将其开机和稳定。
  2. 打开管理节点。
  3. 启用 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.

  4. 启动 systemd 目标:

    示例

    [root@host01 ~]# systemctl start ceph-0b007564-ec48-11ee-b736-525400fd02f8.target

  5. 等待所有节点上线。验证所有服务都已启动,且节点之间没有网络连接的问题。
  6. 取消设置 nooutnorecovernorebalancenobackfillnodownpause 标志。在使用客户端密钥环的节点上运行以下命令,如 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

  7. 如果使用 Ceph 文件系统 (CephFS),请通过将 joinable 标记设置为 true 来使 CephFS 集群重新启动:

    语法

    ceph fs set FS_NAME joinable true

    示例

    [ceph: root@host01 /]# ceph fs set cephfs joinable true

验证

  • 验证集群处于健康状态(Health_OK 和所有 PG active+clean)。在具有客户端密钥环的节点上运行 ceph 状态,如 Ceph 监控器或 OpenStack 控制器节点,以确保集群健康。

示例

[ceph: root@host01 /]# ceph -s

其它资源

2.6.2. 使用 Ceph Orchestrator 关闭并重新引导集群

您还可以使用 Ceph Orchestrator 的功能来关闭并重启 Red Hat Ceph Storage 集群。在大多数情况下,它是一个单个系统登录,可以帮助关闭集群。

Ceph 编排器支持若干操作,如 start, stop, 和 restart。您可以将这些命令与 systemctl 搭配使用,在某些情况下可以关闭或重新引导集群。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

关闭 Red Hat Ceph Storage 集群

  1. 停止使用该集群上的用户 Block Device Image 和 Ceph 对象网关以及任何其他客户端的客户端。
  2. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell

  3. 在继续操作前,集群必须处于健康状态(Health_OK 以及所有的 PG 为 active+clean)。使用客户端密钥环在主机上(如 Ceph 监控器或 OpenStack 控制器节点)运行 ceph status,以确保集群健康。

    示例

    [ceph: root@host01 /]# ceph -s

  4. 如果使用 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

  5. 设置 nooutnorecovernorebalancenobackfillnodownpause 标志。在使用客户端密钥环的节点上运行以下命令,如 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

  6. 停止 MDS 服务。

    1. 获取 MDS 服务名称:

      示例

      [ceph: root@host01 /]# ceph orch ls --service-type mds

    2. 使用上一步中获取的名称停止 MDS 服务:

      语法

      ceph orch stop SERVICE-NAME

  7. 停止 Ceph 对象网关服务。对部署的每个服务重复此操作。

    1. 获取 Ceph 对象网关服务名称:

      示例

      [ceph: root@host01 /]# ceph orch ls --service-type rgw

    2. 使用获取的名称停止 Ceph 对象网关服务:

      语法

      ceph orch stop SERVICE-NAME

  8. 停止 Alertmanager 服务:

    示例

    [ceph: root@host01 /]# ceph orch stop alertmanager

  9. 停止 node-exporter 服务,该服务是监控堆栈的一部分:

    示例

    [ceph: root@host01 /]# ceph orch stop node-exporter

  10. 停止 Prometheus 服务:

    示例

    [ceph: root@host01 /]# ceph orch stop prometheus

  11. 停止 Grafana 仪表板服务:

    示例

    [ceph: root@host01 /]# ceph orch stop grafana

  12. 停止崩溃的服务:

    示例

    [ceph: root@host01 /]# ceph orch stop crash

  13. 将 OSD 节点从 cephadm 节点关闭,每次关闭一个。对集群中的所有 OSD 重复此步骤。

    1. 获取 OSD ID:

      示例

      [ceph: root@host01 /]# ceph orch ps --daemon-type=osd

    2. 使用您获取的 OSD ID 关闭 OSD 节点:

      示例

      [ceph: root@host01 /]# ceph orch daemon stop osd.1
      Scheduled to stop osd.1 on host 'host02'

  14. 逐一停止监视器。

    1. 识别托管该监控器的主机:

      示例

      [ceph: root@host01 /]# ceph orch ps --daemon-type mon

    2. 在每个主机上,停止该监控器。

      1. 确定 systemctl 单元名称:

        示例

        [ceph: root@host01 /]# systemctl list-units ceph-* | grep mon

      2. 停止该服务:

        语法

        systemct stop SERVICE-NAME

  15. 关闭所有主机。

重新引导 Red Hat Ceph Storage 集群

  1. 如果涉及网络设备,请确保在打开任何 Ceph 主机或节点之前将其开机和稳定。
  2. 打开所有 Ceph 主机。
  3. 从 Cephadm shell 登录管理节点:

    示例

    [root@host01 ~]# cephadm shell

  4. 验证所有服务都处于运行状态:

    示例

    [ceph: root@host01 /]# ceph orch ls

  5. 确保集群健康状态为 'Health_OK'status:

    示例

    [ceph: root@host01 /]# ceph -s

  6. 取消设置 nooutnorecovernorebalancenobackfillnodownpause 标志。在使用客户端密钥环的节点上运行以下命令,如 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

  7. 如果使用 Ceph 文件系统 (CephFS),请通过将 joinable 标记设置为 true 来使 CephFS 集群重新启动:

    语法

    ceph fs set FS_NAME joinable true

    示例

    [ceph: root@host01 /]# ceph fs set cephfs joinable true

验证

  • 验证集群处于健康状态(Health_OK 和所有 PG active+clean)。在具有客户端密钥环的节点上运行 ceph 状态,如 Ceph 监控器或 OpenStack 控制器节点,以确保集群健康。

示例

[ceph: root@host01 /]# ceph -s

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.