Contrail supports Netronome Agilio CX SmartNICs for Contrail
Networking deployment with Red Hat OpenStack Platform Director (RHOSPd)
13 environment.
This feature will enable service providers to improve the forwarding
performance which includes packets per second (PPS) of vRouter. This
will optimize server CPU usage and you can deploy more Virtual network
functions (VNFs) per server.
Benefits:
Increased PPS capacity of Contrail vRouter datapath allowing
applications to reach their full processing capacity.
Reclaimed CPU cores from Contrail vRouter off-loading
allowing more VMs and VNFs to be deployed per server.
The goal of this topic is to provide a procedure for deploying
accelerated vRouter compute nodes.
Before you begin:
Equip compute nodes with Netronome Agilio CX SmartNIC.
For details, refer to Agilio CX SmartNICs.
Retrieve Agilio heat-template plugin.
Register on Netronome support site at https://help.netronome.com and provide Docker Hub credentials.
Netronome will provide the TripleO templates for SmartNIC vRouter
deployment on compute nodes. Also, Netronome will authorize Docker
Hub registry access.
For details, refer to Netronome Agilio vRouter 19xx deployment guide.
Note the following version tags:
AGILIO_TAG="2.38-rhel-queens
FORWARDER_TAG="2.38-rhel-queens
Procedure:
Note: If you have multiple undercloud nodes deployed, you must
perform the following procedure on the same node.
- Configure Agilio plugin.
- Extract the Agilio plugin archive
and copy the agilio-plugin folder
into the tripleo-heat-templates directory.
[stack@queensa ~]$ tar -xzvf rhosp-contrail-agilio-heat-plugin-5-34.tgz
agilio-plugin/
agilio-plugin/agilio-vrouter.yaml
agilio-plugin/agilio_upgrade.sh
agilio-plugin/deploy_rhosp.sh
agilio-plugin/nfp_udev.sh
agilio-plugin/agilio-env.yaml
agilio-plugin/version
agilio-plugin/README.md
[stack@queensa ~]$ cp -r agilio-plugin/ tripleo-heat-templates/
- Navigate to the agilio-plugin directory on the undercloud node.
[tripleo-heat-templates]$ cd agilio-plugin/
- Modify agilio-env.yaml file as per your environment.
Note: Reserve at least 1375*2 MB hugepages for virtio-forwarder.
Sample agilio-env.yaml file:
resource_registry:
OS::TripleO::NodeExtraConfigPost: agilio-vrouter.yaml
parameter_defaults:
# Hugepages
ContrailVrouterHugepages2MB: "8192"
# IOMMU
ComputeParameters:
KernelArgs: "intel_iommu=on iommu=pt isolcpus=1,2 "
ComputeCount: 3
# Aditional config
ControlPlaneDefaultRoute: 10.0.x.1
EC2MetadataIp: 10.0.x.1 # Generally the IP of the Undercloud
DnsServers: ["8.8.8.8","192.168.3.3"]
NtpServer: ntp.is.co.za
ContrailRegistryInsecure: true
DockerInsecureRegistryAddress: 172.x.x.150:6666,10.0.x.1:8787
ContrailRegistry: 172.x.x.150:6666
ContrailImageTag: <container_tag>-rhel-queens
# Fix DB Diskspace too low issue
ContrailAnalyticsDBMinDiskGB: 40
- Add Docker Hub credentials to tripleo-heat-templates/agilio-plugin/agililo_upgrade.sh file to retrieve containers from AGILIO_REPO="docker.io/netronomesystems/" repository.
#GENERAL DOCKER CONFIG
DOCKER_USR=******
#ENTER_DOCKER_USERNAME_HERE
DOCKER_PASS=****** #ENTER_DOCKER_PASSWORD_HERE
[root@overcloud-novacompute-2 heat-admin]# docker
ps -a | grep virtio_for
7d5af8a2591d docker.io/netronomesystems/virtio-forwarder:2.38-rhel-queens
"./entrypoint.sh" 30 seconds ago Up 15 seconds
virtio_forwarder
[root@overcloud-novacompute-2 heat-admin]# docker
ps -a | grep agilio
c7c611b5168b docker.io/netronomesystems/agilio-vrouter:2.38-rhel-queens
"./entrypoint.sh" 46 seconds ago Up 38 seconds
agilio_vrouter
- Prepare the Contrail Networking cluster for deployment.
Refer to the following topics for deployment:
- Deploy the cluster by one of the following ways:
Add agilio-env.yaml
to installing
overcloud step as mentioned in Installing Overcloud topic.
openstack overcloud deploy --templates ~/tripleo-heat-templates
-e ~/overcloud_images.yaml
-e ~/tripleo-heat-templates/environments/network-isolation.yaml
-e ~/tripleo-heat-templates/environments/contrail/contrail-plugins.yaml
-e ~/tripleo-heat-templates/environments/contrail/contrail-services.yaml
-e ~/tripleo-heat-templates/environments/contrail/contrail-net.yaml
-e ~/tripleo-heat-templates/agilio-plugin/agilio-env.yaml
--roles-file ~/tripleo-heat-templates/roles_data_contrail_aio.yaml
Or
Run the following command:
deploy_rhosp.sh
-e ~/tripleo-heat-templates/agilio-plugin/agilio-env.yaml