Ceph 撸源码系列(一):Ceph开源项目源代码的关键目录介绍

从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个实现类SimpleMessagerxioasync

[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.cccephfs

3、二级src目录下的重要文件夹关系图介绍:

Ceph 撸源码系列(一):Ceph开源项目源代码的关键目录介绍_第1张图片

参考:6沙鱼的博客

 

 

 

 

 

 



 


 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Ceph)