Ceph FS是一个支持POSIX接口的文件系统。文件系统对于客户端来说可以方便的挂载到本地使用。Ceph FS构建在RADOS之上,继承RADOS的容错性和扩展性,支持冗余副本和数据高可靠性。

MDS

MDS(Metadata Server)即元数据Server主要负责Ceph FS集群中文件和目录的管理。 元数据主要记录数据的属性,如文件存储位置、大小、存储时间等,同时负责文件查找、文件记录、存储位置记录、访问授权等。

MDS与ceph-mon和ceph-osd类似也是一个Daemon进程,可以像MON和OSD一样在多节点部署实现冗余。MDS进程可以被配置为活跃或者被动状态,活跃的MDS为主MDS,其他的MDS处于备用状态,当主MDS节点故障时,备用MDS节点会接管其工作并被提升为主节点。

MDS部署

我们继续使用《使用ceph-deploy工具部署Ceph集群》中的实验环境来为OSD节点创建MDS。 先看一下现在这个Ceph集群各个节点的分配:

1192.168.61.30 c0 - admin-node, deploy-node
2192.168.61.31 c1 - mon
3192.168.61.32 c2 - mon osd.1
4192.168.61.33 c3 - mon osd.2

在ceph的deploy-node上执行下面的命令就可以为集群添加一个MDS:

ceph-deploy mds create {host-name}[:{daemon-name}] [{host-name}[:{daemon-name}] ...]

这里我们在c0上执行:

1ceph-deploy --overwrite-conf mds create c1

创建CephFS

CephFS需要使用两个Pool来分别存储数据和元数据,下面我们分别创建fs_data和fs_metadata两个Pool。 因为测试环境ceph集群只有两个osd,所以设置pg_num为128:

1ceph osd pool create fs_data 128
2ceph osd pool create fs_metadata 128
3
4ceph osd lspools

接下来创建一个CephFS:

1ceph fs new cephfs fs_metadata fs_data

使用下面的命令可以查看创建的CephFS:

1ceph fs ls
2name: cephfs, metadata pool: fs_metadata, data pools: [fs_data ]

挂载CephFS

客户端访问Ceph FS有两种方式:

  • Kernel内核驱动:Linux内核从2.6.34版本开始加入对CephFS的原声支持
  • Ceph FS FUSE: FUSE即Filesystem in Userspace

因为我们的系统内核版本满足要求,所以我们以Kernel驱动方式挂载前面创建的那个CephFS,我们在实验环境的局域网内单独找一台客户机来测试CephFS的挂载:

1mkdir /mnt/mycephfs
2mount -t ceph 192.168.61.31:6789,192.168.61.32:6789,192.168.61.33:6789:/ /mnt/mycephfs -o name=admin,secret=AQA2WsVYyv7RBRAA0TBjCztSO5xg8Ungx5MKzQ==
1df -h
2Filesystem                                                  Size  Used Avail Use% Mounted on
3192.168.61.31:6789,192.168.61.32:6789,192.168.61.33:6789:/  196G   13G  183G   7% /mnt/mycephfs

卸载Ceph文件系统:

1umount /mnt/mycephfs

参考