6.5.1. OpenStack control plane performance report for 1000 nodes¶
| Abstract: | This document includes OpenStack control plane performance test results for 1000 compute nodes cluster. All tests have been performed regarding OpenStack control plane performance test plan | 
|---|
6.5.1.1. Environment description¶
Environment contains 4 types of servers:
- rally node
 - controller node
 - osd node
 - hypervisor
 - compute node
 
| Role | Servers count | Server Type | 
|---|---|---|
| rally | 1 | bare-metal | 
| controller | 3 | bare-metal | 
| osd | 20 | bare-metal | 
| compute | 1000 | virtual | 
6.5.1.1.1. Hardware configuration of each server¶
All bare-metal servers have the same configuration describing in table below
| server | vendor,model | HP,DL380 Gen9 | 
| CPU | vendor,model | Intel,E5-2680 v3 | 
| processor_count | 2 | |
| core_count | 12 | |
| frequency_MHz | 2500 | |
| RAM | vendor,model | HP,752369-081 | 
| amount_MB | 262144 | |
| NETWORK | interface_name | p1p1 | 
| vendor,model | Intel,X710 Dual Port | |
| bandwidth | 10G | |
| STORAGE | dev_name | /dev/sda | 
| vendor,model | raid10 - HP P840 
12 disks EH0600JEDHE 
 | 
|
| SSD/HDD | HDD | |
| size | 3,6TB | 
All virtual servers has the same configuration. QEMU-KVM used as hypervisor.
For datailed info about VM configuration look into sample
domain.xml.
6.5.1.1.2. Network configuration of each server¶
Lab network configuration you can find in scheme below:
Here is the part of switch configuration for each switch port which connected to p1p1 interface of a bare-metal server:
switchport mode trunk
switchport trunk native vlan 600
switchport trunk allowed vlan 600-602,630-649
spanning-tree port type edge trunk
spanning-tree bpduguard enable
no snmp trap link-status
6.5.1.1.3. Software configuration on servers with controller, osd and compute roles¶
| Role | Service name | 
|---|---|
| controller | horizon 
keystone 
nova-api 
nava-scheduler 
nova-cert 
nova-conductor 
nova-consoleauth 
nova-consoleproxy 
cinder-api 
cinder-backup 
cinder-scheduler 
cinder-volume 
glance-api 
glance-glare 
glance-registry 
neutron-dhcp-agent 
neutron-l3-agent 
neutron-metadata-agent 
neutron-openvswitch-agent 
neutron-server 
heat-api 
heat-api-cfn 
heat-api-cloudwatch 
ceph-mon 
rados-gw 
memcached 
rabbitmq_server 
mysqld 
galera 
corosync 
pacemaker 
haproxy 
 | 
| osd | ceph-osd 
 | 
| compute | nova-compute 
neutron-l3-agent 
neutron-metadata-agent 
neutron-openvswitch-agent 
 | 
