rbd file input output test

目的

利用  rbd 文件读写, 对 ceph 集群 io 进行测试
通过参数调整, 控制 IO 读写速度
检测 SSD 在日志盘进行读写时候是否会达到瓶颈

测试环境

ceph 集群环境参考

rbd client 环境如下

服务器名称ip 地址
hh-yun-compute-131203.vclound.com10.199.131.203
hh-yun-compute-131204.vclound.com10.199.131.204
hh-yun-compute-131205.vclound.com10.199.131.205
hh-yun-compute-131207.vclound.com10.199.131.207
hh-yun-compute-131208.vclound.com10.199.131.208

rbd import VS rbd map 测试

目的

以相同环境测试, 测试一台至多台机器并发执行  rbd import 之间的速度对比

单机单文件数据传输测试

rbd import test

创建一个 4GB FILE, 非 dd file
利用 rbd 命令 import 文件到 ceph cluster
监控 import 时间, 
监控 ceph journal disk io
监控 ceph sata disk io
监控 ceph cluster io
ID文件大小完成时间ssd journal最大速度单个 osd 最大速度A单个 osd 最大速度Bceph 整体最大速度
14GB39s120MB/s50MB/s48MB/s105MB/s
24GB41s118MB/s52MB/s52MB/s110MB/s
34GB41s106MB/s44MB/s40MB/s106MB/s

rbd map

对应操作系统内核版本

由于内存版本问题, CENTOS 7.2 执行 rbd map 时候将会出现下面错误信息

Dec  5 11:48:45 hh-yun-compute-131204 kernel: Key type dns_resolver registered
Dec  5 11:48:45 hh-yun-compute-131204 kernel: Key type ceph registered
Dec  5 11:48:45 hh-yun-compute-131204 kernel: libceph: loaded (mon/osd proto 15/24)
Dec  5 11:48:45 hh-yun-compute-131204 kernel: rbd: loaded (major 252)
Dec  5 11:48:45 hh-yun-compute-131204 kernel: libceph: mon1 10.199.128.214:6789 feature set mismatch, my 102b84a842a42 < server's 40102b84a842a42, missing 400000000000000
Dec  5 11:48:45 hh-yun-compute-131204 kernel: libceph: mon1 10.199.128.214:6789 missing required protocol features
解决方法
升级至少 CENTOS 7.3 以上
rbd feature disable 问题
[root@hh-yun-compute-131203 ~]# rbd map -p data --image rbdtestfile
rbd: sysfs write failed
RBD image feature set mismatch. Try disabling features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address
解决方法

查询

[root@hh-yun-compute-131203 ~]# rbd info data/rbdtestfile
rbd image 'rbdtestfile':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.c28e32ae8944a
        format: 2
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten       <- 关闭多余的 feature
        flags:
        create_timestamp: Tue Dec  5 11:22:27 2017

修改方法

[root@hh-yun-compute-131203 ~]# rbd feature disable data/rbdtestfile exclusive-lock object-map fast-diff deep-flatten

修改后查询

[root@hh-yun-compute-131203 ~]# rbd info data/rbdtestfile
rbd image 'rbdtestfile':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.c28e32ae8944a
        format: 2
        features: layering
        flags:
        create_timestamp: Tue Dec  5 11:22:27 2017

可选命令指定 feature

[root@hh-yun-compute-131203 ~]# rbd create --pool data --image newrbdfile --image-format 2 --image-feature layering  --size 10G
[root@hh-yun-compute-131203 ~]# rbd info data/newrbdfile
rbd image 'newrbdfile':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.b59b22ae8944a
        format: 2
        features: layering
        flags:
        create_timestamp: Tue Dec  5 15:04:11 2017

永久修改方法

参考 feature 特性与编码

修改配置 /etc/ceph/ceph.conf

[osd]
  rbd_default_features = 1

注意, 修改的是 client 端, 不是 server 端

执行 rbd map
[root@hh-yun-compute-131203 ~]# rbd map data/newrbdfile
/dev/rbd0
[root@hh-yun-compute-131203 ~]# ls -lh /dev/rbd0
brw-rw---- 1 root disk 252, 0 12月  5 16:13 /dev/rbd0        <- 新增的 rbd 设备文件

rbd map test

创建一个 4GB FILE, 非 dd file
利用 rbd map 命令把  rbd file 当做本地磁盘进行 IO 读写
监控 文件写入 时间, 
监控 ceph journal disk io
监控 ceph sata disk io
监控 ceph cluster io

格式化

[root@hh-yun-compute-131203 ~]# mkfs -t xfs /dev/rbd0
meta-data=/dev/rbd0              isize=512    agcount=17, agsize=162816 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载

[root@hh-yun-compute-131203 ~]# mount /dev/rbd0  /mnt

测试

ID文件大小完成时间ssd journal最大速度单个 osd 最大速度A单个 osd 最大速度Bceph 整体最大速度
14GB40s120MB/s44MB/s48MB/s115MB/s
24GB39s120MB/s40MB/s44MB/s125MB/s
34GB39s132MB/s36MB/s40MB/s115MB/s

总结

对于单机操作下, 对于 rbd mapping 与 rbd import 两种性能够上差不多
对于文件写情况下, ssd journal 都会比单个 OSD 的读写 IO 频繁

三台机单文件数据传输测试

三机器并发对 ceph 进行数据写入测试

rbd import

ID文件大小A完成时间B完成时间C完成时间ssd journal最大速度ssd journal TPS单个 osd 最大速度A单个 osd 最大速度B单个 osd 最大TPSceph 整体最大速度
14GB44s46s45s299MB/s130056MB/s59MB/s130292MB/s
24GB42s44s44s300MB/s128042MB/s56MB/s132299MB/s
34GB40s40s40s293MB/s133454MB/s52MB/s138288MB/s

总结

作为 ceph 跨集群迁移
建议利用 3 ~5 物理机进行并发 import 数据到新集群
过多的机器并发, 会先导致 journal disk 首先达到瓶颈
对于物理机 osd disk 与 journal disk 比例, 建议 5:1
具有 journal disk 会大大加速 osd disk 数据响应速度(即提高 ceph 集群性能) 

参考

http://tracker.ceph.com/projects/ceph/wiki/Benchmark_Ceph_Cluster_Performance
http://ceph.com/planet/quick-analysis-of-the-ceph-io-layer/
http://www.sebastien-han.fr/blog/2014/10/10/ceph-how-to-test-if-your-ssd-is-suitable-as-a-journal-device/
https://github.com/bryanapperson/ceph-disk-test/blob/master/ceph_disk_test.sh
http://bryanapperson.com/blog/ceph-raw-disk-performance-testing/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值