安装

上传Cosbench-0.4.2.c3.zip到各个节点,执行解压到/home

修改配置文件

以下操作须在需要启动cosbench的各个节点操作。

  1. 进入到/home/cosbench-0.4.2.c3/conf目录

    image-20200414153035017

  2. 修改controller.conf

    在该文件中按以下格式增添需要添加的cosbench driver 信息。

    image-20200414103051258

  3. 修改driver.conf

    各个节点的driver.conf均按下图配置。

    image-20200414103236800

启动cosbench

  1. 启动driver

    以下操作须在需要启动cosbench的各个节点操作。

    1. 关闭 http_proxy代理

      unset http_proxy

    2. 关闭防火墙

      为保证后续任务正常执行,建议关闭各个节点的防火墙

      systemctl stop firewalld

    3. 启动driver

      操作目录: /home/cosbench-0.4.2.c3

      执行命令: bash start-driver.sh

      image-20200414103643694

      出现上图所示结果则表示driver启动成功。

  2. 启动controller

    启动contoller只需在上述配置过的节点中任选一个

    操作目录: /home/cosbench-0.4.2.c3

    执行命令: bash start-controller.sh

    image-20200414104033219

    出现上图所示结果则表示controller启动成功。

  3. 访问controller管理界面

    http://启动controller节点ip:19088/controller/index.html

    image-20200414104517216

    出现如图界面则表示cosbench启动成功。

    操作过程中若新添加过driver,需要重启controller,新添加的driver才可在列表中。

配置负载文件

cosbench负载任务的以xml文件的文件进行提交。

顺序写配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="UTF-8" ?>

<!-- name: 负载任务的名称
description: 对于负载任务的简单描述
-->
<workload name="s3-sample" description="sample benchmark for s3">

<!-- type: 指定访问的方式
condig: 访问对象存储的认证参数 格式: accesskey=用户ak;secretkey=ak对应的sk;endpoint=访问的存储REST地址
-->
<storage type="s3" config="accesskey=123456;secretkey=123456;endpoint=http://10.0.20.144:7480" />

<!-- workflow包含负载任务各个流程的子动作,可包含多个自动在,cosbench将按顺序执行 -->
<workflow>

<!-- name: 自定义的操作名称 -->
<workstage name="creatbutct">

<!-- 创建化桶操作:cprefix-桶名前缀;containers-需要生成的桶数量,可自行修改r(1,1)中的数字 -->
<work type="init" workers="1" config="cprefix=bucket12;containers=r(1,1)" />
</workstage>

<workstage name="putobject">
<!-- 上传对象操作:workers-并发数;runtime-任务执行时长;driver-指定driver执行任务,去掉该参数则所有driver平分任务负载 -->
<work name="putobject" workers="20" runtime="600" >
<!-- 操作任务描述:type-write上传对象操作,read为下载对象操作; ratio:单独下载或上传时,该参数值保持为100;cprefix:创建桶操作时指定的cprefix;containers:创建桶操作时指定的containers;oprefix-对象前缀;objects-被操作的对象的选择表达式 s(1, 10)表示任务会操作10个对象; sizes-对象的大小 c(1)GB表示固定1G大小 -->
<operation type="write" ratio="100" config="cprefix=bucket12;containers=r(1,1);oprefix=objects;objects=s(1,10);sizes=c(1)GB" />
</work>
</workstage>

</workflow>

</workload>

顺序读配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="UTF-8" ?>

<!-- name: 负载任务的名称
description: 对于负载任务的简单描述
-->
<workload name="s3-sample" description="sample benchmark for s3">

<!-- type: 指定访问的方式
condig: 访问对象存储的认证参数 格式: accesskey=用户ak;secretkey=ak对应的sk;endpoint=访问的存储REST地址
-->
<storage type="s3" config="accesskey=123456;secretkey=123456;endpoint=http://10.0.20.144:7480" />

<!-- workflow包含负载任务各个流程的子动作,可包含多个自动在,cosbench将按顺序执行 -->
<workflow>

<!-- name: 自定义的操作名称 -->
<workstage name="creatbutct">

<!-- 创建化桶操作:cprefix-桶名前缀;containers-需要生成的桶数量,可自行修改r(1,1)中的数字 -->
<work type="init" workers="1" config="cprefix=bucket12;containers=r(1,1)" />
</workstage>

<workstage name="prepare">
<work type="prepare" workers="10" config="cprefix=bucket12;containers=r(1,1);objects=r(1,10);sizes=c(1)KB" />
</workstage>

<workstage name="readobject">
<!-- 下载对象操作:workers-并发数;runtime-任务执行时长;driver-指定driver执行任务,去掉该参数则所有driver平分任务负载 -->
<work name="readobject" workers="20" runtime="600" >
<!-- 操作任务描述:type-write上传对象操作,read为下载对象操作; ratio:单独下载或上传时,该参数值保持为100;cprefix:创建桶操作时指定的cprefix;containers:创建桶操作时指定的containers;oprefix-对象前缀;objects-被操作的对象的选择表达式 s(1, 10)表示任务会操作10个对象; sizes-对象的大小 c(1)GB表示固定1G大小 -->
<operation type="read" ratio="100" config="cprefix=bucket12;containers=r(1,1);oprefix=objects-;objects=s(1,10);sizes=c(1)GB" />
</work>
</workstage>

</workflow>

</workload>

执行任务

  1. 访问controller管理界面

  2. 添加workload

    image-20200414140315998

    选择需要提交的负载文件,确认后点击submit提交任务。

    image-20200414143227774

  3. 查看任务执行情况

    点击上图中的 view detail查看详情

    image-20200414152910133

关闭cosbench

结束任务后需要在所有cosbench节点后台手动停止cosbench服务。

操作目录: /home/cosbench-0.4.2.c3

执行命令: bash stop-all.sh

若出现停止cosbench-controller失败,可查看controller进程号手动kill。