I recently needed to test the rgw of CEpH in my work, so I learned while testing.
First, the tool uses Intel's open-source tool cosbench, which is also the industry's mainstream object storage testing tool.
1. cosbench installation and startup
Download the latest cosbench package
Wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip
Extract
Unzip 0.4.2.c4.zip
Install related Toolkit
Yum install java-1.7.0-openjdk NMAP-ncat
Add execution permission to all sh scripts
Chmod + x *. Sh
Cancel HTTP Proxy
Unset http_proxy
For the controller node, execute the start-all.sh
For a driver node, execute the start-driver.sh
In my environment, there is one controller + three drivers. The controller and one of the drivers share one node.
Modify CONF/controller. conf
Modify CONF/driver. conf for each node
Controller executes start-all.sh
Driver node executes start-driver.sh
Http: // controllerip: 19088/controller/
Log onto the Controller web page
All three Driver nodes are OK.
2. There are various configuration files in the conf directory.
3. CEpH OSS supports S3 and swift interfaces. This article first discusses S3
Test S3, which can be modified according to the 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 = secret; secretkey = 72b3205f558c475daac7b3bc756a63bc; endpoint = http: // rgwip: 8080"/>
----- The authentication information accesskey secretkey endpoiont is obtained from your CEpH Environment
<Workflow>
<workstage name="init"> <work type="init" workers="1" config="cprefix=s3testqwer;containers=r(1,32)" /></workstage>
---- In the init stage, the primary task is to create a bucket. The above configuration is to create 32 buckets prefixed with s3testqwer.
<Workstage name = "prepare">
<Work type = "prepare" workers = "1" Config = "cprefix = s3testqwer; containers = R (1,100); objects = R (); sizes = C (64) KB "/>
</Workstage>
---- In the prepare stage, the main task is to create the objects in the bucket. In the above example, 100 64 K objects are created in each bucket, and the 64 K value range is configurable. A database is created in advance for the following read tests.
<Workstage name = "Main">
<Work name = "Main" workers = "8" RunTime = "300">
<Operation type = "read" ratio = "100" Config = "cprefix = s3testqwer; containers = U (1,100); objects = U ()"/>
<Operation type = "write" ratio = "0" Config = "cprefix = s3testqwer; containers = U (1,100); objects = U (); sizes = C (64) KB "/>
</Work>
</Workstage>
---- Main: execution stage. ratio indicates the execution percentage, workers indicates the number of concurrent jobs, and runtime indicates the execution time.
<Workstage name = "Cleanup">
<Work type = "Cleanup" workers = "1" Config = "cprefix = s3testqwer; containers = R (1,100); objects = R ()"/>
</Workstage>
---- Cleanup: clears objects.
<Workstage name = "dispose">
<Work type = "dispose" workers = "1" Config = "cprefix = s3testqwer; containers = r (1, 32)"/>
</Workstage>
----- Dispose: Clear the bucket
</Workflow>
</Workload>
The work in the same workstage is executed concurrently. For example, if you have multiple drivers, multiple drivers will be allocated for execution. The worker in each work stage is concurrent, worker is also loaded to multiple drivers, and multiple workstages are executed sequentially.
Import the prepared workstage script
Then submit
Run init-prepare-Main-cleanup-dispose in sequence.
Execution result
Description of each category in:
Op-type-Operation Type
Op-count-Total number of operations
Byte-count-byte total
AVG-restime-response time, which is the sum of data transmission time and processing time
AVG-procetime-read/write operation time
Throughput-throughput, number of operations per second
Bandwidth-bandwidth
Succ-ratio-operation success rate
The icon shows that the overall data fluctuation is still stable.
33 errors
You can find the error log in the log directory of cosbench.
View the corresponding mission log
This is a Java startup error: https://www.cnblogs.com/bodhitree/p/6140469.html
1. stop-all.sh to stop the cosbench process (controller, drivers)
2. Edit the cosbench-start.sh file, find the Java startup command line parameter, and add "-DCOM. amazonaws. Services. s3.disablegetobjectmd5validation = true" to disable MD5 verification for S3
3. start-all.sh startup
Run workload again after modification. No error is reported. You can adjust the script according to your own configuration. For example, if you only want to test write and keep data, you can skip cleanup and dispose. Of course, you can also customize work.
Play with CEpH Performance Test-Object Storage Service (I)