public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fabian Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com, Dominik Csapak <d.csapak@proxmox.com>
Subject: Re: [pve-devel] [PATCH guest-common v2 1/2] ReplicationState: purge state from non local vms
Date: Tue, 7 Jun 2022 11:12:14 +0200	[thread overview]
Message-ID: <d50bf274-9636-0cb3-f2de-6064bea246f4@proxmox.com> (raw)
In-Reply-To: <20220603071630.374408-1-d.csapak@proxmox.com>

Am 03.06.22 um 09:16 schrieb Dominik Csapak:
> when running replication, we don't want to keep replication states for
> non-local vms. Normally this would not be a problem, since on migration,
> we transfer the states anyway, but when the ha-manager steals a vm, it
> cannot do that. In that case, having an old state lying around is
> harmful, since the code does not expect the state to be out-of-sync
> with the actual snapshots on disk.
> 
> One such problem is the following:
> 
> Replicate vm 100 from node A to node B and C, and activate HA. When node
> A dies, it will be relocated to e.g. node B and start replicate from
> there. If node B now had an old state lying around for it's sync to node
> C, it might delete the common base snapshots of B and C and cannot sync
> again.

To be even more robust, we could ensure that the last_sync snapshot
mentioned in the job state is actually present before starting to remove
replication snapshots in prepare() on the source side, or change it to
only remove older snapshots. But prepare() is also used on the target
side to remove stale volumes, so we'd have to be careful not to break
the logic for that.

I'm working on the v2 of a series for improving removal of stale volumes
anyways, so I'll see if I can add something there.

> 
> Deleting the state for all non local guests fixes that issue, since it
> always starts fresh, and the potentially existing old state cannot be
> valid anyway since we just relocated the vm here (from a dead node).
> 
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>

Both patches:
Reviewed-by: Fabian Ebner <f.ebner@proxmox.com>




  parent reply	other threads:[~2022-06-07  9:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-03  7:16 Dominik Csapak
2022-06-03  7:16 ` [pve-devel] [PATCH guest-common v2 2/2] ReplicationState: deterministically order replication jobs Dominik Csapak
2022-06-07  9:12 ` Fabian Ebner [this message]
2022-06-08  6:49 ` [pve-devel] applied-series: [PATCH guest-common v2 1/2] ReplicationState: purge state from non local vms Thomas Lamprecht

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=d50bf274-9636-0cb3-f2de-6064bea246f4@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=d.csapak@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