ceph源码分析
针对CEPH 部分组件的源码分析
z_stand
远离颠倒梦想,究竟涅槃
展开
-
ceph存储 PG的状态机 源码分析
PG 的状态机和peering过程首先来解释下什么是pg peering过程?当最初建立PG之后,那么需要同步这个pg上所有osd中的pg状态。在这个同步状态的过程叫做peering过程。同样当启动osd的时候,这个osd上所有的pg都要进行peering过程,同步pg的状态。peering过程结束后进入pg的Active状态,如果需要进行数据恢复则进行数据的恢复工作。那么从PG的创建或者扫...转载 2020-02-14 12:31:58 · 1205 阅读 · 1 评论 -
关于ceph源码 backtrace 打印函数调用栈
当集中精力看一个问题的时候,时间久了就会有这样一个状态,天空飘来五个字,那都不算事ceph源码庞大的体量以及复杂的设计让很多人望而却步,尤其是大量的纯虚函数更是让读者迷失在代码的海洋,这个时候函数调用栈是一个救命的东西,因为它节约了你大量的重复查找的时间查看最终效果如下为我想要查看bluestore在处理shareblob的释放逻辑中对put函数的调用者查看2019-07-11 20:11...原创 2020-05-10 20:03:15 · 1003 阅读 · 0 评论 -
ceph PG设计,状态机,peering,recovery 导图
原创 2019-12-13 17:54:20 · 862 阅读 · 0 评论 -
ceph bluestore源码分析:非对齐写逻辑
文章目录环境原理说明总结环境ceph:12.2.1场景:ec 2+1部署cephfs,执行如右写模式:dd if=/dev/zero of=/xxx/cephfs bs=6K count=4 oflag=direct关键配置:bluestore_min_alloc_size_hdd = 65536 bluestore分配空间的最小粒度 单位:Bbdev_block_size = 40...原创 2020-05-10 20:03:04 · 3289 阅读 · 8 评论 -
ceph bluestore源码分析:admin_socket实时获取内存池数据
环境:版本:ceph 12.2.1部署完cephfs 使用ceph-fuse挂载,并写入数据关键参数:debug_mempool = true 将该参数置为true即可查看详细的blustore管理的内存池的数据命令:ceph daemon osd.id dump_mempools该命令为admin_socket线程实时获取当前内存池中各个类对象的数据如下,我可以看到bluestor...原创 2020-05-10 20:02:50 · 937 阅读 · 0 评论 -
ceph bluestore 源码分析:刷缓存(trim)逻辑
环境ceph版本:12.2.1部署模式:ec 2+1osd: 3个 且资源池已经有数据执行命令:ceph daemon osd.0 flush_store_cache 进行刷缓存。即将dump_mempools内存池管理的bluestore cache中的无用数据进行释放主要参数:bluestore_cache_trim_interval = 0.2 #bluestore cache ...原创 2020-05-10 20:03:33 · 1758 阅读 · 0 评论 -
PGLog写流程梳理
文章目录PG_log 简介log内容存储结构分析查看方法追踪单个op的pglog相关数据结构pg_log_tpg_log_infopg_history_tpg_log_entry_tPG状态机PGlog参与数据恢复过程对于故障OSD所拥有的Primary PG对于故障OSD所拥有的Replicate PG参考文档:https://blog.csdn.net/changtao381/artic...原创 2020-05-10 20:02:37 · 2363 阅读 · 1 评论 -
ceph bluestore 源码分析:ceph-osd内存查看方式及控制源码分析
本文通过对ceph-osd内存查看跟踪的手段以及osd内存控制的方式进行源码层面的说明,并未通过修改相关源码进行控制(水平不够),仅限于使用社区已开发好的参数进行相关配置的跟进而已,如想要追求更加精确的理解,可以对osd/bluestore/rocksdb相关源码实现进行阅读ceph版本12.2.1 - 12.2.12内存查看最常用的内存初始查看方法top -u ceph |grep ce...原创 2020-05-10 20:02:19 · 3340 阅读 · 1 评论