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 管理节点的 rootsudo 访问权限。
  • 可以作为 MDS 节点置备的新的或现有服务器。

流程

  1. 登录 Ansible 管理节点
  2. 进入 /usr/share/ceph-ansible 目录:

    示例

    [ansible@admin ~]$ cd /usr/share/ceph-ansible

  3. 作为 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

  4. 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 节点的 rootsudo 访问权限。
  • 可以作为 MDS 节点置备的新的或现有服务器。

流程

  1. 通过登录到节点并创建 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

  2. 如果这是新的 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 身份验证链接。

  3. 启动 MDS 守护进程:

    语法

    sudo systemctl start ceph-mds@HOST_NAME

    HOST_NAME 替换为要启动守护进程的主机的短名称。

    示例

    [admin@node03 ~]$ sudo systemctl start ceph-mds@node03

  4. 启用 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 管理节点的 rootsudo 访问权限。

流程

  1. 登录 Ansible 管理节点。
  2. 进入 /usr/share/ceph-ansible 目录:

    示例

    [ansible@admin ~]$ cd /usr/share/ceph-ansible

  3. 运行 Ansible shrink-mds.yml playbook,在提示时输入 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

  4. 作为 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 节点的 rootsudo 访问权限。

流程

  1. 登录到您要从中删除 MDS 守护进程的 Ceph MDS 节点。
  2. 停止 Ceph MDS 服务:

    语法

    sudo systemctl stop ceph-mds@HOST_NAME

    HOST_NAME 替换为守护进程运行的主机的短名称。

    示例

    [admin@node02 ~]$ sudo systemctl stop ceph-mds@node02

  3. 如果没有将 MDS 重新部署到这个节点,则禁用 MDS 服务:

    语法

    sudo systemctl disable ceph-mds@HOST_NAME

    HOST_NAME 替换为要禁用该守护进程的主机的短名称。

    示例

    [admin@node02 ~]$ sudo systemctl disable ceph-mds@node02

  4. 删除 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]]

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.