搭建简易的文件服务器
需求很简单,就是一个能够存取文件的服务器,其他的事情都由客户端自己完成。
需求很简单,就是一个能够存取文件的服务器,其他的事情都由客户端自己完成。
在用tox集成py.test时遇到个问题,一个测试脚本需要测试运行流程的正确性,但某个测试函数会调用外部的ceph的命令,又会产生一些其他的依赖,而这些函数不是测试重点,就可以使用mock模块,用一个其他函数来替换有依赖的函数,两个函数输入一致,但是这个函数可以不做任何处理,所以就跳过了依赖调用。
简单记录pdb的使用
1 | # 通过再代码中设置 |
基本命令
| 命令 | 用途 | 说明 |
|---|---|---|
| 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比较复杂,文档也比较少,记录下部署中遇到的坑。。。
如果需要要修改Ceph源码,就要自己构建安装包,然后指定ceph-deploy的安装源。
本文主要介绍从git上clone源码,然后用rpmbuild打包,最后用ceph-deploy安装。
环境为Centos,ceph版本0.94.2(hammer),不同版本的文件稍微有点不一样。
MemStore总体的结构比较简单,Object通过Collection的概念来组织Object,每个Collection有两个结构存储Object映射。
初步的Ceph读写流程分析。更详细的IO路径整理好了放上来。
Ceph底层FileStore模式下,采用了写日志,就是Journal。实现机制类似数据库的写日志。写数据时,会在journal上写日志,保证出现故障时可以从日志恢复。
这里整理一篇从源码编译的测试集群搭建方法。
ceph-deploy的部署方式,可以参考官网。
研究一段时间后,开始测试Ceph性能。
ceph与fio的结合见Ceph Performance Analysis: fio and RBD,官方给出了一个样例。