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目录下的重要文件夹关系图介绍:

参考:6沙鱼的博客

 

 

 

 

 

 



 


 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值