From fd0a88140f7114ef90fabdfb5436cff42ec0cd2c Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Mon, 17 Apr 2017 15:49:17 +0000 Subject: Test Case: OPNFV_YARDSTICK_TC023: VM availability during live migration JIRA: YARDSTICK-174 This live migration test case is based on share storage, default share storage is enabled. This test case will do some config work. And do live migration and calculate the migration time and downtime. Change-Id: I6601601edebdd0ac6434ba632b1eba9e9bd4fda0 Signed-off-by: chenjiankun --- ansible/inventory.ini | 5 ++- ansible/migrate_pinning_setup.yaml | 49 ++++++++++++++++++++++ ansible/migrate_pinning_teardown.yaml | 31 ++++++++++++++ ansible/roles/backup_nova_conf/tasks/main.yaml | 18 ++++++++ ansible/roles/create_flavor/tasks/main.yaml | 16 +++++++ ansible/roles/delete_flavor/tasks/main.yaml | 13 ++++++ ansible/roles/recover_nova_conf/tasks/main.yaml | 18 ++++++++ ansible/roles/restart_nova_service/tasks/main.yaml | 23 ++++++++++ ansible/roles/set_flavor_property/tasks/main.yaml | 14 +++++++ ansible/roles/set_nova_conf/tasks/main.yaml | 17 ++++++++ 10 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 ansible/migrate_pinning_setup.yaml create mode 100644 ansible/migrate_pinning_teardown.yaml create mode 100644 ansible/roles/backup_nova_conf/tasks/main.yaml create mode 100644 ansible/roles/create_flavor/tasks/main.yaml create mode 100644 ansible/roles/delete_flavor/tasks/main.yaml create mode 100644 ansible/roles/recover_nova_conf/tasks/main.yaml create mode 100644 ansible/roles/restart_nova_service/tasks/main.yaml create mode 100644 ansible/roles/set_flavor_property/tasks/main.yaml create mode 100644 ansible/roles/set_nova_conf/tasks/main.yaml (limited to 'ansible') diff --git a/ansible/inventory.ini b/ansible/inventory.ini index 440e625bd..79a6ee0aa 100644 --- a/ansible/inventory.ini +++ b/ansible/inventory.ini @@ -1,8 +1,11 @@ [controller] host1 ansible_host=10.1.0.50 ansible_user=root ansible_ssh_pass=root host2 ansible_host=10.1.0.51 ansible_user=root ansible_ssh_pass=root -host3 ansible_host=10.1.0.52 ansible_user=root ansible_ssh_pass=root [compute] host4 ansible_host=10.1.0.53 ansible_user=root ansible_ssh_pass=root host5 ansible_host=10.1.0.54 ansible_user=root ansible_ssh_pass=root + +[nodes:children] +controller +compute diff --git a/ansible/migrate_pinning_setup.yaml b/ansible/migrate_pinning_setup.yaml new file mode 100644 index 000000000..ee5eef3ff --- /dev/null +++ b/ansible/migrate_pinning_setup.yaml @@ -0,0 +1,49 @@ +--- +############################################################################## +# 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: + - create_flavor + - role: set_flavor_property + key: "hw:cpu_policy" + value: "dedicated" + - role: set_flavor_property + key: "hw:numa_nodes" + value: "1" + +- hosts: nodes + roles: + - backup_nova_conf + - role: set_nova_conf + section: "DEFAULT" + key: "live_migration_flag" + value: "VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_TUNNELLED" + - role: set_nova_conf + section: "DEFAULT" + key: "vncserver_listen" + value: "0.0.0.0" + +- hosts: controller + roles: + - role: set_nova_conf + section: "DEFAULT" + key: "scheduler_default_filters" + value: "NUMATopologyFilter" + - role: restart_nova_service + service: "nova-scheduler" + +- hosts: compute + roles: + - role: set_nova_conf + section: "DEFAULT" + key: "vcpu_pin_set" + value: "{{ cpu_set }}" + - role: restart_nova_service + service: "nova-compute" diff --git a/ansible/migrate_pinning_teardown.yaml b/ansible/migrate_pinning_teardown.yaml new file mode 100644 index 000000000..13dd6113c --- /dev/null +++ b/ansible/migrate_pinning_teardown.yaml @@ -0,0 +1,31 @@ +--- +############################################################################## +# 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: + - delete_flavor + +- hosts: nodes + roles: + - recover_nova_conf + +- hosts: controller + roles: + - role: restart_nova_service + service: "nova-scheduler" + - role: restart_nova_service + service: "nova-api" + - role: restart_nova_service + service: "nova-conductor" + +- hosts: compute + roles: + - role: restart_nova_service + service: "nova-compute" diff --git a/ansible/roles/backup_nova_conf/tasks/main.yaml b/ansible/roles/backup_nova_conf/tasks/main.yaml new file mode 100644 index 000000000..ca95bac59 --- /dev/null +++ b/ansible/roles/backup_nova_conf/tasks/main.yaml @@ -0,0 +1,18 @@ +--- +############################################################################## +# 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: backup nova.conf file + copy: + src: /etc/nova/nova.conf + dest: /tmp/nova.conf + owner: nova + group: nova + remote_src: True + become: true diff --git a/ansible/roles/create_flavor/tasks/main.yaml b/ansible/roles/create_flavor/tasks/main.yaml new file mode 100644 index 000000000..9b776c694 --- /dev/null +++ b/ansible/roles/create_flavor/tasks/main.yaml @@ -0,0 +1,16 @@ +############################################################################## +# 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: create flavor {{ flavor }} + os_nova_flavor: + cloud: opnfv + state: present + name: "{{ flavor }}" + ram: "{{ ram }}" + vcpus: "{{ vcpus }}" + disk: "{{ disk }}" diff --git a/ansible/roles/delete_flavor/tasks/main.yaml b/ansible/roles/delete_flavor/tasks/main.yaml new file mode 100644 index 000000000..dc9fc88ce --- /dev/null +++ b/ansible/roles/delete_flavor/tasks/main.yaml @@ -0,0 +1,13 @@ +############################################################################## +# 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: delete flavor {{ flavor }} + os_nova_flavor: + cloud: opnfv + state: absent + name: "{{ flavor }}" diff --git a/ansible/roles/recover_nova_conf/tasks/main.yaml b/ansible/roles/recover_nova_conf/tasks/main.yaml new file mode 100644 index 000000000..44919d2ae --- /dev/null +++ b/ansible/roles/recover_nova_conf/tasks/main.yaml @@ -0,0 +1,18 @@ +--- +############################################################################## +# 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: recover nova.conf file + copy: + src: /tmp/nova.conf + dest: /etc/nova/nova.conf + owner: nova + group: nova + remote_src: True + become: true diff --git a/ansible/roles/restart_nova_service/tasks/main.yaml b/ansible/roles/restart_nova_service/tasks/main.yaml new file mode 100644 index 000000000..2bdce652d --- /dev/null +++ b/ansible/roles/restart_nova_service/tasks/main.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 +############################################################################## + +- name: restart "{{ service }}" service + service: + name: "{{ service }}" + state: restarted + become: true + when: ansible_os_family == "Debian" + +- name: restart "openstack-{{ service }}" service + service: + name: "openstack-{{ service }}" + state: restarted + become: true + when: ansible_os_family == "RedHat" diff --git a/ansible/roles/set_flavor_property/tasks/main.yaml b/ansible/roles/set_flavor_property/tasks/main.yaml new file mode 100644 index 000000000..f98988783 --- /dev/null +++ b/ansible/roles/set_flavor_property/tasks/main.yaml @@ -0,0 +1,14 @@ +############################################################################## +# 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: set flavor "{{ flavor }}" property {{ key }} = {{ value }} + shell: + source /etc/yardstick/openstack.creds; + openstack flavor set --property {{ key }}={{ value }} {{ flavor }}; + args: + executable: /bin/bash diff --git a/ansible/roles/set_nova_conf/tasks/main.yaml b/ansible/roles/set_nova_conf/tasks/main.yaml new file mode 100644 index 000000000..ae665c5d0 --- /dev/null +++ b/ansible/roles/set_nova_conf/tasks/main.yaml @@ -0,0 +1,17 @@ +--- +############################################################################## +# 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: set "{{ key }}" value + ini_file: + dest: /etc/nova/nova.conf + section: "{{ section }}" + option: "{{ key }}" + value: "{{ value }}" + become: true -- cgit 1.2.3-korg