Post setting Mellanox interfaces

1. Moving IB iser child to persistent configurations.
2. Resetting VFs num in non controller nodes.

Change-Id: I00cd3038aaeade99047983513b7e1c8f886f38e7
This commit is contained in:
Aviram Bar-Haim 2016-03-06 21:09:59 +02:00
parent 3a55ff4cd6
commit 517345f0db
5 changed files with 63 additions and 47 deletions

View File

@ -84,9 +84,10 @@ readonly DRIVER=`get_mlnx_param driver`
readonly SRIOV=`get_mlnx_param sriov`
readonly USER_NUM_OF_VFS=`get_mlnx_param num_of_vfs`
readonly ISER=`get_mlnx_param iser`
readonly MAX_VFS=128
readonly MAX_VFS=62
readonly MIN_VFS=1
readonly VXLAN_OFFLOADING=`get_mlnx_param vxlan_offloading`
readonly ROLE=`get_param roles`
readonly ROLES=`get_param roles`
readonly ROLE=`get_param role`
readonly DEBUG=`get_param debug`
readonly QOS=`get_mlnx_param mlnx_qos`

View File

@ -1,5 +1,5 @@
#!/bin/bash
# Copyright 2015 Mellanox Technologies, Ltd
# Copyright 2016 Mellanox Technologies, Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -26,6 +26,15 @@ if [ $DISTRO == 'ubuntu' ] && [ $DRIVER == 'eth_ipoib' ]; then
cat /etc/network/interfaces.d/ifcfg-ib* >> /etc/network/interfaces
\rm -f /etc/network/interfaces.d/ifcfg-ib0*
fi
fi
# Set correct VF number in multi role computes
# (e.g. cinder & compute)
if ([[ $ROLES == *compute* ]] && [[ ! $ROLES == "compute" ]]) \
&& [ $SRIOV == true ] ; then
# Update VFs
./sriov.sh configure
# Kill tgt daemons if exists
tgt_locks=`find /var/run/ -name tgtd* | wc -l`
@ -36,11 +45,11 @@ if [ $DISTRO == 'ubuntu' ] && [ $DRIVER == 'eth_ipoib' ]; then
service openibd restart && service openvswitch-switch restart
if [[ $ROLE == *compute* ]] && [ -f /etc/init.d/nova-compute ]; then
service nova-compute restart
fi
if [ $tgt_locks -ne 0 ];then
service tgt start
fi
# Verify VFs
./sriov.sh validate
fi

View File

