查看丢失对象的pg id
ceph health detail
查找该pg下丢失的object
ceph pg 8.32 list_missing
尝试修复该pg:
ceph pg repair 8.32
ceph pg scrub 8.32
修复不成功的话,可以直接告诉ceph使用已有的版本或者直接删除
尝试切换到旧版本的object:ceph pg 8.32 mark_unfound_lost revert
直接删除该pg丢失的object:ceph pg 8.32 mark_unfound_lost delete
如果以上步骤还未修复该对象,那么执行如下步骤
找出当前资源池下所有的rbd块
rbd ls test_rep_pool
[root@node1 ~]# rbd ls test_rep_pool
rbd_test
获取该块的详细信息 显示如下
rbd info test_rep_pool/rbd_test
rbd image 'rbd_test':size 10GiB in 2560 objectsorder 22 (4MiB objects)block_name_prefix: rbd_data.14cf06b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags: create_timestamp: Fri May 10 16:03:43 2019
找出该对象对应的osd id
ceph osd map test_rep_pool rbd_data.14cf06b8b4567
显示如下信息
[root@node1 ~]# ceph osd map test_rep_pool rbd_data.14cf06b8b4567
osdmap e199 pool 'test_rep_pool' (2) object 'rbd_data.14cf06b8b4567' -> pg 2.eb35710a (2.a) -> up ([0,1], p0) acting ([0,1], p0)
获取到该pg对应的up set和acting set
在每个osd中删除该对象
systemctl stop ceph-osd@id
ceph-objectstore-tool删除该osd中 的对象
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-1/ --pgid 8.e rbd_data.7.20a274b0dc51.0000000000000fc8 remove
删除后在资源池中创建一个同名的空对象:
rbd create -p test_rep_pool --size 4M rbd_data.14cf06b8b4567
本文主要是在梳理cephfs内核方式挂载的内核代码逻辑所做的准备 环境:Centos 7.5 内核源码版本:3.10.0-862.el7.x86_64 打开ceph模块的debug信息 单独编译ceph模块的.ko文件 ceph在内核的通用模块主要有三个: ceph.ko 模块路径:/usr/src/kernels/3.10....
文章目录安装使用使用`ceph tell`产生堆栈信息文使用`pprof`工具分析内存及`ceph tell`释放内存火焰图`FlameGraph`可视化进程堆栈信息 pprof是一个google开发的支持可视化、且可分析profile文件而达到对内存的分析。并且能够输出文本和图像来支持分析过程,pprof源码 安装...
目前有两种动态修改的方式来让ceph中各个组件的配置生效,所以介绍如下两种方式方便我们进行功能或者代码的调试 使用ceph daemon方式修改 ceph daemon osd.0 help用于osd的daemon服务ceph daemon mon.ceph-node1 help用于mon的admin socket命令、ceph...
我们内核挂载的前提是:看到centos7.5 中默认内核3.10.0-862.11.6.el7.x86_64的挂载fs执行文件读写性能更优良,所以尝试将3.10.0-862.11.6.el7.x86_64模块中与ceph fs挂载相关的ceph.ko,libceph.ko,dns_resolver.ko,libcrc32c.ko拷贝...