Deploying with SR-IOV Support¶
TripleO can deploy Overcloud nodes with SR-IOV support. A new role ComputeSriov
has been added to create a custom roles_data.yaml
with composable SR-IOV role.
Execute below command to create the roles_data.yaml
:
openstack overcloud roles generate -o roles_data.yaml Controller ComputeSriov
Once a roles file is created, the following changes are required:
Deploy Command
Parameters
Network Config
Deploy Command¶
Deploy command should include the generated roles data file from the above command.
Deploy command should also include the SR-IOV environment file to include the neutron-sriov-agent service. All the required parameters are also specified in this environment file. The parameters has to be configured according to the baremetal on which SR-IOV needs to be enabled.
Also, SR-IOV requires mandatory kernel parameters to be set, like
intel_iommu=on iommu=pt
on Intel machines. In order to enable the
configuration of kernel parameters to the host, host-config-pre-network
environment file has to be added for the deploy command.
Adding the following arguments to the openstack overcloud deploy
command
will do the trick:
openstack overcloud deploy --templates \
-r roles_data.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/host-config-and-reboot.yaml \
...
Parameters¶
Following are the list of parameters which need to be provided for deploying with SR-IOV support.
NovaPCIPassthrough: Provide the list of SR-IOV device names, the logical network, PCI addresses etc. The PF/VF devices matching the criteria would be available for guests.
NeutronPhysicalDevMappings: The map of logical network name and the physical interface.
Example:
parameter_defaults:
NovaPCIPassthrough:
- devname: "p7p1"
physical_network: "sriov1_net"
- devname: "p7p2"
physical_network: "sriov2_net"
NeutronPhysicalDevMappings: "sriov1_net:p7p1,sriov2_net:p7p2"
The parameter KernelArgs
should be provided in the deployment environment
file, with the set of kernel boot parameters to be applied on the
ComputeSriov
role where SR-IOV is enabled:
parameter_defaults:
ComputeSriovParameters:
KernelArgs: "intel_iommu=on iommu=pt"
Network Config¶
SR-IOV supported network interfaces should be specified in the network config templates as sriov_pf type. This mechanism of configuring numvfs for SR-IOV device is recommended and NeutronSriovNumVFs shall be avoided.
Example:
network_config:
- type: sriov_pf
name: p7p2
mtu: 9000
numvfs: 10
use_dhcp: false
defroute: false
nm_controlled: true
promisc: false