[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/11] Quorum disk image corruption resiliency
From: |
Benoît Canet |
Subject: |
[Qemu-devel] [PATCH 00/11] Quorum disk image corruption resiliency |
Date: |
Tue, 23 Oct 2012 14:23:38 +0200 |
This patchset is posted for inclusion into 1.3.
It create a block driver implementing a quorum using total qemu disk
images. Writes are mirrored on the $total files.
For the reading part the $total files are read at the same time and a vote is
done to determine if a qiov version is present $threshold or more times. It then
return this majority version to the upper layers.
When i < $threshold versions of the data are returned by the lower layer the
quorum 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.
This patchset can be used to replace blkverify and the out of tree blkmirror.
usage: -drive
file=quorum:threshold/total:image_1.raw:...:image_total.raw,if=virtio,cache=none
since latest RFC:
Eric Blake: revert back separator to ":"
rewrite quorum_getlength
Benoît Canet: use memcmp to compare iovec excepted for the blkverify case
use strstart to parse argument in open
Benoît Canet (11):
quorum: Create quorum.c, add QuorumSingleAIOCB and QuorumAIOCB.
quorum: Create BDRVQuorumState and BlkDriver and do init.
quorum: Add quorum_open() and quorum_close().
quorum: Add quorum_aio_writev and its dependencies.
blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from
blkverify.
quorum: Add quorum_co_flush().
quorum: Add quorum_aio_readv.
quorum: Add quorum mechanism.
quorum: Add quorum_getlength().
quorum: Add quorum_invalidate_cache().
quorum: Add quorum_co_is_allocated.
block/Makefile.objs | 1 +
block/blkverify.c | 108 +-------
block/quorum.c | 689 +++++++++++++++++++++++++++++++++++++++++++++++++++
cutils.c | 103 ++++++++
qemu-common.h | 2 +
5 files changed, 797 insertions(+), 106 deletions(-)
create mode 100644 block/quorum.c
--
1.7.10.4
- [Qemu-devel] [PATCH 00/11] Quorum disk image corruption resiliency,
Benoît Canet <=
- [Qemu-devel] [PATCH 02/11] quorum: Create BDRVQuorumState and BlkDriver and do init., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 01/11] quorum: Create quorum .c, add QuorumSingleAIOCB and QuorumAIOCB., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 04/11] quorum: Add quorum_aio_writev and its dependencies., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 03/11] quorum: Add quorum_open() and quorum_close()., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 06/11] quorum: Add quorum_co_flush()., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 07/11] quorum: Add quorum_aio_readv., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 05/11] blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify., Benoît Canet, 2012/10/23
- [Qemu-devel] [PATCH 10/11] quorum: Add quorum_invalidate_cache()., Benoît Canet, 2012/10/23