diff options
author | JingLu5 <lvjing5@huawei.com> | 2017-03-08 08:10:01 +0000 |
---|---|---|
committer | Jing Lu <lvjing5@huawei.com> | 2017-03-20 09:33:46 +0000 |
commit | cc964b8ac1545873e2c9e307ca04a1ac72438058 (patch) | |
tree | 1235ec1d154f5244cd737d80e2ed8a08f127c842 /ansible | |
parent | 0e57aadfce643a23c7efe65739f400de859840cd (diff) |
Add NUMA pinning support for node context
JIRA: YARDSTICK-574
Since the yardstick framework now has supported an improved node type context,
this patch adds support for VM NUMA pinning ability in the node type context.
It provides several scripts that can be used to configurate the controller and
compute nodes
Change-Id: If5eafdca6df1b1196bc17bfdd12aea9f4016752f
Signed-off-by: JingLu5 <lvjing5@huawei.com>
(cherry picked from commit be4fad1e486f6c4bf993335f0aecaa3682a37da8)
Diffstat (limited to 'ansible')
-rw-r--r-- | ansible/numa_pin_setup.yaml | 23 | ||||
-rw-r--r-- | ansible/numa_pin_teardown.yaml | 23 | ||||
-rw-r--r-- | ansible/roles/numa_pin_local_setup/tasks/main.yaml | 64 | ||||
-rw-r--r-- | ansible/roles/numa_pin_local_teardown/tasks/main.yaml | 50 |
4 files changed, 160 insertions, 0 deletions
diff --git a/ansible/numa_pin_setup.yaml b/ansible/numa_pin_setup.yaml new file mode 100644 index 000000000..7dbcf5147 --- /dev/null +++ b/ansible/numa_pin_setup.yaml @@ -0,0 +1,23 @@ +--- +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- hosts: localhost + roles: + - numa_pin_local_setup + +- hosts: controller + roles: + - scheduler_default_filters_setup + - restart_nova_scheduler + +- hosts: compute + roles: + - vcpu_pin_set_setup + - restart_nova_compute diff --git a/ansible/numa_pin_teardown.yaml b/ansible/numa_pin_teardown.yaml new file mode 100644 index 000000000..c880551f1 --- /dev/null +++ b/ansible/numa_pin_teardown.yaml @@ -0,0 +1,23 @@ +--- +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- hosts: compute + roles: + - vcpu_pin_set_reset + - restart_nova_compute + +- hosts: controller + roles: + - scheduler_default_filters_reset + - restart_nova_scheduler + +- hosts: localhost + roles: + - numa_pin_local_teardown diff --git a/ansible/roles/numa_pin_local_setup/tasks/main.yaml b/ansible/roles/numa_pin_local_setup/tasks/main.yaml new file mode 100644 index 000000000..7faaf992c --- /dev/null +++ b/ansible/roles/numa_pin_local_setup/tasks/main.yaml @@ -0,0 +1,64 @@ +--- +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- name: get nova-compute host + shell: + source /etc/yardstick/openstack.creds; + openstack availability zone list --long | grep nova-compute | sort | awk '{print $7}'; + args: + executable: /bin/bash + register: compute_nodes + +- name: get existing flavor list + shell: + source /etc/yardstick/openstack.creds; + openstack flavor list | grep "True" | cut -f 2 -d ' '; + args: + executable: /bin/bash + register: flavors + +- name: create pinned-cpu and regular host aggregate + shell: + source /etc/yardstick/openstack.creds; + openstack aggregate create pinned-cpu; + openstack aggregate create regular; + nova aggregate-set-metadata pinned-cpu pinned=true; + nova aggregate-set-metadata regular pinned=false; + nova aggregate-add-host pinned-cpu {{ compute_nodes.stdout_lines[0] }}; + nova aggregate-add-host regular {{ compute_nodes.stdout_lines[1] }}; + args: + executable: /bin/bash + +- name: set flavor default property + shell: + source /etc/yardstick/openstack.creds; + openstack flavor set --property aggregate_instance_extra_specs:pinned=false {{item}}; + args: + executable: /bin/bash + with_items: + - '{{ flavors.stdout_lines }}' + +- name: create flavor yardstick-pinned-flavor + os_nova_flavor: + cloud: opnfv + state: present + name: yardstick-pinned-flavor + ram: 512 + vcpus: 3 + disk: 3 + +- name: set yardstick-pinned-flavor property + shell: + source /etc/yardstick/openstack.creds; + openstack flavor set --property hw:cpu_policy=dedicated yardstick-pinned-flavor; + openstack flavor set --property hw:numa_nodes=1 yardstick-pinned-flavor + openstack flavor set --property aggregate_instance_extra_specs:pinned=true yardstick-pinned-flavor; + args: + executable: /bin/bash diff --git a/ansible/roles/numa_pin_local_teardown/tasks/main.yaml b/ansible/roles/numa_pin_local_teardown/tasks/main.yaml new file mode 100644 index 000000000..29475421d --- /dev/null +++ b/ansible/roles/numa_pin_local_teardown/tasks/main.yaml @@ -0,0 +1,50 @@ +--- +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- name: get nova-compute host + shell: + source /etc/yardstick/openstack.creds; + openstack availability zone list --long | grep nova-compute | sort | awk '{print $7}'; + args: + executable: /bin/bash + register: compute_nodes + +- name: delete flavor yardstick-pinned-flavor + os_nova_flavor: + cloud: opnfv + state: absent + name: yardstick-pinned-flavor + +- name: get flavor list + shell: + source /etc/yardstick/openstack.creds; + openstack flavor list | grep "True" | cut -f 2 -d ' '; + args: + executable: /bin/bash + register: flavors + +- name: unset flavor default property + shell: + source /etc/yardstick/openstack.creds; + openstack flavor unset --property aggregate_instance_extra_specs:pinned {{item}}; + args: + executable: /bin/bash + with_items: + - '{{ flavors.stdout_lines }}' + +- name: delete pinned-cpu and regular host aggregate + shell: + source /etc/yardstick/openstack.creds; + nova aggregate-remove-host pinned-cpu {{ compute_nodes.stdout_lines[0] }}; + nova aggregate-remove-host regular {{ compute_nodes.stdout_lines[1] }}; + openstack aggregate delete pinned-cpu; + openstack aggregate delete regular; + args: + executable: /bin/bash |