diff options
author | Jing Lu <lvjing5@huawei.com> | 2017-03-20 09:33:32 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-03-20 09:33:32 +0000 |
commit | 6f541e757283b528d8736e314b2490f28d3c2563 (patch) | |
tree | 80799244b8faeb972e003190af50aa13c0d05f1c | |
parent | 0f52f6de93cda522d1e78fb7d71dcc08c59ce64b (diff) | |
parent | be4fad1e486f6c4bf993335f0aecaa3682a37da8 (diff) |
Merge "Add NUMA pinning support for node context"
-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 |