Open Source Object Storage for Unstructured Data: Ceph on HP ProLiant SL4540 Gen8 Servers

Table Of Contents
Reference Architecture | Product, solution, or service
Appendix H: Workload Tool Detail
Getput
Installing
Getput is written in python and is available as source from Getput on github.
Getput v0.0.7, which is the version available on github at the time of this writing, requires python-swiftclient v1.6.0 or later.
On Ubuntu 12.04, you should be able to use these instructions to install this package.
sudo apt-get install python-software-properties
sudo add-apt-repository-cloud-archive:havana
sudo apt-get update && apt-get install python-swiftclient
Alternatively, you can create /etc/apt/sources.list.d/cloudarchive-havana.list with these contents:
deb http://ubuntu-cloud.archive.canonical.com/ubuntu
precise-updates/havana main
deb-src http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/havana main
And then install the package using:
sudo apt-get update && apt-get install python-swiftclient
Running the test versus the Ceph cluster as configured required commenting out x-trans-id references for responses:
#transID = response['headers']['x-trans-id']
transID = ''
Test Parameters
Using version 1 authentication on the object gateway, we set up a resource file to define the environment variables for
access.
export ST_AUTH=http://<load balancer address>/auth/v1.0
export ST_USER=<main user name>:swift
export ST_KEY="<swift subuser secret key>"
Full utility parameter help is available through man pages and running with ‘--help’. For the test run, these parameters
were used:
-n <NOBJECTS>: container/object numbers as a value or range.
-o <ONAME>: object name prefix
-c <CNAME>: name of container
-t <TESTS>: tests to run, these can be gpd (GET, PUT, DELETE).
-s <SIZESET>: object size(s)
--procs=<PROCSET>: number of processes to run
Fio
Installing
Under Ubuntu, fio can be fetched as a standard package
sudo apt-get install fio
Test Parameters
--rw <IO Pattern>: Type of IO pattern for the test. Used read and write for sequential tests, randread, randwrite and
randrw for the various mix tests.
-ioengine=<IO execution method>: Defines how the job issues IO. The engine used was libaio, for Linux native
asynchronous IO.
--runtime=<maximum time to run test>: Terminates processing after specified time. 30 minutes was used.
--numjobs=<number of workload clones>: Defines processes/threads performing same workload of this job. Used
default of 1.
--direct=<Boolean>: Selects use/non-use of buffered IO. Direct was set to 1 (true).
--bs=<size of IO>: Block size for IO units. 8k was used for random, 256K for sequential IO.
--time_based: Force the test to run for full runtime even if there’s already complete coverage of the file.
--size=<total IO size of job>: fio runs to cover this size, but size of device and time limit were controlling factors for this
test.
51