从GitHub上Clone Ceph项目,其(ceph version 12.2.11 luminous 版本)目录下主要文件夹和文件的内容介绍如下:
1、一级根目录
[admin]:管理工具,用于架设文档服务器等
[debian]:用于制作debian(Ubuntu)安装包的相关脚本和文件
[doc]:用于生成项目文档,生成结果参考http://ceph.com/docs/master/
[examples]:librados和librdb的helloworld例子
[man]:ceph各命令行工具的man文件
[qa]:各个模块的功能测试(测试脚本和测试代码)
[src]:各功能某块的源代码
2、二级src目录
[auth]:授权模块,实现了三方认知机制。
[client]:client模块,实现了用户态的CephFS客户端
[common]:共有模块,包含各类共有机制的实现,例如配置参数文件options.cc、线程池的相关文件thread.cc、bufferlist、Mutex、节流阀Throttle.cc等。
[crush]:Crush模块,Ceph的数据分布算法
[global]:全局模块,主要是声明和初始化各类全局变量(全局上下文)、构建驻留进程、信号处理等。
[include]:头文件,包含各种基本类型的定义,简单通用功能等。
[kv]:4种kv DB(KVDB\MemDB\LevelDB\RocksDB)的调用接口
[librados]:rados库模块的代码
[librdb]:libbd库模块的代码
[log]:日志模块,主要负责记录本地log信息(默认/var/log/ceph/目录)
[mds]:mds模块
[mon]:mon模块
[msg]:消息通讯机制Messenger模块,包括用于定义通讯功能的抽象类Messenger以及3个实现类SimpleMessager、xio、async
[messages]:消息类型定义message模块,定义了Ceph各节点之间消息通讯中用到的消息类型。
[mount]:mount模块
[os]:对象存储后端(Object Store)模块,用于实现本地的对象存储功能。有bluestore,filestore等的实现
[osd]:osd节点接口,有OSDMap,PG,PrimaryLogPG,PGBackend, Session,SnapMapper等。
[osdc]:OSD客户端(OSD Client),封装了各类访问OSD的方法。
[rbd_fuse]: 把 rbd映像(image)呈现为文件
[rbd_reply]: rbd-replay是一套用于捕获和重放Rados块设备(RBD)工作负荷的工具。
[rgw]:rgw对象存储接口模块
[tools]:各类工具
[test]:单元测试
ceph_mds.cc:驻留程序mds
ceph_mon.cc:驻留程序mon
ceph_osd.cc:驻留程序osd
libcephfs.cc:cephfs库
3、二级src目录下的重要文件夹关系图介绍:
参考:6沙鱼的博客