笔者最近在工作中需要测试ceph的rgw,于是边测试边学习。
首先工具采用的intel的一个开源工具cosbench,这也是业界主流的对象存储测试工具。

1、cosbench的安装,启动
下载最新的cosbench包
wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip
解压
unzip 0.4.2.c4.zip

安装相关工具包
yum install java-1.7.0-openjdk nmap-ncat

给所有的sh脚本加执行权限
chmod +x *.sh

取消http代理
unset http_proxy

如果是controller节点,执行start-all.sh
如果是driver节点,执行start-driver.sh
我的环境里面是1个controller+3个driver,controller和其中1个driver共用一个节点
修改conf/controller.conf

修改各个节点的conf/driver.conf

controller 执行start-all.sh

driver节点执行start-driver.sh

http://controllerip:19088/controller/
登陆controller web页面

3个driver节点都ok

2、在conf目录下有各个配置文件

3、ceph的对象存储支持S3和swift两种接口,本篇先讨论S3
测试S3, 可以根据s3-config-sample.xml修改
<?xml version="1.0" encoding="UTF-8" ?>
<workload name="s3-sample" description="sample benchmark for s3">

<storage type="s3" config="accesskey=dbce6f1739494a87b8d6770b0c831d8d;secretkey=72b3205f558c475daac7b3bc756a63bc;endpoint=http://rgwip:8080" />
-----认证信息 accesskey secretkey endpoiont 去自己的ceph环境中获取
<workflow>

<workstage name="init"><work type="init" workers="1" config="cprefix=s3testqwer;containers=r(1,32)" />
</workstage>

----init阶段,主要是创建bucket,上述配置为创建s3testqwer为前缀的32个bucket
<workstage name="prepare">
<work type="prepare" workers="1" config="cprefix=s3testqwer;containers=r(1,32);objects=r(1,100);sizes=c(64)KB" />
</workstage>
----prepare阶段,主要是创建bucket里面的object,上述为在每个bucket创建64k的object 100个,64k可配范围,预先创建好数据库可以供下面的读测试使用
<workstage name="main">
<work name="main" workers="8" runtime="300">
<operation type="read" ratio="100" config="cprefix=s3testqwer;containers=u(1,32);objects=u(1,100)" />
<operation type="write" ratio="0" config="cprefix=s3testqwer;containers=u(1,32);objects=u(1,100);sizes=c(64)KB" />
</work>
</workstage>
----main,执行阶段,ratio是执行百分比,workers是并发数,runtime是执行时间
<workstage name="cleanup">
<work type="cleanup" workers="1" config="cprefix=s3testqwer;containers=r(1,32);objects=r(1,100)" />
</workstage>
----cleanup,清理object
<workstage name="dispose">
<work type="dispose" workers="1" config="cprefix=s3testqwer;containers=r(1,32)" />
</workstage>
-----dispose,清理bucket
</workflow>

</workload>
同一个workstage里面的work是并发执行的,比如你有多个driver,就会分配到多个driver去执行,每一个work里面的worker又是并发,worker也是负载到多个driver去的,多个workstage是顺序执行

导入写好的workstage脚本

然后submit

依次执行init-prepare-main-cleanup-dispose

执行结果

上图中各个类别说明:
Op-type - 操作类型
Op-Count - 操作总数
Byte-Count - byte总数
Avg-ResTime - 响应时间,是数据传输时间和处理时间的总和
Avg-ProceTime - 读写操作的时间
Throughput - 吞吐量,每秒操作数
Bandwidth - 带宽
Succ-Ratio - 操作的成功率

图标可以看整个数据的波动 整体还算平稳

有33条错误

可以在cosbench的log目录下找到错误log

查看对应mission的log

这是java启动的一个错误:
1、stop-all.sh 停止 cosbench 进程(controller, drivers)
2、编辑 cosbench-start.sh 文件,找到java启动命令行参数, 增加"-Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true" 关闭S3的MD5校验功能
3、start-all.sh 启动

修改后再次执行workload,不再报错,可以根据自己的配置调整脚本,比如只想测试write并且又想保留数据,就可以不写cleanup和dispose,当然也可以自定义work

附加一个swift接口测试的xml

转载于:https://blog.51cto.com/14009921/2311191

