all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH v2 storage] ZFS: mount subvols in activate_volume
@ 2020-09-28  9:48 Fabian Ebner
  2020-09-29  3:09 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Fabian Ebner @ 2020-09-28  9:48 UTC (permalink / raw)
  To: pve-devel

Makes it possible to clone and start a container whose
ZFS subvols are not yet mounted for some reason. If a
subvol cannot be mounted, there's a better error now:
zfs error: cannot mount '/myzpool/subvol-103-disk-0': directory is not empty

Previously, cloning would quietly do an "empty" clone,
and startup would fail with:
mount_autodev: 1074 Permission denied - Failed to create "/dev" directory
lxc_setup: 3238 Failed to mount "/dev"
do_start: 1224 Failed to setup container "103"
__sync_wait: 41 An error occurred in another process (expected sequence number 5)

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---

Changes from v1:
    * not a change in this patch, but important:
      commit e8bb92bd2b1af95fd20db1b4aeb3dabc2811f571 moved volume activation
      to vm_start, meaning that the mount operation introduced by this patch
      does not happen (and fail) in the restricted apparmor context anymore
    * adapt commit message to reflect current behavior (when the first version
      was sent, starting failed quietly without producing an error)
    * rebase against current master

Previous discussion:
https://lists.proxmox.com/pipermail/pve-devel/2020-April/043088.html

 PVE/Storage/ZFSPoolPlugin.pm | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
index 7c180ea..215b703 100644
--- a/PVE/Storage/ZFSPoolPlugin.pm
+++ b/PVE/Storage/ZFSPoolPlugin.pm
@@ -549,9 +549,14 @@ sub activate_volume {
 
     my (undef, undef, undef, undef, undef, undef, $format) = $class->parse_volname($volname);
 
-    return 1 if $format ne 'raw';
-
-    $class->zfs_wait_for_zvol_link($scfg, $volname);
+    if ($format eq 'raw') {
+	$class->zfs_wait_for_zvol_link($scfg, $volname);
+    } elsif ($format eq 'subvol') {
+	my $mounted = $class->zfs_get_properties($scfg, 'mounted', "$scfg->{pool}/$volname");
+	if ($mounted !~ m/^yes$/) {
+	    $class->zfs_request($scfg, undef, 'mount', "$scfg->{pool}/$volname");
+	}
+    }
 
     return 1;
 }
-- 
2.20.1





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH v2 storage] ZFS: mount subvols in activate_volume
  2020-09-28  9:48 [pve-devel] [PATCH v2 storage] ZFS: mount subvols in activate_volume Fabian Ebner
@ 2020-09-29  3:09 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2020-09-29  3:09 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fabian Ebner

On 28.09.20 11:48, Fabian Ebner wrote:
> Makes it possible to clone and start a container whose
> ZFS subvols are not yet mounted for some reason. If a
> subvol cannot be mounted, there's a better error now:
> zfs error: cannot mount '/myzpool/subvol-103-disk-0': directory is not empty
> 
> Previously, cloning would quietly do an "empty" clone,
> and startup would fail with:
> mount_autodev: 1074 Permission denied - Failed to create "/dev" directory
> lxc_setup: 3238 Failed to mount "/dev"
> do_start: 1224 Failed to setup container "103"
> __sync_wait: 41 An error occurred in another process (expected sequence number 5)
> 
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
> 
> Changes from v1:
>     * not a change in this patch, but important:
>       commit e8bb92bd2b1af95fd20db1b4aeb3dabc2811f571 moved volume activation
>       to vm_start, meaning that the mount operation introduced by this patch
>       does not happen (and fail) in the restricted apparmor context anymore
>     * adapt commit message to reflect current behavior (when the first version
>       was sent, starting failed quietly without producing an error)
>     * rebase against current master
> 
> Previous discussion:
> https://lists.proxmox.com/pipermail/pve-devel/2020-April/043088.html
> 
>  PVE/Storage/ZFSPoolPlugin.pm | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-09-29  3:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-28  9:48 [pve-devel] [PATCH v2 storage] ZFS: mount subvols in activate_volume Fabian Ebner
2020-09-29  3:09 ` [pve-devel] applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal