The issue was observed recently and can lead to potential dataloss. When using a shared LVM storage (e.g. over iSCSI) in a clustered setup only the node, where a guest is active notices the size change upon disk-resize (lvextend/lvreduce).
LVM's metadata gets updated on all nodes eventually (the latest when pvestatd runs and lists all LVM-volumes (lvs/vgs update the metadata), however the device-files (/dev/$vg/$lv) on all nodes, where the guest is not actively running do not notice the change. Steps to reproduce an I/O error: * create a qemu-guest with a disk backed by a shared LVM storage * create a filesystem on that disk and fill it to 100% * resize the disk/filesystem * put some more data on the filesystem * migrate the guest to another node * try reading past the initial disksize The second patch fixes the size-mismatch by running `lvchange --refresh` whenever we activate a volume with LVM and should fix the critical issue The first patch introduces a direct implementation of volume_size_info to the LVMPlugin.pm, reading the volume size via `lvs`, instead of falling back to `qemu-img info` from Plugin.pm. While this should always yield the same output after the second patch on the node where a guest is currently running, there still might be a mismatch when the LV is active (e.g. after a fresh boot) on a node, and gets resized on another node. Stoiko Ivanov (2): fix #2046 add volume_size_info to LVMPlugin LVM: Add '--refresh' when activating volumes PVE/Storage/LVMPlugin.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel