All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: "Denis V. Lunev" <den@openvz.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@parallels.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	"juan quin >> Juan Jose Quintela Carreira" <quintela@redhat.com>
Subject: Re: [Qemu-devel] Migration design planning
Date: Wed, 2 Mar 2016 12:23:57 -0500	[thread overview]
Message-ID: <56D721AD.6010302@redhat.com> (raw)
In-Reply-To: <20160302164637.GE2140@work-vm>



On 03/02/2016 11:46 AM, Dr. David Alan Gilbert wrote:
> * John Snow (jsnow@redhat.com) wrote:
>> Hi Juan;
>> We need your assistance in reviewing two competing designs for migrating
>> some block data so we can move forward with the feature.
>>
>> First, some background:
>>
>> What: Block Dirty Bitmaps. They are simple primitives that keep track of
>> which clusters have been written to since the last incremental backup.
>>
>> Why: They are in-ram primitives that do not get migrated as-is alongside
>> block data, they need to be migrated specially. We want to migrate them
>> so that the "incremental backup" feature is available after a migration.
> 
> There's a question I remember asking before, but I don't remember the answer.
> Given the size of these bitmaps (i.e. pretty small), why not make them
> RAMBlocks that aren't mapped to the guest RAM (we have one example; the ACPI
> config); if you did that, then they'd automatically get migrated with the
> existing migration code.
> 
> Dave
> 

*usually* pretty small, could be ~reasonably large~ (4MiB per 2TiB) and
we could have almost arbitrarily many -- though expected use case is
maybe 1-2 bitmaps per drive (or perhaps 1-2 bitmaps per node) as our
expected eventual use case.

I don't really have an answer for why we haven't pursued this other than
"We already have two unreviewed RFC series for migrating these, why are
we going to write a third?"

--js

>> How: There are two competing designs, see below.
>>
>>
>> Design Option #1: Live Migration
>>
>> Just like block data and ram, we make an initial pass over the data and
>> then continue to re-transmit data as necessary when block data becomes
>> dirtied again.
>>
>> This is a simple, bog-standard approach that mimics pretty closely how
>> other systems are migrated.
>>
>> The series is here from November:
>> https://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg02717.html
>>
>> Most of the block-specific stuff has been reviewed, but it never got any
>> reviews by the migration maintainers. It's reasonably rotted by this
>> point, but it probably would not be a herculean effort to revive it.
>>
>>
>> Design Option #2: "Postcopy" Migration
>>
>> https://lists.nongnu.org/archive/html/qemu-devel/2016-02/msg02793.html
>>
>> The concept here is that incremental backup data can be treated simply
>> as best-effort; if it is lost, it's not a big deal. We can reconstitute
>> the data or simply start a new incremental backup sync point with a full
>> backup.
>>
>> The idea then is that instead of the incremental live migration, we just
>> wait to copy the bitmap until after the pivot and send it all at once.
>> This is faster and a bit more efficient, and will scale pretty nicely to
>> even quite large bitmaps.
>>
>>
>>
>> What I'd like from you: a broad acknowledgment of whether or not you
>> feel the Postcopy solution here is tenable, so we know which solution to
>> pursue. If we can get an ACK to one or the other method, we can
>> exhaustively review it from our end before handing it back to you for a
>> comprehensive migration review. We would like to see this feature hit
>> 2.6 if possible as the designs have been on-list for quite some time.
>>
>> Thanks,
>> --John Snow
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> 

      reply	other threads:[~2016-03-02 17:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-26 23:28 [Qemu-devel] Migration design planning John Snow
2016-03-01 13:47 ` Juan Quintela
2016-03-01 15:24   ` Vladimir Sementsov-Ogievskiy
2016-03-01 19:11     ` John Snow
2016-03-01 18:54   ` John Snow
2016-03-02 16:46 ` Dr. David Alan Gilbert
2016-03-02 17:23   ` John Snow [this message]

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=56D721AD.6010302@redhat.com \
    --to=jsnow@redhat.com \
    --cc=den@openvz.org \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@parallels.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 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.