tripleo-docs/deploy-guide/source/features/sriov_deployment.rst

89 lines
2.9 KiB
ReStructuredText

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