From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48514) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VS6QM-00075s-Fv for qemu-devel@nongnu.org; Fri, 04 Oct 2013 10:32:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VS6QG-0004hQ-H5 for qemu-devel@nongnu.org; Fri, 04 Oct 2013 10:32:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:21273) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VS6QG-0004hI-8E for qemu-devel@nongnu.org; Fri, 04 Oct 2013 10:32:04 -0400 Message-ID: <524ED15C.2010005@redhat.com> Date: Fri, 04 Oct 2013 16:31:56 +0200 From: Max Reitz MIME-Version: 1.0 References: <1380717564-11098-1-git-send-email-benoit@irqsave.net> In-Reply-To: <1380717564-11098-1-git-send-email-benoit@irqsave.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH V9 00/11] Quorum block driver List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QmVub8OudCBDYW5ldA==?= Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com On 2013-10-02 14:39, Beno=C3=AEt Canet wrote: > It must be applied on top of "block: Add BlockDriver.bdrv_check_ext_sna= pshot." > > This patchset create a block driver implementing a quorum using total q= emu disk > images. Writes are mirrored on the $total files. > For the reading part the $total files are read at the same time and a v= ote 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 laye= r 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 blkm= irror. > > v9: integrate latests comments from kevin > > Beno=C3=AEt Canet (11): > quorum: Create quorum.c, add QuorumSingleAIOCB and QuorumAIOCB. > quorum: Create BDRVQuorumState and BlkDriver and do init. > quorum: Add quorum_aio_writev and its dependencies. > blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from > blkverify. > quorum: Add quorum_aio_readv. > quorum: Add quorum mechanism. > quorum: Add quorum_getlength(). > quorum: Add quorum_invalidate_cache(). > quorum: Add quorum_co_get_block_status. > quorum: Add quorum_co_flush(). > quorum: Add quorum_open() and quorum_close(). > > block/Makefile.objs | 1 + > block/blkverify.c | 108 +---- > block/quorum.c | 1035 ++++++++++++++++++++++++++++++++++++= +++++++++ > configure | 36 ++ > include/monitor/monitor.h | 2 + > include/qemu-common.h | 2 + > monitor.c | 2 + > util/iov.c | 103 +++++ > 8 files changed, 1183 insertions(+), 106 deletions(-) > create mode 100644 block/quorum.c > Could you add a qemu-iotest if possible? Max