[pve-devel] [PATCH storage 0/2] fix #4997: lvm: avoid autoactivating (new) LVs after boot

Fiona Ebner f.ebner at proxmox.com
Fri Jan 26 12:14:58 CET 2024

Am 11.01.24 um 16:03 schrieb Friedrich Weber:
> By default, LVM autoactivates LVs after boot. In a cluster with VM disks on a
> shared LVM VG (e.g. on top of iSCSI), this can indirectly cause guest creation
> or VM live-migration to fail. See bug #4997 [1] and patch #2 for details.
> The goal of this series is to avoid autoactivating LVs after boot. Fabian
> suggested to use the "activation skip" flag for LVs. LVs with that flag can
> only be activated if the `-K` flag is passed during activation (`-K` is not
> passed for autoactivation after boot).
> With patch #1, the LVM plugin passes the `-K` flag to activation commands. If
> the LV does not have the "activation skip" flag set, this should not have any
> effect, so it should be safe to apply this patch in the near future. It does
> not yet fix #4997, though.
> With patch #2, the LVM plugin sets the "activation skip" flag for newly created
> LVs. As this can be considered a breaking change, it may make sense to only
> apply it close to the PVE 9 release. If patch #1 has been available in the last
> PVE 8 minor release, this should ensure a smooth upgrade even if a cluster is
> temporarily mixed between PVE 8.x and 9 (PVE 8.x will be able to activate LVs
> created by PVE 9 with "activation skip"). This will fix #4997 for newly created
> LVs.

Yes, patch #2 can cause issues for clusters with mixed minor versions,
so I'd consider this a breaking change.

> Some points to discuss:
> * Fabian and I discussed whether it may be better to pass `-K` and set the
>   "activation skip" flag only for LVs on a *shared* LVM storage. But this may
>   cause issues for users that incorrectly mark an LVM storage as shared, create a
>   bunch of LVs (with "activation skip" flag), then unset the "shared" flag, and
>   won't be able to activate LVs afterwards (`lvchange -ay` without `-K` on an LV
>   with "activation skip" is a noop). What do you think?

Is there a way to prevent auto-activation on boot for LVs on a shared
(PVE-managed) LVM storage? Also a breaking change, because users might
have other LVs on the same storage, but would avoid the need for the
flag. Not against the current approach, just wondering.

Guardrails against issues caused by misconfiguration always warrant a
cost-benefits analysis. What is the cost for also setting the flag for
LVs on non-shared LVM storages? Or logic needs to be correct either way ;)

> * Even with patch #1 and #2 applied, users can still run into #4997 for LVs
>   that were created before #2, so without the "activation skip" flag. So it might
>   be good to include a note in the 8->9 release notes and/or a warning in the
>   pve8to9 helper and/or ship a script that automatically sets the flag for all
>   existing (PVE-owned) LVs.

Sure, mentioning the changed behavior and suggestion/script for making
it consistent make sense.

More information about the pve-devel mailing list