fio测试ceph的filestore
前言
fio是一个适应性非常强的软件,基本上能够模拟所有的IO请求,是目前最全面的一款测试软件,之前在看德国电信的一篇分享的时候,里面就提到了,如果需要测试存储性能,尽量只用一款软件,这样从上层测试到底层去,才能更好的去比较差别
fio对于ceph来说,可以测试文件系统,基于文件系统之上测试,可以测试内核rbd,将rbdmap到本地格式化以后进行测试,或者基于librbd直接对rbd进行测试,这个是目前都已经有的测试场景,这些不在本篇的讨论的范围内,今天讲的是一种新的测试场景,直接对ceph的底层存储进行测试

为什么会有这个,因为在以前,如果你要测试一块磁盘是不是适合ceph使用的时候,都是直接对挂载的磁盘进行一些测试,这个是基于文件系统的,并没有真正的模拟到ceph自己的写入模型,所以在开发人员的努力下,模拟对象的写入的驱动已经完成了,这就是本篇需要讲述的内容
实践过程
fio engine for objectstore 这个是在ceph的11.0.2这个版本才正式发布出来的,可以看这个pr(pr10267),11.0.2是ceph第一个公开释放的KRAKEN版本的,也说明Jewel版本即将进入比较稳定的情况,新的功能可能会尽量在K版本进行开发
下载相关代码
创建一个目录用于存储代码
[root@lab8106 ~]# mkdir /root/newceph
[root@lab8106 ~]# cd /root/newceph/
下载fio的代码
[root@lab8106 newceph]# git clone git://git.kernel.dk/fio.git
下载ceph的代码
下载代码并且切换到指定的11.0.2分支,不要用master分支,里面还没有合进去,并且还有bug
[root@lab8106 ~]# cd /root/newceph/
[root@lab8106 newceph]# git clone git://github.com/ceph/ceph.git
[root@lab8106 newceph]# cd ceph
[root@lab8106 ceph]#git checkout -b myfenzhi v11.0.2
[root@lab8106 ceph]#git submodule update --init --recursive
创建一个cmake编译的目录并且编译
[root@lab8106 ~]# mkdir /root/newceph/build
[root@lab8106 ~]# cd /root/newceph/build
[root@lab8106 build]# cmake -DWITH_FIO=ON -DFIO_INCLUDE_DIR=/root/newceph/fio/ -DCMAKE_BUILD_TYPE=Release /root/newceph/ceph
[root@lab8106 build]# make install -j 16
安装完成检查是不是生成了这个库文件,fio就是利用这个库作为写入引擎的
[root@lab8106 build]# ll lib/libfio_ceph_objectstore.so
-rwxr-xr-x 1 root root 59090338 Nov 23 22:17 lib/libfio_ceph_objectstore.so
将库路径让系统识别
export LD_LIBRARY_PATH=/root/newceph/build/lib/
编译fio
[root@lab8106 ~]# cd /root/newceph/fio/
[root@lab8106 fio]#./configure
[root@lab8106 fio]# make
如果显示下面的,就可以了
[root@lab8106 fio]# ./fio --enghelp=libfio_ceph_objectstore.so
conf : Path to a ceph configuration file
配置测试
下面需要准备两个配置文件,一个是ceph自身的,一个是fio配置文件,我们看下我的环境下这个配置文件如何写的
写fio的测试文件
vim filestore.fio
[global]
ioengine=libfio_ceph_objectstore.so # must be found in your LD_LIBRARY_PATH
conf=/etc/ceph/ceph-filestore.conf # must point to a valid ceph configuration file
directory=/var/lib/ceph/osd/ceph-8 # directory for osd_data
rw=randwrite
iodepth=16
time_based=1
runtime=20s
[filestore]
nr_files=64
size=256m
bs=64k
上面的指定了一个配置文件和一个目录,这个目录是你需要测试的集群的存储的目录,里面不需要数据
写ceph的配置文件
vim /etc/ceph/ceph-filestore.conf
[global]
debug filestore = 0/0
debug journal = 0/0
# spread objects over 8 collections
osd pool default pg num = 8
# increasing shards can help when scaling number of collections
osd op num shards = 5
filestore fd cache size = 32
[osd]
osd objectstore = filestore
# use directory= option from fio job file
osd data = /var/lib/ceph/osd/ceph-8/
# journal inside fio_dir
osd journal = /var/lib/ceph/osd/ceph-8/journal
osd journal size = 5000
journal force aio = 1
配置文件指定数据目录,和journal路径
开始测试
[root@lab8106 fio]# ./fio filestore.fio
filestore: (g=0): rw=randwrite, bs=64K-64K/64K-64K/64K-64K, ioengine=ceph-os, iodepth=16
fio-2.15-11-g42f1
Starting 1 process
2016-11-23 22:32:17.713473 7f7536d56780 0 filestore(/var/lib/ceph/osd/ceph-8/) backend xfs (magic 0x58465342)
2016-11-23 22:32:17.804601 7f7536d56780 0 filestore(/var/lib/ceph/osd/ceph-8/) backend xfs (magic 0x58465342)
2016-11-23 22:32:17.805003 7f7536d56780 0 genericfilestorebackend(/var/lib/ceph/osd/ceph-8/) detect_features: FIEMAP ioctl is disabled via 'filestore fiemap' config option
2016-11-23 22:32:17.805018 7f7536d56780 0 genericfilestorebackend(/var/lib/ceph/osd/ceph-8/) detect_features: SEEK_DATA/SEEK_HOLE is disabled via 'filestore seek data hole' config option
2016-11-23 22:32:17.805020 7f7536d56780 0 genericfilestorebackend(/var/lib/ceph/osd/ceph-8/) detect_features: splice() is disabled via 'filestore splice' config option
2016-11-23 22:32:17.864962 7f7536d56780 0 genericfilestorebackend(/var/lib/ceph/osd/ceph-8/) detect_features: syncfs(2) syscall fully supported (by glibc and kernel)
2016-11-23 22:32:17.865056 7f7536d56780 0 xfsfilestorebackend(/var/lib/ceph/osd/ceph-8/) detect_feature: extsize is disabled by conf
2016-11-23 22:32:17.865643 7f7536d56780 0 filestore(/var/lib/ceph/osd/ceph-8/) start omap initiation
2016-11-23 22:32:17.926589 7f7536d56780 0 filestore(/var/lib/ceph/osd/ceph-8/) mount: enabling WRITEAHEAD journal mode: checkpoint is not enabled
可以看到,已经开始以对象存储的IO模型去生成测试了,根据自己的需要对不同的存储设备和组合进行测试就可以了
总结
作为一个新的测试模型的出现,更加完善了ceph的整体体系,也给磁盘的选型增加更好的测试工具
fio测试ceph的filestore的更多相关文章
- fio 测试磁盘
root@rook-test:/# ceph osd status+----+-----------------------------+-------+-------+--------+------ ...
- linux使用FIO测试磁盘的iops 【转载】
linux使用FIO测试磁盘的iops 2013-09-23 10:59:21 分类: LINUX FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括 ...
- Cgroup blkio简介和测试(使用fio测试)
Cgroup blkio简介和测试(使用fio测试) 因需要对docker镜像内的进程对磁盘读写的速度进行限制,研究了下Cgroup blkio,并使用fio对其iops/bps限速进行测试. Cgr ...
- [记录]FIO测试磁盘iops性能
FIO测试磁盘iops性能 1.SATA和SAS盘原生IOPS如下: 2.RAID磁盘阵列对应的写惩罚级别: 3.计算功能性IOPS公式如下: 功能性 IOPS=(((总原生 IOPS×写 %))/( ...
- FIO 测试磁盘iops 以及读写
最近在做mariadb的性能,感觉io 有瓶颈,就使用fio 来测试一下磁盘.下文为转载文章(温馨提示:此命令很伤硬盘,测试前请备份数据,- -我就写坏了一个.) FIO 是测试IOPS的非常好的工具 ...
- linux使用FIO测试磁盘的iops
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, ...
- Fio测试工具参数
以随机读为例:fio -ioengine=libaio -group_reporting -direct=1 -name=testsda -numjobs=1 --time_based --runti ...
- fio 测试磁盘性能
在磁盘测试中最关心的几个指标分别为: iops(每秒执行的IO次数).bw(带宽,每秒的吞吐量).lat(每次IO操作的延迟). 当每次IO操作的block较小时,如512bytes/4k/8k等,测 ...
- fio 测试 磁盘I/O: ls -1 /sys/block/sda/queue/ | awk '{cmd="cat "i$0; print i$0; system(cmd) }' i=`pwd`'/'
小型计算机系统接口(SCSI,Small Computer System Interface) SAS(Serial Attached SCSI,串列SCSI) SCSI 硬盘名称: sd[a-p] ...
随机推荐
- 一份超全的Python学习资料汇总
一.学习Python必备技能图谱二.0基础如何系统学习Python?一.Python的普及入门1.1 Python入门学习须知和书本配套学习建议1.2 Python简史1.3 Python的市场需求及 ...
- 输出c字母图形
1 #include "stdio.h" 2 #include "math.h" 3 int main(void) 4 { 5 double y; 6 int ...
- 稳压二极管、肖特基二极管、静电保护二极管、TVS管
1.稳压二极管 正向导通电压跟普通二级管一样约为0.7v,反向状态下在临界电压之前截止,在达到临界电压的条件下会处于导通的状态,电压也不再升高,所以用在重要元器件上,起到稳压作用. 稳压二极管主要利用 ...
- E. Tree Reconstruction 解析(思維)
Codeforce 1041 E. Tree Reconstruction 解析(思維) 今天我們來看看CF1041E 題目連結 題目 略,請直接看原題 前言 一開始完全搞錯題目意思,還以為每次會刪除 ...
- 每日10句:day1
1,plt.style.use('ggplot') #使用R语言的图像配色方案 2,for a,b in zip(x,y): plt.text(a,b+1,'%.0f'%b,ha='center',v ...
- 【新阁教育】S7.NET+Log4Net+SQLSugar+MySQL搭建Iot平台
1.搭建西门子S7仿真环境 新阁教育提醒您基于PLCSIM-Advanced搭建西门子S7仿真环境注意事项: 1.通过dotNet工控上位机公众号后台发送PLCSIM-Advanced获取软件 2.安 ...
- 完美解决CentOS8 yum安装AppStream报错,更新yum后无法makecache的问题
问题 CentOS 8 yum安装软件时,提示无法从AppStream下载 [root@C8-3 ~]# yum -y install httpd mariadb-server mariadb php ...
- [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)
题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ...
- [Luogu P2014]选课 (树形DP)
题面 传送门:https://www.luogu.org/problemnew/show/P2014 Solution 这是一道十分经典的树形DP题,这种类型的树形DP有一种很普遍的解法. 首先,观察 ...
- SQL 速查表
关系数据库,基于关系模型,使用关系(表)存储数据,同时定义了完整性约束.常见的关系数据库系统包括:Oracle.MySQL/MariaDB.SQL Server.PostgreSQL 等等. SQL, ...