public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: "Spensky, Chad - 0559 - MITLL" <chad.spensky@ll.mit.edu>
Cc: Stefan Hajnoczi <stefanha@gmail.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: KVM Block Device Driver
Date: Wed, 14 Aug 2013 20:16:36 +0800	[thread overview]
Message-ID: <20130814121636.GA23136@localhost.localdomain> (raw)
In-Reply-To: <CE30E1FB.E01E%chad.spensky@ll.mit.edu>

On Wed, 08/14 07:29, Spensky, Chad - 0559 - MITLL wrote:
> Stefan, Fam,
> 
>   We are trying to keep an active shadow copy while the system is running
> without any need for pausing.  More precisely we want to log every
> individual access to the drive into a database so that the entire stream
> of accesses could be replayed at a later time.
> 
There's no IO request log infrastructure in QEMU for now. What
drive-mirror can do is to repetitively send changed sectors since last
sending point, but it's not in guest request order or operation size, it
works just with a dirty bitmap.

In your methodology you didn't mention the hook you worked in block.c,
but I think it is necessary to hack block.c to log every r/w access to
the drive, I think you synchronous each write to the shadow image,
right?
> 
> 
> On 8/14/13 6:05 AM, "Stefan Hajnoczi" <stefanha@gmail.com> wrote:
> 
> >On Wed, Aug 14, 2013 at 10:40:06AM +0800, Fam Zheng wrote:
> >> On Tue, 08/13 16:13, Spensky, Chad - 0559 - MITLL wrote:
> >> > Hi All,
> >> > 
> >> >   I'm working with some disk introspection on KVM, and we trying to
> >>create
> >> > a shadow image of the disk.  We've hooked the functions in block.c, in
> >> > particular bdrv_aio_writev.  However we are seeing writes go through,
> >> > pausing the VM, and the comparing our shadow image with the actual VM
> >> > image, and they aren't 100% synced up.  The first 1-2 sectors appear
> >>to be
> >> > always be correct, however, after that, there are sometimes some
> >> > discrepancies.  I believe we have exhausted most obvious bugs (malloc
> >> > bugs, incorrect size calculations etc.).  Has anyone had any
> >>experience
> >> > with this or have any insights?
> >> > 
> >> > Our methodology is as follows:
> >> >  1. Boot the VM.
> >> >  2. Pause VM.
> >> >  3. Copy the disk to our shadow image.
> >> 
> >> How do you copy the disk, from guest or host?
> >> 
> >> >  4. Perform very few reads/writes.
> >> 
> >> Did you flush to disk?
> >> 
> >> >  5. Pause VM.
> >> >  6. Compare shadow copy with active vm disk.
> >> > 
> >> >  And this is where we are seeing discrepancies.  Any help is much
> >> > appreciated!  We are running on Ubuntu 12.04 with a modified Debian
> >>build.
> >> > 
> >> >  - Chad
> >> > 
> >> > -- 
> >> > Chad S. Spensky
> >> > 
> >> 
> >> I think drive-backup command does just what you want, it creates a image
> >> and copy-on-write date from guest disk to the target, without pausing
> >> VM.
> >
> >Or perhaps drive-mirror.
> >
> >Maybe Chad can explain what the use case is.  There is probably an
> >existing command that does this or that could be extended to do this
> >safely.
> >
> >Stefan



  reply	other threads:[~2013-08-14 12:16 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-13 20:13 KVM Block Device Driver Spensky, Chad - 0559 - MITLL
2013-08-14  2:40 ` Fam Zheng
2013-08-14 10:05   ` Stefan Hajnoczi
2013-08-14 11:29     ` Spensky, Chad - 0559 - MITLL
2013-08-14 12:16       ` Fam Zheng [this message]
2013-08-14 12:19         ` Spensky, Chad - 0559 - MITLL
2013-08-14 12:35           ` Fam Zheng
2013-08-14 14:07       ` Stefan Hajnoczi
2013-08-14 14:40         ` Wolfgang Richter
2013-08-14 14:43           ` Spensky, Chad - 0559 - MITLL
2013-08-14 15:02             ` Wolfgang Richter
2013-08-14 15:49               ` Wolfgang Richter
2013-08-14 18:44                 ` Spensky, Chad - 0559 - MITLL
2013-08-14 19:42                   ` Wolfgang Richter
2013-08-18 14:04                   ` Paolo Bonzini
2013-08-18 14:48                     ` Wolfgang Richter

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=20130814121636.GA23136@localhost.localdomain \
    --to=famz@redhat.com \
    --cc=chad.spensky@ll.mit.edu \
    --cc=kvm@vger.kernel.org \
    --cc=stefanha@gmail.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