From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T3Sa0-0003t4-Et for qemu-devel@nongnu.org; Mon, 20 Aug 2012 10:03:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T3SZs-0003Uj-MT for qemu-devel@nongnu.org; Mon, 20 Aug 2012 10:03:44 -0400 Received: from paradis.irqsave.net ([109.190.18.76]:55515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T3SZs-0003Tz-7B for qemu-devel@nongnu.org; Mon, 20 Aug 2012 10:03:36 -0400 Date: Mon, 20 Aug 2012 16:03:23 +0200 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20120820140322.GB9290@irqsave.net> References: <1344953651-16622-1-git-send-email-benoit@irqsave.net> <20120820101229.GA2218@irqsave.net> <20120820114207.GA4197@irqsave.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC V3 0/9] Quorum disk image corruption resiliency List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: =?iso-8859-1?Q?Beno=EEt?= Canet , kwolf@redhat.com, =?iso-8859-1?Q?Beno=EEt?= Canet , stefanha@linux.vnet.ibm.com, qemu-devel@nongnu.org, blauwirbel@gmail.com, anthony@codemonkey.ws, pbonzini@redhat.com, eblake@redhat.com, afaerber@suse.de Le Monday 20 Aug 2012 =E0 13:56:53 (+0100), Stefan Hajnoczi a =E9crit : > On Mon, Aug 20, 2012 at 12:42 PM, Beno=EEt Canet wrote: > > > > Le Monday 20 Aug 2012 =E0 12:24:33 (+0100), Stefan Hajnoczi a =E9crit= : > >> On Mon, Aug 20, 2012 at 12:23 PM, Stefan Hajnoczi wrote: > >> > On Mon, Aug 20, 2012 at 11:12 AM, Beno=EEt Canet wrote: > >> >> Le Tuesday 14 Aug 2012 =E0 16:14:02 (+0200), Beno=EEt Canet a =E9= crit : > >> >>> This patchset create a block driver implementing a quorum using = m qemu disk > >> >>> images. Writes are mirrored on the m files. > >> >>> For the reading part the m files are read at the same time and a= vote is > >> >>> done to determine if a qiov version is present n or more times. = It then return > >> >>> this majority version to the upper layers. > >> >>> When i < n 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 infrastructu= re will be done. > >> >>> > >> >>> Main use of this feature will be people using NFS appliances whi= ch can be > >> >>> subjected to bitflip errors. > >> >>> > >> >>> This patchset can be used to replace blkverify and the out of tr= ee blkmirror. > >> >>> > >> >>> usage: -drive file=3Dquorum:n/m:image_1.raw:...:image_m.raw,if=3D= virtio,cache=3Dnone > >> >> > >> >> stefanha: I am wondering what would be needed to do in order to h= ave COR and streaming working > >> >> with quorum.c ? > >> > > >> > .bdrv_is_allocated()/.bdrv_co_is_allocated() needs to be supported= by > >> > block/quorum.c. Have you tried it and found a problem? > >> > >> Just want to confirm you are thinking about image streaming on top o= f > >> quorum? Or are you thinking about streaming underneath quorum? > > > > I am thinking about streaming with quorum on top of a bunch of backin= g files. > > ie: data landing into the higher level backing file living just under= quorum. >=20 > If there are backing files then there must be qcow2 or another image > format on top of quorum: >=20 > qcow2 ("virtio0") > +------ foo.img (file) > +------ quorum (backing_hd) > +------- backing_a.img > +------- backing_b.img > +------- backing_c.img >=20 > .bdrv_is_allocated()/.bdrv_co_is_allocated() must be supported by quoru= m. This seems like a low hanging fruit. Too bad we cannot create new snapshot of quorum file easily without full block filter support in qemu. Am I right ? Beno=EEt >=20 > Stefan