0%

在用tox集成py.test时遇到个问题,一个测试脚本需要测试运行流程的正确性,但某个测试函数会调用外部的ceph的命令,又会产生一些其他的依赖,而这些函数不是测试重点,就可以使用mock模块,用一个其他函数来替换有依赖的函数,两个函数输入一致,但是这个函数可以不做任何处理,所以就跳过了依赖调用。

Read more »

简单记录pdb的使用

1
2
3
4
5
# 通过再代码中设置
import pdb
pdb.set_trace() # 代码会停留再改语句,然后进入调试模式
# 或者
python -m pdb *.py

基本命令

命令 用途 说明
break 或 b 设置断点 b *.py:line or b *.function()
continue 或 c 继续执行程序
list 或 l 查看当前行的代码段
step 或 s 进入函数
return 或 r 执行代码直到从当前函数返回
exit 或 q 中止并退出
next 或 n 执行下一行
p 打印变量的值
help 帮助

第一条命令后继续按enter,会重复上一条命令。
在运行中可以动态改变变量的值。

Calamari是Ceph官方出品的监控平台,监控内容很丰富,可以做一些基本的运维操作,但是还不能做Ceph部署,需要结和ceph-deploy。
Calamari比较复杂,文档也比较少,记录下部署中遇到的坑。。。

Read more »

如果需要要修改Ceph源码,就要自己构建安装包,然后指定ceph-deploy的安装源。
本文主要介绍从git上clone源码,然后用rpmbuild打包,最后用ceph-deploy安装。
环境为Centos,ceph版本0.94.2(hammer),不同版本的文件稍微有点不一样。

Read more »

MemStore总体的结构比较简单,Object通过Collection的概念来组织Object,每个Collection有两个结构存储Object映射。

Read more »

Ceph底层FileStore模式下,采用了写日志,就是Journal。实现机制类似数据库的写日志。写数据时,会在journal上写日志,保证出现故障时可以从日志恢复。

Read more »