IPv6 availability ranges now grow without bounds
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Expired
|
Medium
|
Unassigned |
Bug Description
Thanks to the new method of lazily recycling IPs introduced in Ia55b66128de998
Case in point, this is the db contents after creating and destroying 5 VMs with IPv6 addresses:
mysql> select * from ipavailabilityr
+------
| allocation_pool_id | first_ip | last_ip |
+------
| 06399db3-
| 06399db3-
| 06399db3-
| 06399db3-
| 06399db3-
| 06399db3-
| 10f63364-
+------
Because these ranges are checked while doing such things as "neutron net-list", this pretty quickly becomes a large performance problem. After this change was applied, just a couple of days of creating and destroying VMs via automated testing caused the time it took for an admin to run "neutron net-list" to go from just a couple of seconds to over 20 seconds.
tags: | added: l3-ipam-dhcp |
tags: |
added: ipv6 removed: l3-ipam-dhcp |
Changed in neutron: | |
status: | New → Confirmed |
importance: | Undecided → High |
importance: | High → Medium |
assignee: | nobody → Eugene Nikanorov (enikanorov) |
Changed in neutron: | |
assignee: | Eugene Nikanorov (enikanorov) → nobody |
status: | Confirmed → New |
Changed in neutron: | |
assignee: | nobody → Xu Han Peng (xuhanp) |
So, before lazy recycling, the availability ranges would be cleaned up and now they're not.
What we need to do is to stop using availability ranges where SLAAC is being used to allocate IP addresses. They aren't being used for anything anyway.