public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH container] fix #3030: activate volumes at the right time for restart migration
Date: Wed, 28 Oct 2020 14:15:41 +0100	[thread overview]
Message-ID: <1603890752.4d64scs2iw.astroid@nora.none> (raw)
In-Reply-To: <20201015102426.5662-1-f.ebner@proxmox.com>

On October 15, 2020 12:24 pm, Fabian Ebner wrote:
> The lxc-pve-poststop-hook deactivates volumes when a container is stopped.
> To make sure that volumes are active when using the restart mode,
> move activate_volumes to after the conditional vm_stop. The lxc-stop command
> used in vm_stop waits for the hook script to complete, so there is no race.
> 
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
> 
> For VMs we don't have restart migration, so no similar bug there.
> 
> An alternative would be to communicate to the hook script to
> not deactivate the volumes. That would mean writing the lock=migrate
> to the config earlier (currently it's being set in phase1) and
> then checking for the lock in the hookscript.

isn't this still wrong, as it only activates the volumes directly 
referenced by the config, but we storage migrate unused (referenced and 
unreferenced) and snapshot volumes as well? wouldn't it make more sense 
that storage_migrate ensures the passed-in volid is activated before 
accessing it? and then before switching the container over, we ensure 
all volids we passed to storage_migrate get deactivated.. the others 
were already deactivated by the container shutting down anyway.

> 
>  src/PVE/LXC/Migrate.pm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/PVE/LXC/Migrate.pm b/src/PVE/LXC/Migrate.pm
> index 90d74b4..5ef16d2 100644
> --- a/src/PVE/LXC/Migrate.pm
> +++ b/src/PVE/LXC/Migrate.pm
> @@ -90,8 +90,6 @@ sub prepare {
>  
>      });
>  
> -    PVE::Storage::activate_volumes($self->{storecfg}, $need_activate);
> -
>      # todo: test if VM uses local resources
>  
>      # test ssh connection
> @@ -110,6 +108,8 @@ sub prepare {
>  	$running = 0;
>      }
>  
> +    PVE::Storage::activate_volumes($self->{storecfg}, $need_activate);
> +
>      return $running;
>  }
>  
> -- 
> 2.20.1
> 
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 
> 




  reply	other threads:[~2020-10-28 13:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-15 10:24 Fabian Ebner
2020-10-28 13:15 ` Fabian Grünbichler [this message]
2020-10-29  8:26   ` Fabian Ebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1603890752.4d64scs2iw.astroid@nora.none \
    --to=f.gruenbichler@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal