4.13. 使用 Ansible 删除 Ceph 文件系统
您可以使用 ceph-ansible
删除 Ceph 文件系统(CephFS)。在进行此操作前,请考虑备份所有数据并验证所有客户端是否已在本地卸载该文件系统。
此操作具有破坏性,将使 Ceph 文件系统上存储的数据永久无法访问。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 数据的良好备份。
- 所有客户端都已卸载 Ceph 文件系统。
- 访问 Ansible 管理节点.
- Ceph 监控节点的根级别访问权限.
流程
进入
/usr/share/ceph-ansible/
目录:[admin@admin ~]$ cd /usr/share/ceph-ansible
通过查看 Ansible 清单文件中的
[mds]
部分来识别 Ceph 元数据服务器(MDS)节点。在 Ansible 管理节点上,打开/usr/share/ceph-ansible/hosts
:示例
[mdss] cluster1-node5 cluster1-node6
在示例中,
cluster1-node5
和cluster1-node6
是 MDS 节点。将
max_mds
参数设置为1
:语法
ceph fs set NAME max_mds NUMBER
示例
[root@mon ~]# ceph fs set cephfs max_mds 1
运行
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
可选:重复任何额外 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
检查 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 | +----------------+
从 Ansible 清单文件中删除
[mdss]
部分及其节点,以便它们不会重新置备为以后在site.yml
或site-container.yml
playbook 上运行的元数据服务器。打开以编辑 Ansible 清单文件/usr/share/ceph-ansible/hosts
:示例
[mdss] cluster1-node5 cluster1-node6
删除
[mdss]
部分及其下所有节点。移除 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
可选:删除 CephFS 使用的池。
在 Ceph 监控节点上,列出池:
语法
ceph osd pool ls
查找 CephFS 使用的池。
示例
[root@mon ~]# ceph osd pool ls rbd cephfs_data cephfs_metadata
在示例输出中,
cephfs_metadata
和cephfs_data
是 CephFS 使用的池。删除元数据池:
语法
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
删除数据池:
语法
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
验证池不再存在:
示例
[root@mon ~]# ceph osd pool ls rbd
cephfs_metadata
和cephfs_data
池不再被列出。
其它资源
- 请参阅 Red Hat Ceph Storage 文件系统指南中的手动删除 Ceph 文件系统。
- 请参阅 Red Hat Ceph Storage 策略指南中的 删除池 部分。