qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 00/12] Qorum disk image corruption resiliency
@ 2012-08-02 10:16 Benoît Canet
  2012-08-02 10:16 ` [Qemu-devel] [RFC 01/12] qorum: Add GPL v2+ header file Benoît Canet
                   ` (14 more replies)
  0 siblings, 15 replies; 25+ messages in thread
From: Benoît Canet @ 2012-08-02 10:16 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, pbonzini, stefanha, Benoît Canet

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.

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.

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

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2012-08-03 19:12 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-02 10:16 [Qemu-devel] [RFC 00/12] Qorum disk image corruption resiliency Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 01/12] qorum: Add GPL v2+ header file Benoît Canet
2012-08-02 14:04   ` Eric Blake
2012-08-02 14:55     ` Benoît Canet
2012-08-02 16:07   ` Andreas Färber
2012-08-02 16:47     ` Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 02/12] qorum: Add QorumSingleAIOCB and QorumAIOCB Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 03/12] qorum: Create BDRVQorumState and BlkDriver and do init Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 04/12] qorum: Add qorum_open() Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 05/12] qorum: Add qorum_close() Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 06/12] qorum: Add qorum_getlength() Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 07/12] qorum: Add qorum_aio_writev and its dependencies Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 08/12] blkverify: Make blkverify_iovec_clone() and blkverify_iovec_compare() public Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 09/12] qorum: Add qorum_co_flush() Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 10/12] qorum: Add qorum_aio_readv Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 11/12] qorum: Add qorum mechanism Benoît Canet
2012-08-02 10:16 ` [Qemu-devel] [RFC 12/12] qorum: build feature into QEMU Benoît Canet
2012-08-02 16:06   ` Andreas Färber
2012-08-02 13:17 ` [Qemu-devel] [RFC 00/12] Qorum disk image corruption resiliency Eric Blake
2012-08-02 13:28   ` Benoît Canet
2012-08-02 18:14 ` Anthony Liguori
2012-08-02 19:22   ` Benoît Canet
2012-08-03  9:21     ` Stefan Hajnoczi
2012-08-03 16:14 ` Blue Swirl
2012-08-03 19:11   ` Benoît Canet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).