qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH 1/5] block: Add blklogwrites


From: Stefan Hajnoczi
Subject: Re: [Qemu-block] [PATCH 1/5] block: Add blklogwrites
Date: Fri, 1 Jun 2018 14:32:02 +0100
User-agent: Mutt/1.9.5 (2018-04-13)

On Fri, Jun 01, 2018 at 12:17:19AM +0300, Ari Sundholm wrote:
> From: Aapo Vienamo <address@hidden>

Thanks for the patch!

> Implements a block device write logging system, similar to Linux kernel
> device mapper dm-log-writes. The write operations that are performed
> on a block device are logged to a file or another block device. The
> write log format is identical to the dm-log-writes format. Currently,
> log markers are not supported.
> 
> This functionality can be used for fail-safe and fs consistency
> testing. By implementing it in qemu, tests utilizing write logs can be
> be used to test non-Linux drivers and older kernels.

This patch doesn't implement the same semantics as dm-log-writes, where
only completed writes are logged to make fs consistency testing easier.
If you intend to use it for this purpose, shouldn't it act the same way
as dm-log-writes?

> The implementation is based on the blkverify and blkdebug block drivers.

This functionality overlaps with existing block drivers.  In the
long-term people want to observe I/O requests in various ways beyond
what the dm-log-writes offers.  Therefore I'd like to suggest a
different approach that extends the quorum driver instead:

Add a read-pattern=first parameter to the block/quorum.c driver so it
only reads from the first child.  QEMU can be launched with quorum and
NBD so that writes and flushes are mirrored to the external NBD server.

Any file format or online analysis can be implemented in the NBD server.
There are a number of NBD plugins here:
https://github.com/libguestfs/nbdkit

I think sending the writes and flushes over NBD is more flexible.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]