4.13. 使用 Ansible 删除 Ceph 文件系统


您可以使用 ceph-ansible 删除 Ceph 文件系统(CephFS)。在进行此操作前,请考虑备份所有数据并验证所有客户端是否已在本地卸载该文件系统。

警告

此操作具有破坏性,将使 Ceph 文件系统上存储的数据永久无法访问。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 数据的良好备份。
  • 所有客户端都已卸载 Ceph 文件系统。
  • 访问 Ansible 管理节点.
  • Ceph 监控节点的根级别访问权限.

流程

  1. 进入 /usr/share/ceph-ansible/ 目录:

    [admin@admin ~]$ cd /usr/share/ceph-ansible
  2. 通过查看 Ansible 清单文件中的 [mds] 部分来识别 Ceph 元数据服务器(MDS)节点。在 Ansible 管理节点上,打开 /usr/share/ceph-ansible/hosts

    示例

    [mdss]
    cluster1-node5
    cluster1-node6

    在示例中,cluster1-node5cluster1-node6 是 MDS 节点。

  3. max_mds 参数设置为 1

    语法

    ceph fs set NAME max_mds NUMBER

    示例

    [root@mon ~]# ceph fs set cephfs max_mds 1

  4. 运行 shrink-mds.yml playbook,指定要删除的元数据服务器(MDS):

    语法

    ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=MDS_NODE -i hosts

    MDS_NODE 替换为您要删除的元数据服务器节点。Ansible playbook 将询问您是否要缩小集群。键入 yes,然后按 enter 键。

    示例

    [admin@admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=cluster1-node6 -i hosts

  5. 可选:重复任何额外 MDS 节点的进程:

    语法

    ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=MDS_NODE -i hosts

    MDS_NODE 替换为您要删除的元数据服务器节点。Ansible playbook 将询问您是否要缩小集群。键入 yes,然后按 enter 键。

    示例

    [admin@admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=cluster1-node5 -i hosts

  6. 检查 CephFS 的状态:

    语法

    ceph fs status

    示例

    [root@mon ~]# ceph fs status
    cephfs - 0 clients
    ======
    +------+--------+----------------+---------------+-------+-------+
    | Rank | State  |      MDS       |    Activity   |  dns  |  inos |
    +------+--------+----------------+---------------+-------+-------+
    |  0   | failed | cluster1-node6 | Reqs:    0 /s |   10  |   13  |
    +------+--------+----------------+---------------+-------+-------+
    +-----------------+----------+-------+-------+
    |       Pool      |   type   |  used | avail |
    +-----------------+----------+-------+-------+
    | cephfs_metadata | metadata | 2688k | 15.0G |
    |   cephfs_data   |   data   |    0  | 15.0G |
    +-----------------+----------+-------+-------+
    +----------------+
    |  Standby MDS   |
    +----------------+
    | cluster1-node5 |
    +----------------+

  7. 从 Ansible 清单文件中删除 [mdss] 部分及其节点,以便它们不会重新置备为以后在 site.ymlsite-container.yml playbook 上运行的元数据服务器。打开以编辑 Ansible 清单文件 /usr/share/ceph-ansible/hosts

    示例

    [mdss]
    cluster1-node5
    cluster1-node6

    删除 [mdss] 部分及其下所有节点。

  8. 移除 CephFS:

    语法

    ceph fs rm FS_NAME --yes-i-really-mean-it

    FS_NAME 替换为您要删除的 Ceph 文件系统的名称。

    示例

    [root@mon]# ceph fs rm cephfs --yes-i-really-mean-it

  9. 可选:删除 CephFS 使用的池。

    1. 在 Ceph 监控节点上,列出池:

      语法

      ceph osd pool ls

      查找 CephFS 使用的池。

      示例

      [root@mon ~]# ceph osd pool ls
      rbd
      cephfs_data
      cephfs_metadata

      在示例输出中,cephfs_metadatacephfs_data 是 CephFS 使用的池。

    2. 删除元数据池:

      语法

      ceph osd pool delete CEPH_METADATA_POOL CEPH_METADATA_POOL --yes-i-really-really-mean-it

      通过包含池名称两次,将 CEPH_METADATA_POOL 替换为用于元数据存储的池 CephFS。

      示例

      [root@mon ~]# ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
      pool 'cephfs_metadata' removed

    3. 删除数据池:

      语法

      ceph osd pool delete CEPH_DATA_POOL CEPH_DATA_POOL --yes-i-really-really-mean-it

      通过包含池名称两次,将 CEPH_METADATA_POOL 替换为用于元数据存储的池 CephFS。

      示例

      [root@mon ~]# ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it
      pool 'cephfs_data' removed

    4. 验证池不再存在:

      示例

      [root@mon ~]# ceph osd pool ls
      rbd

      cephfs_metadatacephfs_data 池不再被列出。

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.