Qing Wu Wang 461788fdf9 Enable higher performance I/O through
In Ubuntu 16.04 the updated kernel that is shipped has conntrack support.
The inclusion of conntrack led to a new firewall driver that removed the
need for hybrid vif plugging. Hybrid vif plugging allowed security groups
to operate properly, but led to significant performance degradation's
when paired with OVS.

Since the inclusion of OVS for the PowerVM driver occurred during the
OpenStack Newton release, it aligned well with the Ubuntu 16.04 release.
As such, the PowerVM driver team did not enable hybrid vif plugging, but
instead focused on standard plugging.

This change set allows an option to turn off the hybrid vif plugging
(for all architectures), but will automatically detect it for PowerVM
and turn it off.  This will enable deployments on newer operating systems
to have higher network I/O performance.

Change-Id: I0801b0d6925a0d3c0ae9b14d38310d5906355b98
Partially-Implements: blueprint powervm-virt-driver
2016-07-20 14:59:44 -04:00

112 lines
2.8 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Gather variables for each operating system
include_vars: "{{ item }}"
with_first_found:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
- "{{ ansible_distribution | lower }}.yml"
- "{{ ansible_os_family | lower }}.yml"
tags:
- always
- name: Check init system
command: cat /proc/1/comm
register: _pid1_name
tags:
- always
- name: Set the name of pid1
set_fact:
pid1_name: "{{ _pid1_name.stdout }}"
tags:
- always
- name: Get CPU info content and store as var
shell: cat /proc/cpuinfo
register: cpuinfo_contents
changed_when: false
failed_when: false
tags:
- always
- name: Set neutron target platform type
set_fact:
neutron_os_type: "powervm"
when:
- cpuinfo_contents.stdout.find('pSeries') != -1
- ansible_architecture == 'ppc64le'
tags:
- always
- include: neutron_ml2_ovs_powervm.yml
when:
- neutron_os_type is defined
- neutron_os_type == 'powervm'
- neutron_plugin_type == 'ml2.ovs'
- "{{ ansible_distribution_version | version_compare('16.04','>=') }}"
tags:
- neutron-config
- include: neutron_check.yml
tags:
- always
- include: neutron_pre_install.yml
tags:
- neutron-install
- include: neutron_install.yml
tags:
- neutron-install
- include: neutron_post_install.yml
tags:
- neutron-install
- neutron-config
# neutron system services
- include: neutron_init.yml
tags:
- neutron-install
- include: neutron_lbaas.yml
tags:
- neutron-install
- include: neutron_db_setup.yml
when:
- neutron_services['neutron-server']['group'] in group_names
- inventory_hostname == groups[neutron_services['neutron-server']['group']][0]
tags:
- neutron-install
- include: neutron_service_setup.yml
when:
- "'neutron_all' in group_names"
- inventory_hostname == groups['neutron_all'][0]
tags:
- neutron-install
- include: neutron_l3_ha.yml
when:
- neutron_services['neutron-l3-agent']['group'] in group_names
- neutron_legacy_ha_tool_enabled | bool
- name: Flush handlers
meta: flush_handlers