[Top][All Lists]

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

[Qemu-devel] 'qemu-nbd' explicit flush

From: Mark Trumpold
Subject: [Qemu-devel] 'qemu-nbd' explicit flush
Date: Tue, 21 May 2013 20:01:10 +0000

Hello all,

I am using ‘qemu-nbd’ and ‘qemu-img’ from the command line to provide ‘qcow2’ 
loop filesystems.  For performance, I have '--cache=writeback' set for the 
qemu-nbd device.

I am having trouble flushing all caches to disk at will; specifically before 
snapshotting the underlying filesystem that hold the ‘qcow2’ images.

    Qemu 1.2.0
    Debian 6.0.5
    Linux kernel 3.3.1 with Qemu patch to enable kernel flushing:

Usage example:
    'qemu-nbd --cache=writeback -c /dev/nbd0 /images/my-qcow.img'
    'mount /dev/nbd0 /my-mount-point'

Everything does flush correctly when I first unmount and then disconnect the 
device; however, in my case I am not able to unmount things before snapshotting.

I tried several approaches externally to flush the device.  For example:
    'mount -o remount,ro /dev/nbd0'
    'blockdev --flushbufs /dev/nbd0'

I have been looking at the Qemu source code and in user space 'nbd.c' in 
routine 'nbd_trip' I see the case 'NBD_CMD_FLUSH' which looks to be called from 
the NBD socket interface.  Here I see 'bdrv_co_flush(exp->bs)' which looks 
promising; however, I don't know how to setup the 'bs' pointer for the call.

Ideally, I would like to add a command line parm to 'qemu-nbd.c' to explicitely 
do the flush, but so far no luck.

I've been struggling with this for some time.  Any guidance would be greatly 

Thank you,
Mark Trumpold

reply via email to

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