[libvirt] RFC: auto port allocations

Martin Kletzander mkletzan at redhat.com
Mon Dec 18 10:25:42 UTC 2017


On Mon, Dec 18, 2017 at 12:56:20PM +0300, Nikolay Shirokovskiy wrote:
>There is a problem with current port allocations in libvirt.
>
>1. With default qemu driver conf values remote_display_port_min = 5900 and
>remote_websocket_port_min = 5700 one can not start more than 200 domains
>each of one have vnc graphics with auto allocated socket and websocket. For
>the 200th domain driver allocate 6100 port for both socket and websocket
>and qemu fail to start.
>
>2. Different hypervisor drivers use port pools with same borders (libxl
>and qemu migration ports, hardcoded libxl vnc sockets and default conf
>qemu vnc sockets for example. However I'm not sure it is possible/practical
>to use these drivers simultaneously on same host). As a result there
>can be failures due to races when first driver check for bind successfully then
>second driver check for bind successfully and then both pass same port value
>to hypervisors.
>
>Suggestion is to make port bitmap driver/daemon global and leave only borders
>in port pool object. This was we can solve the first and the both issues
>correspondingly.
>

Yes, I though of the same thing.  The boundaries would be parameters to the
allocation (so that the various settings can still apply), but the pool object
doesn't need to have any boundaries since there will be one global one.

Should be easy to do (TM) (Famous last words?)

>Nikolay
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list