Ceph源代码目录结构详解

转自: http://blog.sina.com.cn/s/blog_7bfc41ad0102vbm0.html


从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部署脚本


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
host= 存储所在的主机的 ID。 lun= 原始磁盘、磁带或文件系统的名称。vdbench 也可为您创建一个磁盘。 threads= 对 SD 的最大并发 I/O 请求数量。默认为 8。 hitarea= 调整读取命中百分比的大小。默认为 1m。 openflags= 用于打开一个 lun 或一个文件的 flag_list。 WD:工作负载定义 wd= 标识工作负载的名称。 sd= 要使用的存储定义的 ID。 host= 要运行此工作负载的主机的 ID。默认设置为 localhost。 rdpct= 读取请求占请求总数的百分比。 rhpct= 读取命中百分比。默认设置为 0。 whpct= 写入命中百分比。默认设置为 0。 xfersize= 要传输的数据大小。默认设置为 4k。 seekpct= 随机寻道的百分比。可为随机值。 openflags= 用于打开一个 lun 或一个文件的 flag_list。 iorate= 此工作负载的固定 I/O 速率。 RD:运行定义 rd= 标识运行的名称。 wd= 用于此运行的工作负载的 ID。 iorate= (#,#,...) 一个或多个 I/O 速率。 curve:性能曲线(待定义)。 max:不受控制的工作负载。 elapsed= time:以秒为单位的运行持续时间。默认设置为 30。 interval:报告间隔序号 warmup= time:加热期,最终会被忽略。 distribution= I/O 请求的分布:指数、统一或确定性。 pause= 在下一次运行之前休眠的时间,以秒为单位。 openflags= 用于打开一个 lun 或一个文件的 flag_list。 对于一个文件系统 对于一个文件系统,配置以下参数: HD:主机定义。与虚拟块设备相同。 FSD:文件系统定义 fsd= 标识文件系统定义的名称 anchor= 将在其中创建目录结构目录 width= 要在定位符下创建的目录数 depth= 要在定位符下创建的级别数 files= 要在最低级别创建的文件数 sizes= (size,size,...) 将创建的文件大小 distribution= bottom(如果希望仅在最低级别创建文件)和 all(如果希望在所有目录中创建文件) openflags= 用于打开一个文件系统 (Solaris) 的 flag_list FWD:文件系统工作负载定义 fwd= 标识文件系统工作负载定义的名称。 fsd= 要使用的文件系统定义的 ID。 host= 要用于此工作负载的主机的 ID。 fileio= random 或 sequential,表示文件 I/O 将执行的方式。 fileselect= random 或 sequential,标识选择文件或目录的方式。 xfersizes= 数据传输(读取和写入操作)处理的数据大小。 operation= mkdir、rmdir、create、delete、open、close、read、write、getattr 和 setattr。选择要执行的单个文件操作。 rdpct= (仅)读取和写入操作的百分比。 threads= 此工作负载的并发线程数量。每个线程需要至少 1 个文件。 RD:运行定义 fwd= 要使用的文件系统工作负载定义的 ID。 fwdrate= 每秒执行的文件系统操作数量。 format= yes / no / only / restart / clean / directories。在开始运行之前要执行的操作。 operations= 覆盖 fwd 操作。选项相同。 运行之后的输出文件夹文件 每次运行后,vdbench 会创建一个包含以下文件的输出文件夹: errorlog.html 当为测试启用了数据验证时,它可包含一些数据块中的错误的相关信息: 无效的密钥读取 无效的 lba 读取(一个扇区的逻辑字节地址) 无效的 SD 或 FSD 名称读取 数据损坏,即使在使用错误的 lba 或密钥时 数据损坏 坏扇区

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值