
Ceph源码分析
文章平均质量分 93
SEU_PAN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Ceph 学习——CRUSH算法及源码分析(一)
CRUSH 算法解决了PG副本如何分布在集群OSD上的问题,本文先介绍CRUSH算法基本原理和相关的数据结构,主要是CRUSH map中的内容如bucket、placement rule等以及他们的源码初探。 ps: 代码目前都没加注释,也没有删除冗余的东西哎。。。。整理文章是真的累,难怪大家都喜欢说转载请注明出处 :XD 限于篇幅有些重要的函数没有列出来,在下一章中再说好了原创 2017-11-29 20:30:29 · 3321 阅读 · 0 评论 -
Ceph 学习——OSD读写流程与源码分析(一)
消息从客户端发送而来,之前几节介绍了 客户端下 对象存储、块存储库的实现以及他们在客户端下API请求的发送过程(Ceph学习——Librados与Osdc实现源码解析 、 Ceph学习——客户端读写操作分析 、 Ceph学习——Librbd块存储库与RBD读写流程源码分析)。当请求被封装后,通过消息发送模块(Ceph学习——Ceph网络通信机制与源码分析)将请求及其相关信息发送到服务端实现真正的原创 2017-12-08 16:50:59 · 15122 阅读 · 5 评论 -
Ceph 学习——CRUSH算法及源码分析(二)
前一章介绍CRUSH算法的基本原理和一些基本的数据结构,这一节将介CRUSH的源码实现,主要是一些对算法实现的具体函数的介绍。 回顾 Ceph 学习——CRUSH算法及源码分析(一) CRUSH 相关源代码 位于源码文件的 ceph/src/crush中 这个编辑器不能上传附件的吗?知道的朋友教下新手小白 怎么上传附件相关数据结构CRUSH 算法相关的数据结构主要有几个 分别是 crush_m原创 2017-11-30 15:14:20 · 1607 阅读 · 0 评论 -
Ceph学习——Ceph网络通信机制与源码分析
作为一个分布式存储系统,Ceph自然需要一个稳定的网络通信模块,用于客户端和服务端,以及各个节点之间的消息通信。Ceph的网络模块位于源代码的ceph/src/msg 下,该模块构造了网络通信的基本框架。在文件夹下还包含了三种接口的实现:simple、async、xio。由于simple比较简单,也是目前生产环境中可以使用的,所以就只介绍它。原创 2017-12-01 20:04:34 · 4042 阅读 · 0 评论 -
Ceph学习——Librados与Osdc实现源码解析
本文介绍Ceph客户端方面的某些模块的实现。客户端主要是实现了接口,对外提供访问的功能。上层可以通过接口来访问Ceph存储。Librados 与 Osdc 位于Ceph客户端中比较底层的位置,Librados 提供了Pool的创建、删除、对象的创建、删除等基本接口;Osdc则用于封装操作,计算对象的地址,发送请求和处理超时。原创 2017-12-04 18:34:08 · 8683 阅读 · 2 评论 -
Ceph学习——客户端读写操作分析
客户端读写操作分析本节设计到了Librados以及Osdc等操作,相关类如 RadosClient、Objecter、IoCtxImpl等介绍见上一节: Ceph学习——Librados与Osdc实现源码解析 1)调用rados_create()创建一个RadosClient对象。 2) 调用rados_config_read()读取配置文件。 3)调用rados_connect()函数,最原创 2017-12-04 18:42:52 · 4937 阅读 · 0 评论 -
Ceph学习——Librbd块存储库与RBD读写流程源码分析
Librbd 包含了rbd的相关操作,并发送给ImageRequestWQ类处理(队列),而后该类将其中的的请求发送给ImageRequest处理,ImageRequest将Image进行**分片(将一个 块 分解成 对象 进行处理,Ceph的底层本质还是对象存储)** 等操作后,将各个对象调用ObjectRequest类进行处理 ,每个ObjectRequest请求分别处理。原创 2017-12-06 19:52:21 · 16505 阅读 · 4 评论