Mailing List Archive

linstor-proxmox v8.0.1
Dear DRBD on PVE users,

this is version 8.0.1 of the LINSTOR Proxmox plugin. It is a small
bugfix release that contains two changes, both related to cloud-init
images.

The first is a fix for a regression introduced with 8.0.0: By being ways
stricter with what names (usually VM disk names or snapshot names) are
valid it was no longer possible to create cloud-init images on DRBD.
That is now possible. A word on if that even makes sense later.

Secondly, PVE behaves a bit different for cloud init images compared to
VM disk images. Disk images are created once ("alloc") and then used
after an "activate" and get a "deactivate" when they are not used
anymore. In "alloc" we create the LINSTOR resource (which might get
placed on a subset of PVE nodes), and when the VM is started
("activate") we check if there is the necessary DRBD device on that node
and if not we create a diskless assignment. On "deactivate" we delete
such unnecessary diskless assignments. Cloud init images on the other
hand have their configuration stored in PVE and if such an image does
not exist it can be re-generated immediately, the config is just a few
KB, the "iso" a few MB.

So if a VM with it's cloud init image on DRBD starts on a node that
currently does not have access to the DRBD device hosting the cloud init
image this happens: PVE stat()s the device path and it does not exist,
it does not send an "activate", but it just tries to recreate it
("alloc"). And that is where we failed, because the LINSTOR resource
already existed (and we errored out in "alloc"), but it just was not
available yet on that node. If we detect that scenario now, we return
from "alloc", and wait for the "activate" to make the cloud init image
available on that particular node.

People insist on having everything on one storage, but my personal
opinion: Don't put cloud init images on DRBD, I don't see any
reason for that. The config (IP settings, DNS settings,...) is in PVE,
they can be created on the fly, and that is what PVE does. Just put them
on local LVM and be done with it. When you move a VM PVE will recreate
the cloud init image on the destinations node's local LVM (and delete it
from the old node).

Regards, rck

GIT: https://github.com/LINBIT/linstor-proxmox/commit/595c9f15ea72d99dd3f82fb94cefa74aaf0b0770
TGZ: https://pkg.linbit.com//downloads/connectors/linstor-proxmox-8.0.1.tar.gz