mon 目录里包括了 Ceph Monitor的代码 CRUSH 算法: cursh 目录里包括了 cursh 算法的代码 核心就是上述的代码,当然还有其它一些的辅助性的代码: common: 一些公用的类和函数 cls: OSD的一个插件机制,可以在对象上原子的执行一些复杂的操作。 感觉有点像OpenC++的反射机制,总之是一种测试和调试机制。 二、架构设...
• osdc(osd client):osd 的客户端,用于访问 osd 的数据 • cls:插件机制 3. 子系统层(SubSystem) 子系统层即 Ceph 中各个功能节点,包括 mon、osd、mds、 client 子系统层包括以下功能模块: • mon:监控节点 • osd:对象存储设备 • mds:元数据服务器,用于 CephFS 的元数据管理 • client:对 ...
osdc 目录里包括跨网络访问 osd的 代码 librbd,rgw, client 客户端代码,其代码都是基于librados之上。 监控:Ceph Monitor mon 目录里包括了 Ceph Monitor的代码 CRUSH 算法: cursh 目录里包括了 cursh 算法的代码 核心就是上述的代码,当然还有其它一些的辅助性的代码: common: 一些公用的类和函数 cls: OSD的一...
cls是ceph的一个扩展模块,它允许自定义对象的操作接口和实现方法,为用户提供了一种比较方便的接口扩展方式。 #define CLS_NAME(name) \ int __cls_name__## name = 0; \ const char *__cls_name = #name; int __cls_name__name = 0; const char *__cls_name = "name"; cls提供了服务端接口和...
cls cls是ceph的一个扩展模块,它允许自定义对象的操作接口和实现方法,为用户提供了一种比较方便的接口扩展方式。 #define CLS_NAME(name) \ int __cls_name__## name = 0; \ const char *__cls_name = #name; int __cls_name__name = 0; ...
在create_image()中,通过cls注册的函数创建rbd_header对象,并设置omap中的值,调用回调函数完成创建。 handle_create_image() set_stripe_unit_count() 之后代码遵循类似的流程,都是通过cls_client注册的函数 + 回调函数完成该状态功能,并调用函数,进入下一状态。调用的函数顺序为: ...
最上层是librbd层,模块cls_rbd是一个Cls扩展模块,实现了RBD的元数据相关的操作。RBD的数访问直接通过Librados来访问。在最底层是OSDC层完成数据的发送。 1.2 源码结构 1.2.1 librbd 在src/librbd和路径下为librbd的源码,其中分为.cc文件.h文件和子目录,文件的大致内容为: ...
本节书摘来自华章出版社《Ceph源码分析》一书中的导读,作者常涛,更多章节内容可以访问云栖社区“华章计算机”公众号查看 目录 序言 第1章 Ceph整体架构 1.1 Ceph的发展历程 1.2 Ceph的设计目标 1.3 Ceph基本架构图 1.4 Ceph客户端接口 1.4.1 RBD 1.4.2 CephFS ...
Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),…
每个subsystem用于控制某项特殊的资源(如可以被调度的cpu核,内存使用总量等),subsystem之间可以存在依赖关系。目前linux默认会加载的subsystem包括:blkio、cpu、cpuacct、cpuset、devices、freezer、hugetlb、memory、net_cls、net_cls,net_prio、net_prio、perf_event、pids、systemd。