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个实现类SimpleMessager、xio、async
[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.cc:cephfs库
3、二级src目录下的重要文件夹关系图介绍:
Ceph 撸源码系列(一):Ceph开源项目源代码的关键目录介绍相关推荐
- 带着问题撸源码系列-zookeeper-临时节点[ephemeral]是怎么弄的?我写了一堆临时节点为啥我一掉线就全没了?
问题 带着问题撸源码系列-zookeeper-临时节点[ephemeral]是怎么弄的?我写了一堆临时节点为啥我一掉线就全没了? 猜测 可能是有线程维护着,每个session有一个临时节点列表,一旦客 ...
- 推荐 7 个 Vue2、Vue3 源码解密分析的开源项目
大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 1. 为什么要学习源码 ? 阅读优秀的代码的目的是让我们能够写出优秀的代码. 不给自己设限,不要让你周围人的技术上限成为你的上限.其 ...
- Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架
今天看了朋友一个项目用到了Hawk,然后写了这边文章 一.了解一下概念 Android Hawk数据库github开源项目 Hawk是一个非常便捷的数据库.操作数据库只需一行代码,能存任何数据类型. ...
- ofo html源码,Github最火开源项目-一行代码实现ofo小黄车的引导界面
自定义控件 联网 工具 数据库 源码分析相关面试题 Activity相关面试题 Service相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试 ...
- ril.java源码_RIL 重构 | Android 开源项目 | Android Open Source Project
Android 7.0 通过一组功能对无线接口层 (RIL) 进行了重构,从而改进了 RIL 的功能.要实现这些功能,合作伙伴需要对代码进行更改:您可以自行决定是否更改,不过我们建议您进行更改.重构更 ...
- ceph bluestore源码分析:非对齐写逻辑
文章目录 环境 原理说明 总结 环境 ceph:12.2.1 场景:ec 2+1 部署cephfs,执行如右写模式:dd if=/dev/zero of=/xxx/cephfs bs=6K count ...
- 使用rpmbuild对ceph的源码包进行重新打包
进入ceph源码包下载ceph相关的rpm包和tar包 我们下载的是ceph-12.1.1-0.el7.src.rpmceph L版本的rpm包 执行命令rpmbuild --rebuild ceph ...
- 二、ceph编译源码、单机搭建调试环境
2019独角兽企业重金招聘Python工程师标准>>> 准备一台机器: root@test3:~# cat /proc/version Linux version 3.13.0-32 ...
- 源码解读_入口开始解读Vue源码系列(二)——new Vue 的故事
作者:muwoo 转发链接:https://github.com/muwoo/blogs/blob/master/src/Vue/2.md 目录 入口开始解读Vue源码系列(一)--造物创世 入口开始 ...
- Android 源码系列之二十通过反射解决在HuaWei手机出现Register too many Broadcast Receivers的crash
转载请注明出处:http://blog.csdn.net/llew2011/article/details/79054457 Android开发适配问题一直是一个让人头疼的话题,由于国内很多厂商都有对 ...
最新文章
- IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法
- led灯光衰怎么解决_什么是LED光衰,光衰怎么解决?
- 企业新站上线应注意的几个问题
- NYOJ 734 奇数阶魔方
- 如何写windows系统已保护的内存区域
- iOS开发UI篇—字典转模型
- python数据透视、有的value不能同时输出_python – Pandas数据透视表ValueError:索引包含重复的条目,无法重新整形...
- fedora下一些问题的解决方案汇总
- python2多线程_python_并发编程——多线程2
- Base64(电子邮件传输算法)
- 关于Vista的AppInfo服务被禁的问题
- Python 量化投资实战教程(5) — A股回测KDJ 策略
- 年底互联网寒冬,裁员直线上升
- html的外部调用函数,如何在HTML中调用外部JavaScript函数
- 18-HTML标签的居中
- 第一次组装台式机记录
- Unbuntu22.04安装教程以及Unbuntu下C++环境的配置
- xxl-job定时任务
- Windows 10企业批量部署实战之WDS配置
- 华为路由器:虚拟路由冗余协议VRRP的讲解
热门文章
- jquery学习之$(document).ready()
- vs2012中EF6的BUG
- 采用nettcp绑定的wcf宿主到iis7
- c# wince 小技巧
- spring catch了异常还是回滚了_干货:Spring 踩坑之@Transactional 神奇失效
- Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记
- 【内购篇】5 分钟教你成为会赚钱的独立开发者
- Confluence 6 附件存储配置
- python—多进程的消息队列
- sqlite3 命令行操作