本文分析的源代码是ceph-0.56.1,
其源代码在 github上https://github.com/ceph/ceph
可以下载。
Ceph是并行文件系统,其体系结构就不在这里叙述了。可参见:
http://blog.csdn.net/changtao381/article/details/8698935
其结构如下:在src 里,
网络通信: 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的一个扩展机制,用户可以扩展目前没有定义的对象的操作。