qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC V3 0/9] Quorum disk image corruption resiliency


From: Benoît Canet
Subject: Re: [Qemu-devel] [RFC V3 0/9] Quorum disk image corruption resiliency
Date: Mon, 20 Aug 2012 16:03:23 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

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 <address@hidden> 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 <address@hidden> wrote:
> >> > On Mon, Aug 20, 2012 at 11:12 AM, Benoît Canet <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]