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
目录:示例
cd /usr/share/ceph-ansible
[ansible@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root
用户或具有sudo
访问权限,打开并编辑/usr/share/ceph-ansible/hosts
清单文件,并在[mdss]
部分下添加 MDS 节点:语法
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAME
[mdss] MDS_NODE_NAME NEW_MDS_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 NEW_MDS_NODE_NAME 替换为您要安装 MDS 服务器的节点的主机名。
或者,您可以通过在
[osds]
和[mdss]
部分下添加同一节点,将元数据服务器与 OSD 守护进程并置。示例
[mdss] node01 node03
[mdss] node01 node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
ansible
用户身份,运行 Ansible playbook 来调配 MDS 节点:裸机部署:
ansible-playbook site.yml --limit mdss -i hosts
[ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit mdss -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 容器部署:
ansible-playbook site-container.yml --limit mdss -i hosts
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit mdss -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible playbook 运行后,新的 Ceph MDS 节点将出现在存储集群中。
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以使用
ceph mds stat
命令检查 MDS 是否处于 active 状态:语法
ceph mds stat
ceph mds stat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph mds stat
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
sudo mkdir /var/lib/ceph/mds/ceph-MDS_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 MDS_ID 替换为您要向其添加 MDS 守护进程的 MDS 节点 ID。
示例
sudo mkdir /var/lib/ceph/mds/ceph-node03
[admin@node03 ~]$ sudo mkdir /var/lib/ceph/mds/ceph-node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果这是新的 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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 MDS_ID 替换为 MDS 节点 ID,以在其上部署 MDS 守护进程。
示例
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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Cephx 身份验证被默认启用。有关 Cephx 身份验证的更多信息,请参阅 Additional Resources 部分中的 Cephx 身份验证链接。
启动 MDS 守护进程:
语法
sudo systemctl start ceph-mds@HOST_NAME
sudo systemctl start ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 HOST_NAME 替换为要启动守护进程的主机的短名称。
示例
sudo systemctl start ceph-mds@node03
[admin@node03 ~]$ sudo systemctl start ceph-mds@node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 MDS 服务:
语法
systemctl enable ceph-mds@HOST_NAME
systemctl enable ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 HOST_NAME 替换为要启用该服务的主机的短名称。
示例
sudo systemctl enable ceph-mds@node03
[admin@node03 ~]$ sudo systemctl enable ceph-mds@node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以使用
ceph mds stat
命令检查 MDS 是否处于 active 状态:语法
ceph mds stat
ceph mds stat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph mds stat
[ansible@admin ceph-ansible]$ ceph mds stat cephfs:1 {0=node01=up:active} 1 up:standby
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
目录:示例
cd /usr/share/ceph-ansible
[ansible@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 Ansible
shrink-mds.yml
playbook,在提示时输入yes
以确认缩减集群:语法
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hosts
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=ID -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要删除的 MDS 节点 ID 替换 ID。每次 playbook 运行时只能删除一个 Ceph MDS。
示例
ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hosts
[ansible @admin ceph-ansible]$ ansible-playbook infrastructure-playbooks/shrink-mds.yml -e mds_to_kill=node02 -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root
用户或具有sudo
访问权限,打开并编辑/usr/share/ceph-ansible/hosts
清单文件,并在[mdss]
部分下删除 MDS 节点:语法
[mdss] MDS_NODE_NAME MDS_NODE_NAME
[mdss] MDS_NODE_NAME MDS_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[mdss] node01 node03
[mdss] node01 node03
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,
node02
已从[mdss]
列表中删除。
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
sudo systemctl stop ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 HOST_NAME 替换为守护进程运行的主机的短名称。
示例
sudo systemctl stop ceph-mds@node02
[admin@node02 ~]$ sudo systemctl stop ceph-mds@node02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有将 MDS 重新部署到这个节点,则禁用 MDS 服务:
语法
sudo systemctl disable ceph-mds@HOST_NAME
sudo systemctl disable ceph-mds@HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 HOST_NAME 替换为要禁用该守护进程的主机的短名称。
示例
sudo systemctl disable ceph-mds@node02
[admin@node02 ~]$ sudo systemctl disable ceph-mds@node02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 MDS 节点上的
/var/lib/ceph/mds/ceph-MDS_ID
目录:语法
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_ID
sudo rm -fr /var/lib/ceph/mds/ceph-MDS_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要从中删除 MDS 守护进程的 MDS 节点 ID 替换 MDS_ID。
示例
sudo rm -fr /var/lib/ceph/mds/ceph-node02
[admin@node02 ~]$ sudo rm -fr /var/lib/ceph/mds/ceph-node02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查 MDS 守护进程的状态:
语法
ceph fs dump
ceph fs dump
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow