整体目标

  • 配置 ceph-ansible,以在部署节点 servera 上部署 CephFS (MDS)。

  • 部署 CephFS,再验证安装是否成功。

    启用 CephFS 快照功能。

  • 在 servera 上,使用内核客户端将 CephFS 文件系统挂载到 /data 上。挂载应该在 servera 重新启动后继续存在。

  • 创建 /data/docs/ 目录,并将 /usr/share/dict/words 文件复制到其中。创建挂载点的快照,并将它命名为 mysnap。删除 /data/docs/words 文件(但您应该仍然能够从快照中读取这个文件)。





配置Ceph-Ansible

将 mdss 主机组添加到 /etc/ansible/hosts Ansible 清单文件。将 servera 包含在这个组中。

Ceph实战大演练-CephFS:Ceph学习系列10_java

使用 /usr/share/ceph-ansible/group_vars/mdss.yml.sample 模板文件,在同一目录中创建 mdss.yml 文件。确保您将 admin 用户 keyring 文件部署到 servera

cd /usr/share/ceph-ansible/group_vars


Ceph实战大演练-CephFS:Ceph学习系列10_java_02

使用 site.yml 文件调用 Ansible,以按照前面执行的配置来执行 CephFS 部署。
$ ansible-playbook site.yml

检查集群运行状态。以 ceph 用户身份登录 serverc,并运行 ceph -s 命令。


启用 CephFS 快照功能。完成后,从 serverc 注销。

ceph mds set allow_new_snaps true --yes-i-really-mean-it

提取与 client.admin 用户关联的 secret key,将它保存为 /etc/ceph/admin.secret,并且加设保护。使用这个密钥,对 mount 命令进行 Ceph 集群的身份验证。

[ceph@servera ~]$ ceph auth get-key client.admin > /etc/ceph/admin.secret
[ceph@servera ~]$ chmod 600 /etc/ceph/admin.secret

创建 /data 挂载点,再使用 client.admin 用户挂载 CephFS 文件系统。


$ sudo mkdir /data
$ sudo mount -t ceph serverc:/ /data -o name=admin,secretfile=/etc/ceph/admin.secret
$ sudo chown ceph:ceph /data

Ceph实战大演练-CephFS:Ceph学习系列10_java_03

卸载文件系统,再编辑 /etc/fstab,使它在重新启动后继续存在。

[ceph@servera ~]$ sudo vi /etc/fstab
...
serverc:/ /data ceph name=admin,secretfile=/etc/ceph/admin.secret,_netdev  0 0

Ceph实战大演练-CephFS:Ceph学习系列10_java_04

创建 /data/docs/ 目录,并将 /usr/share/dict/words 文件复制到该目录中。创建挂载点的快照,并将它命名为 mysnap。删除 /data/docs/words 文件(但您应该仍然能够从快照中读取这个文件)。

创建 /data/docs/ 目录,并将 /usr/share/dict/words 文件复制到该目录中。

  1. [ceph@servera ~]$ mkdir /data/docs
    [ceph@servera ~]$ cp /usr/share/dict/words /data/docs


创建挂载点的快照,并将它命名为 mysnap

[ceph@servera ~]$ mkdir /data/.snap/mysnap

检查 /data/.snap/mysnap/docs/ 目录的内容。words 文件必须可用。完成后,从 servera 注销。

Ceph实战大演练-CephFS:Ceph学习系列10_java_05