qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC 00/12] Qorum disk image corruption resiliency


From: Blue Swirl
Subject: Re: [Qemu-devel] [RFC 00/12] Qorum disk image corruption resiliency
Date: Fri, 3 Aug 2012 16:14:51 +0000

On Thu, Aug 2, 2012 at 10:16 AM, Benoît Canet <address@hidden> wrote:
> This patchset create a block driver implementing a qorum using three qemu disk
> images. Writes are mirrored on the three files.
> For the reading part the three files are read at the same time and a vote is
> done to determine which is the majoritary qiov version. It then return this
> majoritary version to the upper layers.
> When three differents versions of the data are returned by the lower layer the
> qorum is broken and the read return -EIO.

It would be pretty easy to make the number of nodes and quorum
threshold values for both read and write selectable. Then you could
have for example 100 nodes and write quorum at 51 (for example, 49
nodes offline). Obviously writing the same data 100 times sequentially
would not give very high performance but it's a start.

>
> The goal of this patchset is to be turned in a QEMU block filter living just
> above raw-*.c and below qcow2/qed when the required infrastructure will be 
> done.
>
> Main use of this feature will be people using NFS appliances which can be
> subjected to bitflip errors.

I think this would give pretty easy way to keep distributed replicas in synch.

>
> usage: -drive file=qorum:image1.raw:image2.raw:image3.raw,if=virtio,cache=none
>
> Benoît Canet (12):
>   qorum: Add GPL v2+ header file.
>   qorum: Add QorumSingleAIOCB and QorumAIOCB.
>   qorum: Create BDRVQorumState and BlkDriver and do init.
>   qorum: Add qorum_open().
>   qorum: Add qorum_close().
>   qorum: Add qorum_getlength().
>   qorum: Add qorum_aio_writev and its dependencies.
>   blkverify: Make blkverify_iovec_clone() and blkverify_iovec_compare()
>     public
>   qorum: Add qorum_co_flush().
>   qorum: Add qorum_aio_readv.
>   qorum: Add qorum mechanism.
>   qorum: build feature into QEMU.
>
>  block/Makefile.objs |    1 +
>  block/blkverify.c   |    8 +-
>  block/qorum.c       |  393 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 400 insertions(+), 2 deletions(-)
>  create mode 100644 block/qorum.c
>
> --
> 1.7.9.5
>
>



reply via email to

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