The purpose of StorPerf is to provide a tool to measure block and object storage performance in an NFVI. When complemented with a characterization of typical VF storage performance requirements, it can provide pass/fail thresholds for test, staging, and production NFVI environments.
The benchmarks developed for block and object storage will be sufficiently varied to provide a good preview of expected storage performance behavior for any type of VNF workload. The elements of the project include:
Some of these are expanded further below.
Project: Storage Performance Benchmarking for NFVI (storperf) Project Creation Date: 2015-09-15 Project Category: Integration and Testing Lifecycle State: Incubation Primary Contact: email@example.com Project Lead: firstname.lastname@example.org Jira Project Name: Storage Performance Benchmarking for NFVI Jira Project Prefix: STORPERF Mailing list tag [storperf] Repository: storperf Committers: email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org Link to TSC approval of the project: http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-09-15-13.59.log.html Link to approval of additional committers: http://lists.opnfv.org/pipermail/opnfv-tech-discuss/2015-December/007109.html https://lists.opnfv.org/pipermail/opnfv-tsc/2017-April/003419.html Link to approval of inactive committers: https://lists.opnfv.org/pipermail/opnfv-tsc/2017-August/003680.html
StorPerf testing addresses both block storage and object stores, though using different test suites. There is limited value in testing locally attached storage, so this is primarily about testing distributed/external storage environments.
StorPerf is intended to run standalone test benchmark tools, plus provide integration with test frameworks such as Qtip and Yardstick.
There are three applicable use cases for these storage performance benchmarks:
The high level plan for StorPerf is to deliver (minimally) test requirements and test process specifications in the Brahmaputra release timeframe. Block performance testing will lead object testing, and could also be delivered in Brahmaputra, though any such delivery would be asynchronous to, and largely independent of, the Brahmaputra release mechanism. In the C release, we will complete object store testing and integration with Qtip and Yardstick.
Project Planning: TBD
This is an outline of test cases. A specification will be written capturing actual tests and steps. And of course, the input to the test process will be determined by community participation.
Assuming iSCSI-attached storage, though local direct attached storage, or Fibre Channel-attached storage could also be tested.
Assuming an HTTP-based API, such as Swift for accessing object storage.
Especially looking for workload recommendations for testing in this area.
Initially, metrics will be for reporting only and there will not by any pass/fail criteria. In a future iteration, we may add pass/fail criteria for use cases which are testing viability for known workload requirements.
The mainstays for measuring performance in block storage are fairly well established in the storage community, with the minimum being IOPS and Latency. These will be produced in report/tabular format capturing each test combination for:
Object storage delivers different storage characteristics than block storage, and so the metrics used to charaterize it vary to some degree:
See also future extensions below.
These are 2nd+ release ideas for extending StorPerf.