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 <aderum...@odiso.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"); -- 2.1.4