Configure qemu group setting as hugetlbfs for ovs-dpdk

Till now, the ovs service file and ovs-ctl command files
are patched to allow ovs to run with qemu group. In order
to remove this workarounds, a new group hugetlbfs is created
which will be shared between ovs and qemu. This patch contains
the changes required for applying these changes.

Vhostuser Socket Directory is changed from
"/var/run/openvswitch" to "/var/lib/vhost_sockets" to avoid
modifying the directory access by packaged scripts.

Depends-On: I5fc2f852c66c2b825af96aba2657d0f9085dc8c3
Patch-url: https://review.openstack.org/#/c/547961/

Change-Id: Id727a514610816c8223aa0dcd49a70caec29a21d
This commit is contained in:
Janki Chhatbar 2018-01-05 12:35:52 +05:30
parent c931009702
commit 825bd7d9e1
4 changed files with 43 additions and 8 deletions

View File

@ -11,5 +11,6 @@
# updates and upgrades.
parameter_defaults:
NeutronVhostuserSocketGroup: "hugetlbfs"
ComputeOvsDpdkParameters:
VhostuserSocketGroup: "hugetlbfs"

View File

@ -45,7 +45,7 @@ parameters:
type: string
tags:
- role_specific
NeutronVhostuserSocketGroup:
VhostuserSocketGroup:
default: "qemu"
description: >
The vhost-user socket directory group name.
@ -54,7 +54,7 @@ parameters:
type: string
tags:
- role_specific
NeutronVhostuserSocketUser:
VhostuserSocketUser:
default: "qemu"
description: >
The vhost-user socket directory user name.
@ -87,14 +87,14 @@ resources:
- map_replace:
- neutron::agents::ml2::ovs::datapath_type: NeutronDatapathType
neutron::agents::ml2::ovs::vhostuser_socket_dir: NeutronVhostuserSocketDir
vhostuser_socket_group: NeutronVhostuserSocketGroup
vhostuser_socket_user: NeutronVhostuserSocketUser
vhostuser_socket_group: VhostuserSocketGroup
vhostuser_socket_user: VhostuserSocketUser
- values: {get_param: [RoleParameters]}
- values:
NeutronDatapathType: {get_param: NeutronDatapathType}
NeutronVhostuserSocketDir: {get_param: NeutronVhostuserSocketDir}
NeutronVhostuserSocketGroup: {get_param: NeutronVhostuserSocketGroup}
NeutronVhostuserSocketUser: {get_param: NeutronVhostuserSocketUser}
VhostuserSocketGroup: {get_param: VhostuserSocketGroup}
VhostuserSocketUser: {get_param: VhostuserSocketUser}
Ovs:
type: ./openvswitch.yaml

View File

@ -62,7 +62,7 @@ parameters:
VhostuserSocketDir:
description: Specify the directory to use for vhostuser sockets
type: string
default: "/var/run/openvswitch"
default: "/var/lib/vhost_sockets"
tags:
- role_specific
EndpointMap:
@ -114,6 +114,24 @@ parameters:
- allowed_values:
- 1
- 2
VhostuserSocketGroup:
default: "qemu"
description: >
The vhost-user socket directory group name.
Defaults to 'qemu'. When vhostuser mode is 'dpdkvhostuserclient'
(which is the default mode), the vhost socket is created by qemu.
type: string
tags:
- role_specific
VhostuserSocketUser:
default: "qemu"
description: >
The vhost-user socket directory user name.
Defaults to 'qemu'. When vhostuser mode is 'dpdkvhostuserclient'
(which is the default mode), the vhost socket is created by qemu.
type: string
tags:
- role_specific
parameter_groups:
- label: deprecated
@ -162,6 +180,8 @@ resources:
neutron::plugins::ovs::opendaylight::provider_mappings: OpenDaylightProviderMappings
neutron::plugins::ovs::opendaylight::enable_hw_offload: OvsHwOffload
vswitch::ovs::enable_hw_offload: OvsHwOffload
tripleo::profile::base::neutron::plugins::ovs::opendaylight::vhostuser_socket_group: VhostuserSocketGroup
tripleo::profile::base::neutron::plugins::ovs::opendaylight::vhostuser_socket_user: VhostuserSocketUser
- values: {get_param: [RoleParameters]}
- values:
HostAllowedNetworkTypes: {get_param: HostAllowedNetworkTypes}
@ -170,6 +190,8 @@ resources:
OvsVhostuserMode: {get_param: OvsVhostuserMode}
OpenDaylightProviderMappings: {get_param: OpenDaylightProviderMappings}
OvsHwOffload: {get_param: OvsHwOffload}
VhostuserSocketGroup: {get_param: VhostuserSocketGroup}
VhostuserSocketUser: {get_param: VhostuserSocketUser}
outputs:
role_data:
@ -222,6 +244,9 @@ outputs:
- {}
- get_attr: [Ovs, role_data, config_settings]
- get_attr: [RoleParametersValue, value]
service_config_settings:
nova_libvirt:
nova::compute::libvirt::qemu::group: {get_attr: [RoleParametersValue, value, 'tripleo::profile::base::neutron::plugins::ovs::opendaylight::vhostuser_socket_group']}
step_config: |
include tripleo::profile::base::neutron::plugins::ovs::opendaylight
upgrade_tasks:

View File

@ -0,0 +1,9 @@
---
features:
- Till now, the ovs service file and ovs-ctl command files are patched
to allow ovs to run with qemu group. In order to remove this
workarounds, a new group hugetlbfs is created which will be shared
between ovs and qemu. Vhostuser Socket Directory is changed from
"/var/run/openvswitch" to "/var/lib/vhost_sockets" to avoid modifying
the directory access by packaged scripts. Use env file
ovs-dpdk-permissions.yaml while deploying.