[DRBD-announce] linstor-proxmox v7.0.1

Roland Kammerer <[email protected]> Thu, 15 Jun 2023 09:41:18 +0200
Newsgroups dev.linux.lists.drbd-announce
Message-ID <[email protected]>
Dear DRBD on PVE users,

this is version 7.0.1 of the linstor-proxmox plugin. The RC phase was
exceptionally long, which was a result of public holidays and me being
on vacation. There have not been any reported bugs, the original
announcement for your convenience:

- it fixes a performance regression introduced with 7.0.0
- it requires LINSTOR 1.23.0
- all users of 7.0.0 should then upgrade to 7.0.1

The detailed version:
Long story short, PVE calls status() freaking often. Depending on if you
select the storage in the GUI, this can happen every second, otherwise
like every 10s. To accommodate for that Proxmox's status() API has a
"cache" object that is passed in for every storage type. Let's say you
have 4 'drbd' storages (as in storage.cfg), then for the first call we
get an empty cache which we can fill, and for the next 3 we can use
that.

That helps, but
- we can not make use of that for more than one iteration (remember, PVE
  calls status an awful lot), that is why we introduced a file based
  persistent cache to keep some information longer than 10 seconds.
- things get even worse if you have a distributed system where then
  every PVE node hammers the LINSTOR controller with (the same)
  questions all the time.

Do the math, the LINSTOR controller gets too many "what is the status of
my storage" calls very very quickly even in setups with a handful of
nodes.

Recently we improved how we display storage information, but that also
rendered the built in PVE cache useless as we needed to query every RG
individually. That was known, I thought we could get away with it. We
did not.

How was it fixed:
- we can now query the storage information for all RGs once. That helps
  to again use the builtin cache more effectively as we again need 1
  call for every iteration.
- The new LINSTOR API for querying all RGs at once also got a cache
  parameter which also helps a lot because it avoids the pressure on the
  controller that resulted from the distributed nature of LINSTOR/DRBD.
  The http queries were/are not the problem, the problem is that the
  controller then needs to get the state of all satellites.

Regards, rck

GIT: https://github.com/LINBIT/linstor-proxmox/commit/e72f262ca0db1f875f996c22da322c28a39d7831
TGZ: https://pkg.linbit.com//downloads/connectors/linstor-proxmox-7.0.1.tar.gz
signature.asc (application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEdesqw/S/2vE9wNKDRgmezyI6myIFAmSKwJoACgkQRgmezyI6
myKcAQgAlsr0x0qpW7xyv/nYcbeoIJ+2oGHxvAx1mElebr/Y8dfG1zQ7Ugpt0b9u
xHFD8I3Emqt0xHNCBuCcMlaU3PIQoU7iW/CvMgQ3aBfhO/79vwgdYGUR1fYG0i7h
DW7b/gOv8c7/zayZIbSykV+EWKfXxP/Ov9jihgPxP3lHpLto6UutGv6u4/lLqScm
mcB+edc/aER4icqzwQdp0WiosoOXWVX/Dht/UH511ieqYn3UXGRdzolTX66dMdor
YxXh1/g4W0di57DzTygU5AebwyJYCc1w4xvddgeKSS152uVDkAE0EL1RvjhUToH2
mgljXjHgWVwHB+zYzdfqpb8ZyYOt4Q==
=8IVl
-----END PGP SIGNATURE-----