]> git.proxmox.com Git - pve-container.git/commit
Move volume activation to vm_start
authorStoiko Ivanov <s.ivanov@proxmox.com>
Tue, 14 Jul 2020 17:50:18 +0000 (19:50 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Tue, 4 Aug 2020 11:49:54 +0000 (13:49 +0200)
commite8bb92bd2b1af95fd20db1b4aeb3dabc2811f571
tree59e1d497d0e844d6a33bd9cad54d65ab6640430b
parentc670e96291ce9cfcaf0fa44a6026275e71c9ad96
Move volume activation to vm_start

currently all volumes for a container are activated in the pre-start hook,
which runs in a separate mount namespace (lxc.monitor.unshare is set to 1
in our container config). This leads to problems with ZFS:
* if a pool is imported by this call the filesystems are mounted only inside
  the containers mount namespace

by running the volume activation inside vm_start, right before starting the
container via systemctl the volume activation happens before the unshare.

The other site where a container is started via systemctl is in
'pve-container-stop-wrapper' when a container is rebooted from the inside:
By activating the volumes in 'lxc-pve-poststop-hook' we avoid to try starting
a container with an inactive volume (LVM, kRBD), occuring when having a
mp-addtion pending during such a reboot

Starting a container manually using lxc-start is usually done for obtaining
debug-logs (after starting failed with our tooling) - so the potential for
regression in that case should also be small.

The $loopdevlist variable is not used anywhere in our codebase since 2015
(da6298481ea4dfe7d894f42fa105cda015ebe5ce).

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
src/PVE/LXC.pm
src/lxc-pve-poststop-hook
src/lxc-pve-prestart-hook