Neutron QoS Policy lost on interfaces
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Rodolfo Alonso |
Bug Description
Instance lost the QoS on interfaces with some operations like: reboot hard, live-migrate, migrate
Description
===========
When perform some operation with VM like: reboot hard, live-migrate, migrate, sometime, the QoS policy on the VM interfaces lost and neutron doesn't handle to restore it
So user can avoid QoS per-port limitation and utilise all hosts bandwidth.
Steps to reproduce
====
1. Create instance with port in neutron network(or can create a network with a QoS Policy)
2. Create QoS in neutron:
$ openstack network qos policy create --share qos-100Mb
$ openstack network qos rule create --type bandwidth-limit --max-kbps 100000 --max-burst-kbits 0 --egress qos-100Mb
$ openstack network qos rule create --type bandwidth-limit --max-kbps 100000 --max-burst-kbits 0 --ingress qos-100Mb
3. Update port of the instance, assign policy:
$ openstack port set --qos-policy qos-100Mb PORT_UUID
4. Ensure, that QoS rule is applied to the port:
$ ovs-vsctl list interface qvoxxxxxxx-xx
......
ingress_
ingress_
.......
$ /sbin/tc -s qdisc show dev qvoxxxxxxx-xx
qdisc htb 1: root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
Sent 9701 bytes 93 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc ingress ffff: parent ffff:fff1 ----------------
Sent 9576 bytes 130 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
5. Perform operation like: reboot hard, live-migrate, migrate
6. Sometime after that operation, VM interfaces lost its QoS policy
ovs-vsctl list interface qvoxxxxxxx-xx
......
ingress_
ingress_
.......
Expected result
===============
QoS rules are restore to the port
Actual result
=============
QoS rules are lost, port has no limit
Environment
===========
1. Exact version of OpenStack:
OpenStack Queens and Openstack Rocky
2. Which networking type did you use?
Neutron with Open vSwitch
information type: | Public → Public Security |
information type: | Public Security → Public |
description: | updated |
tags: | added: qos |
Changed in neutron: | |
assignee: | Nguyen Duy Binh (binhnd) → nobody |
Changed in neutron: | |
assignee: | nobody → Rodolfo Alonso (rodolfo-alonso-hernandez) |
status: | New → In Progress |
information type: | Public → Public Security |
Changed in ubuntu: | |
status: | New → Invalid |
no longer affects: | ubuntu |
information type: | Public Security → Public |
tags: | added: neutron-proactive-backport-potential |
tags: | removed: neutron-proactive-backport-potential |
Thank you for your bug report and especially for the clear reproduction instructions.
I did not manage to reproduce the problem in my environment. That was a master devstack and I performed a hard reboot of the vm, but the QoS backend settings were not lost after it. On the other hand I had different interface names, likely because we are using different firewall drivers. And that may be the reason we're seeing different behavior. Which firewall_driver is in your neutron config? Mine was 'noop'.