- play_arrow Overview
- play_arrow Understanding Contrail Controller
-
- play_arrow Installing and Upgrading Contrail
- play_arrow Supported Platforms and Server Requirements
- play_arrow Installing Contrail and Provisioning Roles
- Introduction to Containerized Contrail Modules
- Introduction to Contrail Microservices Architecture
- Downloading Installation Software
- Overview of contrail-ansible-deployer used in Contrail Command for Installing Contrail with Microservices Architecture
- Installing Contrail with OpenStack and Kolla Ansible
- Configuring the Control Node with BGP
- Contrail Global Controller
- Role and Resource-Based Access Control
- play_arrow Installation and Configuration Scenarios
- Setting Up and Using a Simple Virtual Gateway with Contrail 4.0
- Configuring MD5 Authentication for BGP Sessions
- Configuring the Data Plane Development Kit (DPDK) Integrated with Contrail vRouter
- Configuring Contrail DPDK vRouter to Run in a Docker Container
- Configuring Single Root I/O Virtualization (SR-IOV)
- Configuring Virtual Networks for Hub-and-Spoke Topology
- Configuring Transport Layer Security-Based XMPP in Contrail
- Configuring Graceful Restart and Long-lived Graceful Restart
- Remote Compute
- Dynamic Kernel Module Support (DKMS) for vRouter
- play_arrow Upgrading Contrail Software
- play_arrow Backup and Restore Contrail Software
- play_arrow Multicloud Contrail
- play_arrow Using Contrail with Kubernetes
- Contrail Integration with Kubernetes
- Installing and Managing Contrail 5.0 Microservices Architecture Using Helm Charts
- Provisioning of Kubernetes Clusters
- Using Helm Charts to Provision Multinode Contrail OpenStack Ocata with High Availability
- Using Helm Charts to Provision All-in-One Contrail with OpenStack Ocata
- Accessing a Contrail OpenStack Helm Cluster
- Frequently Asked Questions About Contrail and Helm Charts
- Contrail Deployment with Helm
- Verifying Configuration for CNI for Kubernetes
- Kubernetes Updates to IP Fabric
- Implementation of Kubernetes Network Policy with Contrail Firewall Policy
- play_arrow Using VMware vCenter with Containerized Contrail
- vCenter Integration for Contrail Release 5.0
- vCenter Integration for Contrail Release 5.0.1
- vCenter Integration for Contrail Release 5.0.2
- Underlay Network Configuration for ContrailVM
- Using the Contrail and VMware vCenter User Interfaces to Manage the Network For Contrail Releases 5.0 and 5.0.1
- Using the Contrail and VMware vCenter User Interfaces to Manage the Network For Contrail Release 5.0.2
- Integrating Contrail Release 5.0.X with VMware vRealize Orchestrator
- Installing and Provisioning Contrail VMware vRealize Orchestrator Plugin
- play_arrow Using Contrail with Red Hat
- play_arrow Contrail and AppFormix Kolla/Ocata OpenStack Deployment
- Contrail and AppFormix Deployment Requirements
- Preparing for the Installation
- Run the Playbooks
- Accessing Contrail in AppFormix Management Infrastructure in UI
- Notes and Caveats
- Example Instances.yml for Contrail and AppFormix OpenStack Deployment
- Installing AppFormix for OpenStack
- Installing AppFormix for OpenStack in HA
- play_arrow Using Contrail with Juju Charms
- play_arrow Contrail Command
- play_arrow Extending Contrail to Physical Routers, Bare Metal Servers, Switches, and Interfaces
- Understanding Bare Metal Server Management
- Configuring High Availability for the Contrail OVSDB ToR Agent
- Using Device Manager to Manage Physical Routers
- SR-IOV VF as the Physical Interface of vRouter
- Using Gateway Mode to Support Remote Instances
- REST APIs for Extending the Contrail Cluster to Physical Routers, and Physical and Logical Interfaces
- play_arrow Contrail for Data Center Automation and Fabric Management
-
- play_arrow Contrail Security
- play_arrow Contrail Security
-
- play_arrow Monitoring and Troubleshooting Contrail
- play_arrow Configuring Traffic Mirroring to Monitor Network Traffic
- play_arrow Understanding Contrail Analytics
- play_arrow Configuring Contrail Analytics
- Analytics Scalability
- High Availability for Analytics
- System Log Receiver in Contrail Analytics
- Sending Flow Messages to the Contrail System Log
- Ceilometer Support in a Contrail Cloud
- User Configuration for Analytics Alarms and Log Statistics
- Alarms History
- Node Memory and CPU Information
- Role- and Resource-Based Access Control for the Contrail Analytics API
- Configuring Analytics as a Standalone Solution
- Configuring Secure Sandesh and Introspect for Contrail Analytics
- play_arrow Using Contrail Analytics to Monitor and Troubleshoot the Network
- Monitoring the System
- Debugging Processes Using the Contrail Introspect Feature
- Monitor > Infrastructure > Dashboard
- Monitor > Infrastructure > Control Nodes
- Monitor > Infrastructure > Virtual Routers
- Monitor > Infrastructure > Analytics Nodes
- Monitor > Infrastructure > Config Nodes
- Monitor > Networking
- Query > Flows
- Query > Logs
- Understanding Flow Sampling
- Example: Debugging Connectivity Using Monitoring for Troubleshooting
- play_arrow Common Support Answers
-
- play_arrow Contrail Commands and APIs
- play_arrow Contrail Commands
- play_arrow Contrail Application Programming Interfaces (APIs)
-
ON THIS PAGE
Configuring Network QoS Parameters
Overview
You can use the OpenStack Nova command-line interface (CLI)
to specify a quality of service (QoS) setting for a virtual machine’s
network interface, by setting the quota
of a Nova flavor. Any virtual machine created with that Nova flavor
will inherit all of the specified QoS settings. Additionally, if the
virtual machine that was created with the QoS settings has multiple
interfaces in different virtual networks, the same QoS settings will
be applied to all of the network interfaces associated with the virtual
machine. The QoS settings can be specified in unidirectional or bidirectional
mode.
The quota
driver in Neutron converts
QoS parameters into libvirt
network settings
of the virtual machine.
The QoS parameters available in the quota driver only cover rate limiting the network interface. There are no specifications available for policy-based QoS at this time.
QoS Configuration Examples
Although the QoS setting can be specified in quota by using either Horizon or CLI, quota creation using CLI is more robust and stable, therefore, creating by CLI is the recommended method.
Example
CLI for Nova flavor has the following format:
nova flavor-key <flavor_name> set quota:vif_<direction> _<param_name> = value
where:
<flavor_name>
is the name of an existing Nova flavor.
vif_<direction>_<param_name>
is the inbound or outbound
QoS data name.
QoS vif
types include the following:
vif_inbound_average
lets you specify the average rate of inbound (receive) traffic, in kilobytes/sec.vif_outbound_average
lets you specify the average rate of outbound (transmit) traffic, in kilobytes/sec.Optional:
vif_inbound_peak
andvif_outbound_peak
specify the maximum rate of inbound and outbound traffic, respectively, in kilobytes/sec.Optional:
vif_inbound_burst
andvif_outbound_peak
specify the amount of kilobytes that can be received or transmitted, respectively, in a single burst at the peak rate.
Details for various QoS parameters for libvirt
can be found at http://libvirt.org/formatnetwork.html.
The following example shows an inbound average of 800 kilobytes/sec, a peak of 1000 kilobytes/sec, and a burst amount of 30 kilobytes.
nova flavor-key m1.small set quota:vif_inbound_average=800 nova flavor-key m1.small set quota:vif_inbound_peak=1000 nova flavor-key m1.small set quota:vif_inbound_burst=30
The following is an example of specified outbound parameters:
nova flavor-key m1.small set quota:vif_outbound_average=800 nova flavor-key m1.small set quota:vif_outbound_peak=1000 nova flavor-key m1.small set quota:vif_outbound_burst=30
After the Nova flavor is configured for QoS, a virtual machine instance can be created, using either Horizon or CLI. The instance will have network settings corresponding to the nova flavor-key, as in the following:
<interface type="ethernet"> <mac address="02:a3:a0:87:7f:61"/> <model type="virtio"/> <script path=""/> <target dev="tapa3a0877f-61"/> <bandwidth> <inbound average="800" peak="1000" burst="30"/> <outbound average="800" peak="1000" burst="30"/> </bandwidth> </interface>
Limitations
The stock
libvirt
does not support rate limiting ofethernet
interface types. Consequently, settings like those in the example for the guest interface will not result in anytc qdisc
settings for the corresponding tap device in the host. For more details, refer to issue #1367095 in Launchpad.net, where you can find patches and instructions to makelibvirt
work for network rate limiting of virtual machine interfaces.The
nova flavor-key rxtx_factor
takes a float as an input and acts as a scaling factor for receive (inbound) and transmit (outbound) throughputs. This key is only available to Neutron extensions (private extensions). The Contrail Neutron plugin doesn’t implement this private extension. Consequently, setting thenova flavor-key rxtx_factor
will not have any effect on the QoS setting of the network interface(s) of any virtual machine created with that nova flavor.The outbound rate limits of a virtual machine interface are not strictly achieved. The outbound throughput of a virtual machine network interface is always less than the average outbound limit specified in the virtual machine's libvirt configuration file. The same behavior is also seen when using a Linux bridge.