
OS-Faults is no longer sync'd to Github openstack organization (as it is an unofficial project), the right stats are at opendev.org. Change-Id: I7b9a6118afbe5f845391e5339c8b8f63baa6861c
12 KiB
OpenStack testing tools
With the rapid expansion of OpenStack, a variety of tools have emerged for testing different aspects of OpenStack. However there is currently no unified solution that can test availability, reliability, performance, and scalability of OpenStack infrastructure.
The aim of this SIG is to create self-healing infrastructure, and in order to move in to that direction there is a need for an automated destructive/extreme testing framework for OpenStack infrastructure. As there have already been several projects tackling various parts of the challenge, one goal is to avoid duplication of effort and see how we can take advantage of these already developed tools and come up with a unified solution.
Here is list of tools and the testing features that are provided by those (as of August 2019):
|
Control plane testing |
Data plane testing |
Storage plane testing |
Performance testing |
Scalability testing |
Concurrency testing |
Disruptions/ Failure injection |
OpenStack Deployment |
Report generation |
Active community1 |
=================================== Rally (Uses Tempest) Yardstick Tempest Shaker OS-Faults KloudBuster HA-Failure-Test (Uses Tempest) Cloud99 Browbeat (Uses Rally and Shaker) Harbinger Enos (Uses Rally and Shaker) Chaostoolkit-openstack Jepsen (not specific to OpenStack) OPNFV-Doctor Stepler (Uses OS-faults) NFVbench VMTP Eris (In development) |
======= X X X X X X X X |
X X X X X X X X X X |
X X X X |
=========== X X X X X X X X X X |
=========== X X X X X X |
=========== X X X |
============ X X X X X X X X X |
========== X X X X X |
========== X X X X X X X X X X X |
============================================================================================================== Medium NA since May 2019 High Low NA since July 2019 NA since June 2019 NA since November 2016 NA since May 2017 High Low NA since May 2019 NA since April 2019 High NA since April 2019 NA since February 2019 Medium Low NA since November 2017 |
Rally
- Deployment of OpenStack
- Verification of deployment
- Benchmarking: Simulate real user load
- Profiler for scaling and performance issues
- Report generation: Processing and aggregation of results
De-facto control plane performance testing, allows to create different kind of tests including functional, concurrency, regression, load, scale capacity and chaos testing.
Yardstick
- Deployment
- Run compute, storage, network test scenarios using a runner
- Report generation with the following metrics:
- Performance/Speed
- Capacity/Scale
- Availability/Reliability
Inspired by Rally, was developed mainly from the prespective of VNF(Virtual Network Function), but is a generic framework for testing scenarios in OpenStack for performance, scalability and availability/reliability.
Tempest
- Integration testing for live OpenStack
- Test OpenStack publicly available API and scenarios that demonstrate a working cloud
- Load testing possible as well
Mainly used for integration testing but non-functional testing possible as well.
Shaker
- Deploy instances and network in different topologies or network configurations using Heat
- Run network related test scenarios
- Report generation
Network load generation, testing and benchmarking. Based on 'iperf(3)' and 'netperf' -> network testing topologies.
OS-Faults
- Library for initiating or terminating service/node/container/network as a way for introducing fault injections.
- Allows for both hardware and software level faults
Used by Rally to introduce faults.
KloudBuster
- Benchmarking of data plane and storage services in OpenStack
A fully integrated framework which is easy to use with basic knowledge of OpenStack.
HA-Failure-Test
- High Availability testing of OpenStack components
- Set of Tempest scripts to test HA of components in HA cluster.
- Stop service(s), perform sanity and verify
Cloud99
- Monintoring: Nodes and services
- Disruptions: in services, node, containers can be parallel, sequential or round robin
- Runner: Perform actual tests with disruptions
- All 3 runs as seperate threads and parallel
Makes use of Rally runner.
Browbeat
- Performance and scalability testing
- Create Rally work loads
- Run Shaker for network configuration, benchmarking and testing
- CI and deployment: Can be used for CI or deploying data analysis tools.
Harbinger
- Manager for data plane testing frameworks in OpenStack
- Can similtaneously execute multiple testing frameworks (Shaker, Yardstick)
Enos
- Deployment of OpenStack on VMs or bare metal
- Setup with different configurations
- Benchmarking:
- Rally scenario for control plane
- Shaker scenario of data plane
- Report generation: Get metrics/reports in Grafana
chaostoolkit-openstack
- Driver to perform set of actions and probes.
A minimal chaostoolkit driver for OpenStack compute resources.
Jepsen
- Introduction of disruptions/faults
- Testing
- Report generation
- Checkers for analyzing history
Not specific to OpenStack but general library for distributed systems, written in Clojure.
OPNFV Doctor
- Fault management and maintenance in VIM(Virtualized Infrastructure Manager) e.g OpenStack
- Fault monitoring (Hardware, Hypervisor, Host OS faults)
- Fault notification
- Failure recovery (Switch to STBY config.)
Stepler
- Destructive testing
- Test the availability of OpenStack cluster incase of node/service failure(s)
Make use of os-faults.
NFVbench
- Measure network performance in OpenStack
- Data plane performance testing
- Benchmarking NFVi platforms and packet paths that are critical for NFV workloads
Adjusted more for NFV workloads.
VMTP
- Benchmarking VM to VM data path performance measurement
- Latency measurement
- TCP/UDP throughput measurement
Similar to NFVbench but more adapted towards enterprise workloads.
Eris
- Control and data plane performance testing
- High Availability testing
- Scalability Testing
- Concurrency Testing
- Benchmarking and results generation
Commits per month: Low<5, Medium<15, High=>15, NA=No Activity↩︎