@ -7,8 +7,8 @@ class mellanox_openstack::configure_iser_child (
ipaddr => none,
method => static
} ~>
exec { 'refresh-iser-parent':
command => "/sbin/ifdown $iser_parent ; /sbin/ifup $iser_parent",
exec { 'flush-iser-parent':
command => "/sbin/ip addr flush dev $iser_parent",
refreshonly => true,
} ->
l23_stored_config { $iser_child:

View File

@ -1,5 +1,5 @@
#!/bin/bash -x
# Copyright 2015 Mellanox Technologies, Ltd
# Copyright 2016 Mellanox Technologies, Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -54,19 +54,25 @@ function calculate_total_vfs () {
fi
num_of_vfs=0
# SR-IOV is enabled, the given number of VFs is used
# iSER is also enabled, the iSER VF is among the given SR-IOV VFs
if [ $SRIOV == true ] && [[ $ROLE == *compute* ]]; then
num_of_vfs=${USER_NUM_OF_VFS}
# Set Compute VFs storage network
if [ $SRIOV == true ]; then
# SR-IOV is disabled with iSER enabled, then use only the storage VF
elif [ $ISER == true ] && [ $DRIVER == 'mlx4_en' ]; then
# If ROLES not set and not controller or compute
if ([ -z $ROLES ] && [[ ! $ROLE == *controller* ]]) || \
([ $ROLE == compute ] || [[ $ROLES == *compute* ]]); then
num_of_vfs=${USER_NUM_OF_VFS}
fi
fi
# Set Ethernet RDMA storage network
if [ $ISER == true ] && [ $DRIVER == 'mlx4_en' ] \
&& [ $num_of_vfs -eq 0 ]; then
num_of_vfs=1
fi
# Enforce even num of vfs
if [ $((${num_of_vfs} % 2)) -eq 1 ]; then
let num_of_vfs="${num_of_vfs} + 1" # number of vfs is odd and <= 64, then +1 is legal
let num_of_vfs="${num_of_vfs} + 1"
fi
echo ${num_of_vfs}
}

View File

@ -136,17 +136,38 @@
# Log a notice about post_deployment start
- id: print_stage_post_deployment
role: '*'
required_for: [post_deployment_end]
required_for: [configure_mlnx_iser_ib]
requires: [post_deployment_start]
type: shell
parameters:
cmd: ./log_stage.sh post_deployment
timeout: 20
# Set storage network configurations on the IB child
# if exists
- id: configure_mlnx_iser_ib
role: '*'
required_for: [post_set_mellanox_interfaces]
requires: [print_stage_post_deployment]
type: puppet
parameters:
puppet_manifest: puppet/manifests/configure_iser_child.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 200
# Move Ubuntu iSER conigurations to /etc/network/interfaces
# For MLNX_OFED drivers and reset VFs number
- id: post_set_mellanox_interfaces
role: '*'
required_for: [configure_mellanox_neo]
requires: [configure_mlnx_iser_ib]
type: shell
parameters:
cmd: ./post_set_mellanox_interfaces.sh
timeout: 120
# Execute post_deployment manifest for each role
- id: configure_mellanox_controller
role: ['controller', 'primary-controller']
required_for: [configure_mlnx_iser_ib]
requires: [print_stage_post_deployment]
required_for: [configure_mellanox_neo]
requires: [post_set_mellanox_interfaces]
type: puppet
parameters:
puppet_manifest: puppet/manifests/controller.pp
@ -154,8 +175,8 @@
timeout: 2000
- id: configure_mellanox_compute
role: ['compute']
required_for: [configure_mlnx_iser_ib]
requires: [print_stage_post_deployment]
required_for: [set_apparmor]
requires: [post_set_mellanox_interfaces]
type: puppet
parameters:
puppet_manifest: puppet/manifests/compute.pp
@ -163,49 +184,28 @@
timeout: 500
- id: configure_mellanox_cinder
role: ['cinder']
required_for: [configure_mlnx_iser_ib]
requires: [print_stage_post_deployment]
required_for: [configure_mellanox_neo]
requires: [post_set_mellanox_interfaces]
type: puppet
parameters:
puppet_manifest: puppet/manifests/cinder.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 500
# Set storage network configurations on the IB child
# if exists
- id: configure_mlnx_iser_ib
role: '*'
required_for: [set_apparmor]
requires: [post_deployment_start]
type: puppet
parameters:
puppet_manifest: puppet/manifests/configure_iser_child.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 200
# Add required exceptions for SR-IOV
- id: set_apparmor
role: ['compute']
required_for: [move_ib_interfaces_to_persistent]
required_for: [configure_mellanox_neo]
requires: [configure_mlnx_iser_ib]
type: shell
parameters:
cmd: ./set_apparmor.sh
timeout: 200
# Move Ubuntu iSER conigurations to /etc/network/interfaces
# For MLNX_OFED drivers
- id: move_ib_interfaces_to_persistent
role: '*'
required_for: [configure_mellanox_neo]
requires: [set_apparmor]
type: shell
parameters:
cmd: ./move_ubuntu_ib_interfaces_conf.sh
timeout: 120
# Configure Mellanox NEO SDN controller for auto VLAN
# provisioning
- id: configure_mellanox_neo
role: '*'
required_for: [cp_sriov_user_scripts]
requires: [move_ib_interfaces_to_persistent]
requires: [post_set_mellanox_interfaces]
type: puppet
parameters:
puppet_manifest: puppet/manifests/configure_mlnx_neo.pp