CephFS¶
CephFS是ceph实现的分布式文件系统。主干源码包括src/ceph_fuse.cc
和src/client
目录下文件,其中src/ceph_fuse.cc
提供了main方法,是fuse文件系统的入口。
1 基本流程¶
src/ceph_fuse.cc
:ceph对接fuse的入口,定义了main函数,做些初始化、挂载卸载操作,会调用src/client
下文件定义的接口。fuse_ll.h fuse_ll.cc
:是fuse与ceph间连接的桥梁。- 通过实例化fuse_lowlevel_ops结构,将fuse需要实现的接口(比如open、read、write接口)与ceph实现绑定,这样通过fuse挂载后,就能自动调用到ceph实现流程。
CephFuse
类:src/ceph_fuse.cc
会实例化此类- 持有嵌套类CephFuse::Handle实例,CephFuse::Handle类持有类Clinet实例,Clinet实例实现了文件操作接口,也就是说,fuse中需要实现的接口,实际上全在Clinet实现。
Client.h Client.cc
:是文件系统对接下次存储接口的桥梁。与元数据服务器和osd服务器通信。- Client类中会使用到
MetaRequest.h
中定义的MetaRequest
类,和MetaSession.h
中定义的MetaSession
类 - Client类中会使用到
MDSMap
类,用于从中获取元数据服务器 MetaRequest.h MetaRequest.cc
MetaSession.h MetaSession.cc