[Libguestfs] Cached filesystem data

Richard W.M. Jones rjones at redhat.com
Sun Sep 14 18:01:09 UTC 2014


On Sun, Sep 14, 2014 at 09:27:46AM +0100, Doug Winter wrote:
> I am trying to use guestfs to mount, read-only, a VDI filesystem that is
> also open, read-write, by a separate Oracle VirtualBox VM.
> 
> Opening the filesystem works fine, however changes made to the
> filesystem in the VirtualBox VM are not reflected in guestfs.
> 
> Even unmounting and then mounting the drive again does not show the
> changes made since the first mount.
> 
> However, shutdown() and then launch() of the guests does then show the
> changes.
> 
> I have tried the drop_caches() call, but this doesn't help either (which
> is kind of unsurprising if unmounting is insufficient).

When I looked into this before, I suspected the reason was because
qemu is caching (or maybe the host kernel).  You could patch the cache
mode (in src/launch-direct.c) so it allows you to use O_DIRECT again
and see if that makes a difference.

In any case yes, unfortunately you need to shutdown and re-launch the
appliance to be sure of seeing changes.

One day in the future qemu will be able to export a consistent
snapshot of a running guest, and move between snapshots.  Work is
being done on this upstream.

> Is there any way of causing guestfs to see the changes made to the
> filesystem without going through the slow shutdown/launch process?

See also guestfs-performance(1).  If it's taking longer than ~ 5 seconds
then there are ways to fix that.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list