玩转ceph性能测试---对象存储(一)相关推荐

  1. Ceph入门到精通-Ceph之对象存储网关RADOS Gateway(RGW)

    一.Ceph整体架构及RGW在Ceph中的位置 1.Ceph的整体架构 Ceph是一个统一的.分布式的的存储系统,具有优秀的性能.可靠性和可扩展性.Ceph支持对象存储(RADOSGW).块存储(RB ...

  2. java s3 与ceph的关系,ceph S3 对象存储的使用

    ceph 对象存储兼容两种接口(协议)S3 和 swift. S3 最常用, 这里仅介绍如何连接(使用)S3存储接口. 访问 S3, 你需要 S3 的:用户密钥,包含:access_id 和 secr ...

  3. 【大咖专栏】如何配置CEPH RGW对象存储与公有云同步

    新钛云服已为您服务1280天 容灾 (Disaster Recovery),即容灾备份或灾备,是业务连续性系统的一个子集,用于保障 IT 系统在遭受自然灾害.人为操作失误或蓄意破坏后的数据还原和业务恢 ...

  4. 使用ceph的对象存储

    Ceph 对象存储 Ceph 对象存储使用 Ceph 对象网关守护进程( radosgw ),它是个与 Ceph 存储集群交互的 FastCGI 模块.因为它提供了与 OpenStack Swift ...

  5. python通过librados库通过底层的rados操作ceph的对象存储和块存储

    使用python语言调用原生接口(调用librados库来操作rados) 也就是下图中几种方式中的一种,就是图中的红色部分: 首先来说明一下:这个就相当于在客户端上操作ceph集群的底层对象存储ra ...

  6. ceph的数据存储之路(10) -----ceph对象存储的ls命令实现及思考

    2019独角兽企业重金招聘Python工程师标准>>> 更新:2016-10-19--------------------------------------- 前面更新的内容可能略 ...

  7. 应用ceph对象存储(ceph-13.2.10)

    记录:335 场景:在CentOS 7.9操作系统上,部署ceph-13.2.10集群.应用ceph对象存储(ceph object store):主要是创建对象存储客户端.使用s3cmd操作对象存储 ...

  8. Ceph 认证授权和RBD块存储、对象存储使用(三)

    RBD块存储 RBD介绍 1.RBD是Ceph分布式集群中最常用的存储类型 2.块是一个有序字节,普通的一个块大小为512字节,基于块的存储是最常见的存储方式,比如常见的硬盘.软盘和CD光盘等,都是存 ...

  9. 【存储】块存储、文件存储和对象存储的区别?

    目录 简单说明 详细解释 存储分类 01 块存储(提供虚拟磁盘) 02 文件存储 03 对象存储 04 三种存储的区别和对比 分布式块存储.文件存储.对象存储的区别 理解Ceph的三种存储接口:块设备 ...

最新文章

  1. iOS蓝牙4.0开发例子
  2. Silverlight 2 Beta 1, IE 8 Beta 1, ASP.NET MVC 预览版2 可以下载了 - 思归呓语 - 博客堂
  3. wcf高并发 mysql_使用nginx搭建高可用,高并发的wcf集群
  4. 安检X光机下的春运归家图 宛如一幅幅水彩画
  5. ios找不到信任证书_iOS 11 中可用的受信任根证书列表
  6. gc:C语言的垃圾回收库-英文
  7. 使用Kalibr进行IMU+相机的标定
  8. c#等待所有子线程执行完毕方法
  9. jQuery动画二级下拉菜单
  10. 将页面强制保持在所属框架中
  11. pytorch版crnn网络框架
  12. Centos7下WebLogic安装部署
  13. rar压缩包的打开密码破解
  14. 使用WebDriver 登录163邮箱
  15. Java后端工程师面试自我介绍
  16. 从零到一,美芽的技术实战
  17. vue怎么给pc端浏览器设置一个最小屏幕_图文讲解uni-app的PC宽屏适配方案
  18. zookeeper和kafka的SASL认证以及生产实践
  19. ScrollView的属性(纵向的用HorizontalScrollView)
  20. C++11标准模板(STL)- 算法(std::nth_element)

热门文章

  1. AIX的完整形式是什么?
  2. CSS中的border-radius属性
  3. 实验2 SQL Server 表操作
  4. 铃木uy125摩托车机油_济南铃木安徽发布国四新车—6480元瑞梦125、9380元UY125
  5. 递归-输出字符串所有的组合情况(代码、分析、汇编)
  6. 三角形描边css,[CSS] tips带有描边的小箭头
  7. linux信号学习02
  8. Socket网络编程--小小网盘程序(5)
  9. linux网络编程(二)TCP通讯状态
  10. GitHub常用命令及使用