1.4. Ceph MDS
每个元数据服务器 (MDS) 节点运行 MDS 守护进程 (ceph-mds),后者管理与 Ceph 文件系统 (CephFS) 中存储的文件相关的元数据。MDS 提供兼容 POSIX 的共享文件系统元数据管理,包括所有权、时间戳和模式。MDS 使用 RADOS(可靠的自主分布式对象存储)来存储元数据。
MDS 允许 CephFS 与 Ceph 对象存储交互,将索引节点映射到对象,以及 Ceph 在树中存储数据的位置。访问 CephFS 文件系统的客户端首先向 MDS 发出请求,它提供了从正确 OSD 获取文件内容所需的信息。
1.4.1. 使用 Ansible 添加 Ceph MDS 复制链接链接已复制到粘贴板!
使用 Ansible playbook 添加 Ceph 元数据服务器(MDS)。
先决条件
- 一个由 Ansible 部署的、正在运行的 Red Hat Ceph Storage 集群。
-
对 Ansible 管理节点的
root或sudo访问权限。 - 可以作为 MDS 节点置备的新的或现有服务器。
流程
- 登录 Ansible 管理节点
进入
/usr/share/ceph-ansible目录:示例
[ansible@admin ~]$ cd /usr/share/ceph-ansible作为
root用户或具有sudo访问权限,打开并编辑/usr/share/ceph-ansible/hosts清单文件,并在[mdss]部分下添加 MDS 节点:语法
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAME将 NEW_MDS_NODE_NAME 替换为您要安装 MDS 服务器的节点的主机名。
或者,您可以通过在
[osds]和[mdss]部分下添加同一节点,将元数据服务器与 OSD 守护进程并置。示例
[mdss] node01 node03以
ansible用户身份,运行 Ansible playbook 来调配 MDS 节点:裸机部署:
[ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit mdss -i hosts容器部署:
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit mdss -i hosts在 Ansible playbook 运行后,新的 Ceph MDS 节点将出现在存储集群中。
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump示例
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]另外,您可以使用
ceph mds stat命令检查 MDS 是否处于 active 状态:语法
ceph mds stat示例
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
1.4.2. 使用命令行界面添加 Ceph MDS 复制链接链接已复制到粘贴板!
您可以使用命令行界面手动添加 Ceph 元数据服务器(MDS)。
先决条件
-
已安装
ceph-common软件包。 - 一个正在运行的 Red Hat Ceph Storage 集群。
-
对 MDS 节点的
root或sudo访问权限。 - 可以作为 MDS 节点置备的新的或现有服务器。
流程
通过登录到节点并创建 MDS 挂载点来添加新的 MDS 节点:
语法
sudo mkdir /var/lib/ceph/mds/ceph-MDS_ID将 MDS_ID 替换为您要向其添加 MDS 守护进程的 MDS 节点 ID。
示例
[admin@node03 ~]$ sudo mkdir /var/lib/ceph/mds/ceph-node03如果这是新的 MDS 节点,如果您使用 Cephx 身份验证,请创建身份验证密钥:
语法
sudo ceph auth get-or-create mds.MDS_ID mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-MDS_ID/keyring将 MDS_ID 替换为 MDS 节点 ID,以在其上部署 MDS 守护进程。
示例
[admin@node03 ~]$ sudo ceph auth get-or-create mds.node03 mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-node03/keyring注意Cephx 身份验证被默认启用。有关 Cephx 身份验证的更多信息,请参阅 Additional Resources 部分中的 Cephx 身份验证链接。
启动 MDS 守护进程:
语法
sudo systemctl start ceph-mds@HOST_NAME将 HOST_NAME 替换为要启动守护进程的主机的短名称。
示例
[admin@node03 ~]$ sudo systemctl start ceph-mds@node03启用 MDS 服务:
语法
systemctl enable ceph-mds@HOST_NAME将 HOST_NAME 替换为要启用该服务的主机的短名称。
示例
[admin@node03 ~]$ sudo systemctl enable ceph-mds@node03
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump示例
[admin@mon]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]另外,您可以使用
ceph mds stat命令检查 MDS 是否处于 active 状态:语法
ceph mds stat示例
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
1.4.3. 使用 Ansible 删除 Ceph MDS 复制链接链接已复制到粘贴板!
要使用 Ansible 删除 Ceph 元数据服务器(MDS),请使用 shrink-mds playbook。
如果在 MDS 被删除后没有替换的 MDS 进行接管,对于客户端文件系统会不可用。如果这不必要,请考虑在删除 MDS 之前添加额外的 MDS,以便离线。
先决条件
- 至少一个 MDS 节点。
- 一个由 Ansible 部署的、正在运行的 Red Hat Ceph Storage 集群。
-
对 Ansible 管理节点的
root或sudo访问权限。
流程
- 登录 Ansible 管理节点。
进入
/usr/share/ceph-ansible目录:示例
[ansible@admin ~]$ cd /usr/share/ceph-ansible运行 Ansible
shrink-mds.ymlplaybook,在提示时输入yes以确认缩减集群:语法
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hosts使用您要删除的 MDS 节点 ID 替换 ID。每次 playbook 运行时只能删除一个 Ceph MDS。
示例
[ansible @admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hosts作为
root用户或具有sudo访问权限,打开并编辑/usr/share/ceph-ansible/hosts清单文件,并在[mdss]部分下删除 MDS 节点:语法
[mdss] MDS_NODE_NAME MDS_NODE_NAME示例
[mdss] node01 node03在本例中,
node02已从[mdss]列表中删除。
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump示例
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]
1.4.4. 使用命令行界面删除 Ceph MDS 复制链接链接已复制到粘贴板!
您可以使用命令行界面手动删除 Ceph 元数据服务器(MDS)。
如果在当前 MDS 被删除后没有替代的 MDS 进行接管,客户端无法使用文件系统。如果这不必要,请考虑在删除现有 MDS 前添加 MDS。
先决条件
-
已安装
ceph-common软件包。 - 一个正在运行的 Red Hat Ceph Storage 集群。
-
对 MDS 节点的
root或sudo访问权限。
流程
- 登录到您要从中删除 MDS 守护进程的 Ceph MDS 节点。
停止 Ceph MDS 服务:
语法
sudo systemctl stop ceph-mds@HOST_NAME将 HOST_NAME 替换为守护进程运行的主机的短名称。
示例
[admin@node02 ~]$ sudo systemctl stop ceph-mds@node02如果没有将 MDS 重新部署到这个节点,则禁用 MDS 服务:
语法
sudo systemctl disable ceph-mds@HOST_NAME将 HOST_NAME 替换为要禁用该守护进程的主机的短名称。
示例
[admin@node02 ~]$ sudo systemctl disable ceph-mds@node02删除 MDS 节点上的
/var/lib/ceph/mds/ceph-MDS_ID目录:语法
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_ID使用您要从中删除 MDS 守护进程的 MDS 节点 ID 替换 MDS_ID。
示例
[admin@node02 ~]$ sudo rm -fr /var/lib/ceph/mds/ceph-node02
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump示例
[ansible@admin ceph-ansible]$ ceph fs dump [mds.node01 {0:115304} state up:active seq 5 addr [v2:172.25.250.10:6800/695510951,v1:172.25.250.10:6801/695510951]] Standby daemons: [mds.node03 {-1:144437} state up:standby seq 2 addr [v2:172.25.250.11:6800/172950087,v1:172.25.250.11:6801/172950087]]