| Software | Version | 
|---|---|
| OpenStack | Mitaka | 
| Ceph | Hammer | 
| Ubuntu | Ubuntu 14.04.3 LTS | 
You can find outputs of some commands and /etc folder in the following archives:
6.5.1.1.4. Software configuration on servers with rally role¶
On this server should be installed Rally. How to do it you can find in Rally installation documentation
| Software | Version | 
|---|---|
| Rally | 0.4.0 | 
| Ubuntu | Ubuntu 14.04.3 LTS | 
6.5.1.2. Testing process¶
| Name | Value | 
|---|---|
| Volume size to create in Cinder | 1GB | 
| Flavor to create VM from | m1.tiny | 
| Image name to create VM from | cirros | 
Create work directory on server with Rally role. In future we will call that directory as WORK_DIR
Create directory “plugins” in WORK_DIR and copy to that directory
nova_performance.pyplugin.Create directory “scenarios” in WORK_DIR and copy to that directory
boot_attach_live_migrate_and_delete_server_with_secgroups.json,create-and-delete-image.jsonandkeystone.jsonscenarios.Create deployment.json file in WORK_DIR and fill it with OpenStack environment info. It should looks like this:
{ "admin": { "password": "password", "tenant_name": "tenant", "username": "user" }, "auth_url": "http://1.2.3.4:5000/v2.0", "region_name": "RegionOne", "type": "ExistingCloud", "endpoint_type": "internal", "admin_port": 35357, "https_insecure": true }
Create job-params.yaml file in WORK_DIR and fill it with scenarios info. It should looks like this:
--- concurrency: 5 compute: 1000 gre_enabled: false http_server_with_glance_images: "1.2.3.4"
Perform tests:
rally --plugin-paths /home/rally/plugins task start \ keystone.json \ --task-args '{"gre_enabled": true, "compute": 375, "concurrency": 5}' \ --out=keystone.html rally --plugin-paths /home/rally/plugins task start \ boot_attach_live_migrate_and_delete_server_with_secgroups.json \ --task-args '{"gre_enabled": true, "compute": 375, "concurrency": 5}' \ --out=boot_attach_live_migrate_and_delete_server_with_secgroups.html rally --plugin-paths /home/rally/plugins task start \ create-and-delete-image.json \ --task-args '{"gre_enabled": true, "compute": 375, "concurrency": 5, "http_server_with_glance_images": "1.2.3.4"}' \ --out=create-and-delete-image.html
As a result of this part we got the following HTML file:
6.5.1.3. Test results¶
All values in tables below are in seconds.
6.5.1.3.1. Cinder¶
| Operation | Mean | 90%ile | 50%ile | Max | Min | 
|---|---|---|---|---|---|
| create_volume | 2.59589 | 2.72586 | 2.57214 | 3.05174 | 2.40753 | 
| delete_volume | 2.31282 | 2.42514 | 2.30285 | 2.77269 | 0.4474 | 
6.5.1.3.2. Glance¶
| Operation | Mean | 90%ile | 50%ile | Max | Min | 
|---|---|---|---|---|---|
| create_image | 44.797 | 59.5237 | 43.129 | 73.7454 | 26.3647 | 
| delete_image | 1.51749 | 1.98148 | 1.51694 | 2.93414 | 0.649655 | 
6.5.1.3.3. Keystone¶
| Operation | Mean | 90%ile | 50%ile | Max | Min | 
|---|---|---|---|---|---|
| keystone | 0.0772378 | 0.10375 | 0.071027 | 0.624643 | 0.0493538 | 
6.5.1.3.4. Neutron¶
| Operation | Mean | 90%ile | 50%ile | Max | Min | 
|---|---|---|---|---|---|
| create_20_rules | 4.45449 | 4.75529 | 4.4336 | 5.72318 | 3.71847 | 
| create_2_security_groups | 0.358809 | 0.405863 | 0.350541 | 1.10707 | 0.261818 | 
| delete_2_security_groups | 0.314609 | 0.397726 | 0.308533 | 0.602876 | 0.191209 | 
6.5.1.3.5. Nova¶
| Operation | Mean | 90%ile | 50%ile | Max | Min | 
|---|---|---|---|---|---|
| attach_volume | 2.77096 | 2.93019 | 2.753 | 3.5367 | 2.50419 | 
| boot_server | 13.1012 | 14.1159 | 12.9169 | 17.6851 | 11.2657 | 
| delete_server | 2.4879 | 2.62365 | 2.42707 | 4.98843 | 2.32484 | 
| detach_volume | 2.64998 | 2.80518 | 2.62848 | 3.30333 | 2.39798 | 
| find_host_to_migrate | 1.19893 | 1.36617 | 1.21302 | 1.77083 | 0.896176 | 
| live_migrate | 14.6121 | 15.3808 | 14.9722 | 26.7783 | 12.3919 | 
6.5.1.4. Issues which have been found during the tests¶
| Issue description | Root cause, Link | Link to bug | Is fixed | 
|---|---|---|---|
Live migration failure. 
Port range intersection. 
 | 
Qemu and nova use the same 
port range. 
 | 
Yes | 
Test result from run where bug mentioned above was not fixed: rally_report.html