Le Monday 20 Aug 2012 à 13:56:53 (+0100), Stefan Hajnoczi a écrit : > On Mon, Aug 20, 2012 at 12:42 PM, Benoît Canet <benoit.ca...@irqsave.net> > wrote: > > > > Le Monday 20 Aug 2012 à 12:24:33 (+0100), Stefan Hajnoczi a écrit : > >> On Mon, Aug 20, 2012 at 12:23 PM, Stefan Hajnoczi <stefa...@gmail.com> > >> wrote: > >> > On Mon, Aug 20, 2012 at 11:12 AM, Benoît Canet > >> > <benoit.ca...@irqsave.net> wrote: > >> >> Le Tuesday 14 Aug 2012 à 16:14:02 (+0200), Benoît Canet a é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 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:n/m:image_1.raw:...:image_m.raw,if=virtio,cache=none > >> >> > >> >> stefanha: I am wondering what would be needed to do in order to have > >> >> 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 of > >> quorum? Or are you thinking about streaming underneath quorum? > > > > I am thinking about streaming with quorum on top of a bunch of backing > > files. > > ie: data landing into the higher level backing file living just under > > quorum. > > If there are backing files then there must be qcow2 or another image > format on top of quorum: > > qcow2 ("virtio0") > +------ foo.img (file) > +------ quorum (backing_hd) > +------- backing_a.img > +------- backing_b.img > +------- backing_c.img > > .bdrv_is_allocated()/.bdrv_co_is_allocated() must be supported by quorum.
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ît > > Stefan