Ceph文件系统存储之Ceph FS
2017-02-06
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