]> git.proxmox.com Git - pve-storage.git/commit
rbd: get_rbd_dev_path: return /dev/rbd path only if cluster matches
authorAaron Lauterer <a.lauterer@proxmox.com>
Mon, 23 May 2022 10:54:25 +0000 (12:54 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Tue, 14 Jun 2022 08:50:43 +0000 (10:50 +0200)
commita1528ffe8f86ca87f52c55781fc8f8a2bce4f603
treefbcf9e1eb914725e1576bd258cb317ee0218edb2
parente4671f734b55f999c92a3b8c251884fb640d9aa5
rbd: get_rbd_dev_path: return /dev/rbd path only if cluster matches

The changes in cfe46e2d4a97a83f1bbe6ad656e6416399309ba2 git not catch
all situations.
In the case of a guest having 2 disk images with the same name on a pool
with the same name but in two different ceph clusters we still had
issues when starting it. The first disk got mapped as expected. The
second disk did not get mapped because we returned the old $path to
"/dev/rbd/<pool>/<image>" because it already existed from the first
disk.

In the case that only the "old" /dev/rbd path exists and we do not have
the /dev/rbd-pve/<cluster>/... path available, we now check if the
cluster fsid used by that rbd device matches the one we expect. If it
does, then we are in the situation that the image has been mapped before
the new rbd-pve udev rule was introduced. If it does not, then we have
the situation of an ambiguous mapping in /dev/rbd and return the
$pve_path.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
PVE/Storage/RBDPlugin.pm