guest-fsfreeze-freeze freezes all mounted block devices

Peter Krempa pkrempa at
Mon Feb 17 09:19:13 UTC 2020

On Mon, Feb 17, 2020 at 10:03:27 +0100, Marc Roos wrote:
> Hi Peter,
> Should I assume that the virsh domfsfreeze, does not require the 
> qemu-agent service in the guest?

No. That's the official way how to drive the "guest-fsfreeze-freeze"
agent command via libvirt, thus you must have the guest agent the same
way as you used it before.

Using qemu-agent-command is a backdoor for testing arbitrary commands
and thus you can break things. You are on your own if stuff breaks using
that approach.

> PS. I couldn't find the result. Afaik it looks like it is returning the 
> amount of frozen/thawed filesystem's

qemu.git/gqa/qapi-schema.json says:

# @guest-fsfreeze-freeze:
# Sync and freeze all freezable, local guest filesystems. If this
# command succeeded, you may call @guest-fsfreeze-thaw later to
# unfreeze.
# Note: On Windows, the command is implemented with the help of a
# Volume Shadow-copy Service DLL helper. The frozen state is limited
# for up to 10 seconds by VSS.
# Returns: Number of file systems currently frozen. On error, all filesystems
# will be thawed. If no filesystems are frozen as a result of this call,
# then @guest-fsfreeze-status will remain "thawed" and calling
# @guest-fsfreeze-thaw is not necessary.
# Since: 0.15.0

You might also want to have a look at 'guest-fsfreeze-freeze-list'.

> -----Original Message-----
> Cc: libvirt-users
> Subject: Re: guest-fsfreeze-freeze freezes all mounted block devices
> On Fri, Feb 14, 2020 at 22:14:55 +0100, Marc Roos wrote:
> > 
> > I wondered if anyone here can confirm that
> > 
> > virsh qemu-agent-command domain '{"execute":"guest-fsfreeze-freeze"}'
> Note that libvirt implements this directly via 'virsh domfsfreeze'. This 
> is the corresponding man page entry:
>   domfsfreeze domain [[--mountpoint] mountpoint...]
>       Freeze mounted filesystems within a running domain to prepare for 
> consistent snapshots.
>       The --mountpoint option takes a parameter mountpoint, which is a 
> mount point path of the filesystem to be frozen.
>       This option can occur multiple times. If this is not specified, 
> every mounted filesystem is frozen.
> > Freezes all mounted block devices filesystems. So if I use 4 block 
> > devices they are all frozen for snapshotting. Or just the root fs?

As a side note. For snapshotting via virsh snapshot-create use the
--quiesce option which does what you want or the virsh command with
arguments if you don't want to freeze everything.

> Since you are using agent passthrough where libvirt doesn't do any 
> interpretation of what happens please refer to the appropriate QEMU 
> agent documentation for the semantics of the command you've used.

More information about the libvirt-users mailing list