From cc964b8ac1545873e2c9e307ca04a1ac72438058 Mon Sep 17 00:00:00 2001 From: JingLu5 Date: Wed, 8 Mar 2017 08:10:01 +0000 Subject: 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 (cherry picked from commit be4fad1e486f6c4bf993335f0aecaa3682a37da8) --- ansible/roles/numa_pin_local_setup/tasks/main.yaml | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 ansible/roles/numa_pin_local_setup/tasks/main.yaml (limited to 'ansible/roles/numa_pin_local_setup/tasks/main.yaml') 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 -- cgit 1.2.3-korg