ceph源码解析(1)

从GitHub上Clone的Ceph项目,其目录下主要文件夹和文件的内容为:

1 根目录

[src]:各功能某块的源代码

[qa]:各个模块的功能测试(测试脚本和测试代码)
[wireshark]:#wireshark的ceph插件。

[admin]:管理工具,用于架设文档服务器等
[debian]:用于制作debian(Ubuntu)安装包的相关脚本和文件
[doc]:用于生成项目文档,生成结果参考http://ceph.com/docs/master/
[man]:ceph各命令行工具的man文件

configure.ac:用于生成configure的脚本
Makefile.am:用于生成Makefile的脚本
autogen.sh:负责生成configure。
do_autogen.sh:生成configure的脚本,实际上通过调用autogen.sh实现
ceph.spec.in:RPM包制作文件

2 src目录

[include]:头文件,包含各种基本类型的定义,简单通用功能等。
[common]:共有模块,包含各类共有机制的实现,例如线程池、管理端口、节流阀等。
[log]:日志模块,主要负责记录本地log信息(默认/var/log/ceph/目录)
[global]:全局模块,主要是声明和初始化各类全局变量(全局上下文)、构建驻留进程、信号处理等。

[auth]:授权模块,实现了三方认知机制。
[crush]:Crush模块,Ceph的数据分布算法
[msg]:消息通讯模块,包括用于定义通讯功能的抽象类Messenger以及目前的实现SimpleMessager
[messages]:消息模块,定义了Ceph各节点之间消息通讯中用到的消息类型。
[os]:对象(Object Store)模块,用于实现本地的对象存储功能。
[osdc]:OSD客户端(OSD Client),封装了各类访问OSD的方法。

[mon]:mon模块
[osd]:osd部分
[mds]:mds模块

[rgw]:rgw模块的

[librados]:rados库模块的代码
[librdb]:libbd库模块的代码

[client]:client模块,实现了用户态的CephFS客户端
[mount]:mount模块
[tools]:各类工具

[test]:单元测试
[perfglue]:与性能优化相关的源代码

[json_spirit]:外部项目json_spirit
[leveldb]:外部项目leveldb from google
[gtest]:gtest单元测试框架

[doc]:关于代码的一些说明文档

[bash_completion]:部分bash脚本的实现
[pybind]:python的包装器
[script]:各种python脚本
[upstart]:各种配置文件

ceph_mds.cc:驻留程序mds
ceph_mon.cc:驻留程序mon
ceph_osd.cc:驻留程序osd

libcephfs.cc:cephfs库
librdb.cc:rdb库

ceph_authtool.cc:工具ceph_authtool
ceph_conf.cc:工具ceph_conf
ceph_fuse.cc:工具ceph_fuse
ceph_syn.cc:工具ceph_syn
cephfs.cc:工具cephfs
crushtool.cc:工具crushtool
dupstore.cc:工具dupstore
librados-config.cc:rados库配置工具
monmaptool.cc:工具monmap
osdmaptool.cc:工具osdmap
psim.cc:工具psim
rados.cc:工具rados
rdb.cc:工具rdb

rados_export.cc:rados工具相关类
rados_import.cc:rados工具相关类
rados_sync.cc:rados工具相关类
rados_sync.h:rados工具相关类

sample.ceph.conf:配置文件样例
ceph.conf.twoosds:配置文件样例

Makefile.am:makefile的源文件
valgrind.supp:内存检查工具valgrind的配置文件

init-ceph.in:启动和停止ceph的脚本
mkcephfs.in:cephfs部署脚本

//---------------------------------------------------------------------------------

网络通信:  msg  里面 包括了网络传输的代码, message 目录里定义了 传输的消息格式。

元数据服务器:
                  mds  目录 包括了metadata server 的代码
数据服务器:
                 os     目录里包含了 object store 的代码
                 osd  目录包括了 object storage device 的代码
客户端:
                 osdc  目录里包括跨网络访问 osd的 代码
                 librados 包括了对象存储的客户端操作的代码
                 librbd,rgw, client  客户端代码,其代码都是基于librados之上。
监控:Ceph Monitor      
                 mon 目录里包括了 Ceph Monitor的代码                 
CRUSH 算法:
          cursh  目录里包括了 cursh 算法的代码
核心就是上述的代码,当然还有其它一些的辅助性的代码:
common: 一些公用的类和函数
cls: OSD的一个插件机制,可以在对象上原子的执行一些复杂的操作。 感觉有点像OpenC++的反射机制,总之是一种测试和调试机制。

转载于:https://my.oschina.net/guyson/blog/324499

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值