Message ID | 1469622402-8634-1-git-send-email-aderumier@odiso.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/27/2016 05:26 AM, Alexandre Derumier wrote: > ceph force writethrough until a flush is detected. > With cache=unsafe, we never send flush. > So we need to tell to ceph > to set rbd_cache_writethrough_until_flush=false in this case. > > This speedup a lot qemu-img convert which use cache=unsafe by default > > Signed-off-by: Alexandre Derumier <aderumier@odiso.com> Sorry for the delay - this is correct and needed since this option appeared by default in Ceph hammer. Reviewed-by: Josh Durgin <jdurgin@redhat.com> > --- > block/rbd.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/block/rbd.c b/block/rbd.c > index 0106fea..f3af6c8 100644 > --- a/block/rbd.c > +++ b/block/rbd.c > @@ -552,6 +552,10 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags, > rados_conf_set(s->cluster, "rbd_cache", "true"); > } > > + if (flags & BDRV_O_NO_FLUSH) { > + rados_conf_set(s->cluster, "rbd_cache_writethrough_until_flush", "false"); > + } > + > r = rados_connect(s->cluster); > if (r < 0) { > error_setg_errno(errp, -r, "error connecting"); >
diff --git a/block/rbd.c b/block/rbd.c index 0106fea..f3af6c8 100644 --- a/block/rbd.c +++ b/block/rbd.c @@ -552,6 +552,10 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags, rados_conf_set(s->cluster, "rbd_cache", "true"); } + if (flags & BDRV_O_NO_FLUSH) { + rados_conf_set(s->cluster, "rbd_cache_writethrough_until_flush", "false"); + } + r = rados_connect(s->cluster); if (r < 0) { error_setg_errno(errp, -r, "error connecting");
ceph force writethrough until a flush is detected. With cache=unsafe, we never send flush. So we need to tell to ceph to set rbd_cache_writethrough_until_flush=false in this case. This speedup a lot qemu-img convert which use cache=unsafe by default Signed-off-by: Alexandre Derumier <aderumier@odiso.com> --- block/rbd.c | 4 ++++ 1 file changed, 4 insertions(+)