ceph对象存储上线后,算是解决了一大问题,接下来要探索的是cephfs方面的应用,尤其现在使用的nfs时常出问题的情况下,cephfs还是十分需要的
写在前面
松鼠哥的ceph专业课程上线啦!
面向新手同学,从0实战,全面入门ceph安装部署与运维,有需要的同学赶紧扫码订购吧:
fs提供的POSIX接口对很多现有业务来说适配性很强,所以既有业务最好能够使用基于fs的接口访问存储。
cephfs的简单介绍
嗯,介绍能多简单就多简单。cephfs是最迟满足生产部署的ceph接口,它提供了类似nfs的网络目录挂载形式,为远程主机使用基于文件系统的功能提供了极大的便利,不过就算是现在的L版本12.2.5,cephfs的稳定性还是没有经历过太多的考验,想想都有点害怕~
cephfs的使用-服务端准备
cephfs的使用很简单,集群建立之后,至少需要创建一个mds,首先为cephfs创建存储池
1 | [tanweijie@ceph-205 ~]$ sudo ceph osd pool create cephfs-data-pool 64 64 |
跟一般的存储池创建并无不同,接下来是创建cephfs并在创建的时候关联它所使用的存储池
1 | [tanweijie@ceph-205 ~]$ sudo ceph fs new firstcephfs cephfs-metadata-pool cephfs-data-pool |
这样就创建了名为firstcephfs的fs,顺手检查一下mds和cephfs的情况
1 | [tanweijie@ceph-205 ~]$ sudo ceph fs status |
这样的话cephfs的服务端ceph集群就准备好了,客户端要挂载使用cephfs的目录,有两种方式:
- 使用linux kernel client
- 使用ceph FUSE
这两种方式各有优劣势,kernel client的特点在于它与ceph通信大部分都在内核态进行,因此性能要更好,缺点是L版本的cephfs要求客户端支持一些高级特性,ceph FUSE就是简单一些,还支持配额,缺点就是性能比较差,实测全ssd的集群,性能差不多为kernel client的一半,这里我们重点看看kernel client的方式
cephfs的使用-客户端挂载
为了让低版本内核可以使用cephfs,需要手动将ceph的一些特性关闭,其操作
1 | 首先获取到crushmap并解码 |
此时对面的客户端(CentOS Linux release 7.2.1511 (Core))就可以顺利挂载cephfs了,假设挂载到/media,挂载命令为
1 | mount -t ceph 192.x.x.x:6789:/ /media/ -o name=admin,secret=AQCbrU1bK***** |
这样就挂载成功了,可以正常往里面写数据了
其他
前面的使用方式中看到,挂载cephfs的时候,源目录使用的是/,如果一个集群只提供给一个用户使用就太浪费了,能不能把集群切分成多个目录,多个用户自己挂载自己的目录进行读写呢?可以的
使用admin挂载了cephfs的/之后,只需在/中创建目录,这些创建后的目录就成为cephfs的子树,其他用户经过配置,是可以直接挂载这些子树目录的,具体步骤为:
假设admin挂载了/之后,创建了/firstuser目录
1、创建用户
1 | sudo ceph auth get-or-create client.firstuser mon 'allow r' mds 'allow r, allow rw path=/firstuser' osd 'allow rw pool=cephfs-data-pool' |
这样就创建并指定了新用户的使用目录
2、查看并获取用户的密钥
1 | [tanweijie@ceph-205 ~]$ sudo ceph auth get client.firstuser |
3、使用该用户在其他设备上挂载他自己的目录
1 | sudo mount -t ceph 192.x.x.x:6789:/firstuser /media/ -o name=firstuser,secret=AQCbrU1bKrKxJxAAjY11bGWT6b/9kW5XFZ+x3A== |
这样就完成了用户的指定目录挂载
- 本文作者: 奋斗的松鼠
- 本文链接: http://www.strugglesquirrel.com/2018/07/17/cephfs初探-小试牛刀/
- 版权声明: 本博客所有文章除特别声明外,创作版权均为作者个人所有,未经允许禁止转载!