2.5. 使用 Ceph Orchestrator 管理 MDS 服务
作为存储管理员,您可以在后端中将 Ceph Orchestrator 与 Cephadm 搭配使用,以部署 MDS 服务。默认情况下,Ceph 文件系统(CephFS)仅使用了一个活跃的 MDS 守护进程。但是,具有许多客户端的系统得益于多个活跃的 MDS 守护进程。
本节涵盖了以下管理任务:
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 所有节点的根级别访问权限。
- 主机添加到集群中。
- 部署所有管理器、监控和 OSD 守护进程。
2.5.1. 使用命令行界面部署 MDS 服务
通过使用 Ceph 编排器,您可以使用命令行界面中的 placement
规格部署元数据服务器(MDS)服务。Ceph 文件系统(CephFS)需要一个或多个 MDS。
确保至少有一个池,一个用于 Ceph 文件系统(CephFS)数据,另一个用于 CephFS 元数据。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 主机添加到集群中。
- 部署所有管理器、监控和 OSD 守护进程。
流程
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! - 使用放置规格部署 MDS 守护进程有两种方法:
方法 1
使用
ceph fs volume
来创建 MDS 守护进程。这将创建 CephFS 卷和与 CephFS 关联的池,也会在主机上启动 MDS 服务。语法
ceph fs volume create FILESYSTEM_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2 HOST_NAME_3"
ceph fs volume create FILESYSTEM_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2 HOST_NAME_3"
Copy to Clipboard Copied! 注意默认情况下,为此命令创建池。
示例
[ceph: root@host01 /]# ceph fs volume create test --placement="2 host01 host02"
[ceph: root@host01 /]# ceph fs volume create test --placement="2 host01 host02"
Copy to Clipboard Copied!
方法 2
创建池 CephFS,然后使用放置规格部署 MDS 服务:
为 CephFS 创建池:
语法
ceph osd pool create DATA_POOL [PG_NUM] ceph osd pool create METADATA_POOL [PG_NUM]
ceph osd pool create DATA_POOL [PG_NUM] ceph osd pool create METADATA_POOL [PG_NUM]
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph osd pool create cephfs_data 64 [ceph: root@host01 /]# ceph osd pool create cephfs_metadata 64
[ceph: root@host01 /]# ceph osd pool create cephfs_data 64 [ceph: root@host01 /]# ceph osd pool create cephfs_metadata 64
Copy to Clipboard Copied! 通常,元数据池可以从保守的 PG 数量开始,因为它的对象通常比数据池少得多。如果需要,可以增加 PG 数量。池大小范围从 64 个 PG 到 512 个 PG。数据池的大小与您文件系统中预期的文件的编号和大小成比例。
重要对于元数据池,请考虑使用:
- 更高的复制级别,因为对此池的任何数据丢失都可能会导致整个文件系统无法访问。
- 延迟较低的存储(如 Solid-State Drive(SSD)磁盘),因为这会直接影响客户端上观察到的文件系统操作延迟。
为数据池和元数据池创建文件系统:
语法
ceph fs new FILESYSTEM_NAME METADATA_POOL DATA_POOL
ceph fs new FILESYSTEM_NAME METADATA_POOL DATA_POOL
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph fs new test cephfs_metadata cephfs_data
[ceph: root@host01 /]# ceph fs new test cephfs_metadata cephfs_data
Copy to Clipboard Copied! 使用
ceph orch apply
命令部署 MDS 服务:语法
ceph orch apply mds FILESYSTEM_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2 HOST_NAME_3"
ceph orch apply mds FILESYSTEM_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2 HOST_NAME_3"
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph orch apply mds test --placement="2 host01 host02"
[ceph: root@host01 /]# ceph orch apply mds test --placement="2 host01 host02"
Copy to Clipboard Copied!
验证
列出服务:
示例
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch ls
Copy to Clipboard Copied! 检查 CephFS 状态:
示例
[ceph: root@host01 /]# ceph fs ls [ceph: root@host01 /]# ceph fs status
[ceph: root@host01 /]# ceph fs ls [ceph: root@host01 /]# ceph fs status
Copy to Clipboard Copied! 列出主机、守护进程和进程:
语法
ceph orch ps --daemon_type=DAEMON_NAME
ceph orch ps --daemon_type=DAEMON_NAME
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph orch ps --daemon_type=mds
[ceph: root@host01 /]# ceph orch ps --daemon_type=mds
Copy to Clipboard Copied!
2.5.2. 使用服务规格部署 MDS 服务
通过使用 Ceph 编排器,您可以使用服务规格部署 MDS 服务。
确保至少有两个池,一个用于 Ceph 文件系统(CephFS)数据,另一个用于 CephFS 元数据。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 主机添加到集群中。
- 部署所有管理器、监控和 OSD 守护进程。
流程
创建
mds.yaml
文件:示例
touch mds.yaml
[root@host01 ~]# touch mds.yaml
Copy to Clipboard Copied! 编辑
mds.yaml
文件,使其包含以下详情:语法
service_type: mds service_id: FILESYSTEM_NAME placement: hosts: - HOST_NAME_1 - HOST_NAME_2 - HOST_NAME_3
service_type: mds service_id: FILESYSTEM_NAME placement: hosts: - HOST_NAME_1 - HOST_NAME_2 - HOST_NAME_3
Copy to Clipboard Copied! 示例
service_type: mds service_id: fs_name placement: hosts: - host01 - host02
service_type: mds service_id: fs_name placement: hosts: - host01 - host02
Copy to Clipboard Copied! 将 YAML 文件挂载到容器中的一个目录下:
示例
cephadm shell --mount mds.yaml:/var/lib/ceph/mds/mds.yaml
[root@host01 ~]# cephadm shell --mount mds.yaml:/var/lib/ceph/mds/mds.yaml
Copy to Clipboard Copied! 进入该目录:
示例
[ceph: root@host01 /]# cd /var/lib/ceph/mds/
[ceph: root@host01 /]# cd /var/lib/ceph/mds/
Copy to Clipboard Copied! 登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! 进入以下目录:
示例
[ceph: root@host01 /]# cd /var/lib/ceph/mds/
[ceph: root@host01 /]# cd /var/lib/ceph/mds/
Copy to Clipboard Copied! 使用服务规格部署 MDS 服务:
语法
ceph orch apply -i FILE_NAME.yaml
ceph orch apply -i FILE_NAME.yaml
Copy to Clipboard Copied! 示例
[ceph: root@host01 mds]# ceph orch apply -i mds.yaml
[ceph: root@host01 mds]# ceph orch apply -i mds.yaml
Copy to Clipboard Copied! 部署 MDS 服务后,创建 CephFS:
语法
ceph fs new CEPHFS_NAME METADATA_POOL DATA_POOL
ceph fs new CEPHFS_NAME METADATA_POOL DATA_POOL
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph fs new test metadata_pool data_pool
[ceph: root@host01 /]# ceph fs new test metadata_pool data_pool
Copy to Clipboard Copied!
验证
列出服务:
示例
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch ls
Copy to Clipboard Copied! 列出主机、守护进程和进程:
语法
ceph orch ps --daemon_type=DAEMON_NAME
ceph orch ps --daemon_type=DAEMON_NAME
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph orch ps --daemon_type=mds
[ceph: root@host01 /]# ceph orch ps --daemon_type=mds
Copy to Clipboard Copied!
2.5.3. 使用 Ceph Orchestrator 删除 MDS 服务
您可以使用 ceph orch rm
命令删除该服务。或者,您也可以删除文件系统和相关池。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 所有节点的根级别访问权限。
- 主机添加到集群中。
- 在主机上至少部署一个 MDS 守护进程。
流程
- 可以通过两种方式从集群中移除 MDS 守护进程:
方法 1
移除 CephFS 卷、关联的池和服务:
登录到 Cephadm shell:
示例
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! 将配置参数
mon_allow_pool_delete
设置为true
:示例
[ceph: root@host01 /]# ceph config set mon mon_allow_pool_delete true
[ceph: root@host01 /]# ceph config set mon mon_allow_pool_delete true
Copy to Clipboard Copied! 删除文件系统:
语法
ceph fs volume rm FILESYSTEM_NAME --yes-i-really-mean-it
ceph fs volume rm FILESYSTEM_NAME --yes-i-really-mean-it
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph fs volume rm cephfs-new --yes-i-really-mean-it
[ceph: root@host01 /]# ceph fs volume rm cephfs-new --yes-i-really-mean-it
Copy to Clipboard Copied! 此命令将删除文件系统、其数据和元数据池。它还会尝试使用启用了
ceph-mgr
Orchestrator 模块来删除 MDS。
方法 2
使用
ceph orch rm
命令从整个集群中删除 MDS 服务:列出服务:
示例
[ceph: root@host01 /]# ceph orch ls
[ceph: root@host01 /]# ceph orch ls
Copy to Clipboard Copied! 删除服务
语法
ceph orch rm SERVICE_NAME
ceph orch rm SERVICE_NAME
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph orch rm mds.test
[ceph: root@host01 /]# ceph orch rm mds.test
Copy to Clipboard Copied!
验证
列出主机、守护进程和进程:
语法
ceph orch ps
ceph orch ps
Copy to Clipboard Copied! 示例
[ceph: root@host01 /]# ceph orch ps
[ceph: root@host01 /]# ceph orch ps
Copy to Clipboard Copied!