On 11.11.2014 22:51, Eric Blake wrote:
On 11/11/2014 01:58 PM, Payes Anand wrote:
> Hi everybody,
>
> I am having a problem with the use of domfsfreeze command.
>
> It is freezing all the filesystems present on the domain,
>
> instead of freezing just the mountpoints provided.
>
> I am issuing the command--
>
> # virsh domfsfreeze <domain> --mountpoint <mountpoint>
>
> Output was-- Froze 3 filesystem(s)
>
>
> I want to freeze a particular mount point on the VM, so that i can
> take a snapshot using my own snapshot feature.
>
> Using library: libvirt 1.2.5
> Using API: QEMU 1.2.5
> Running hypervisor: QEMU 2.0.0
What version of qemu-guest-agent is running in the guest?
qemu-guest-agent doesn't support per-mountpoint freezing until the
introduction of guest-fsfreeze-freeze-list in qemu 2.2 (still unreleased).
>
> --Upgraded libvirt to 1.2.10, but that also didn't solve the problem.
>
> Am i missing something over here?
> Any help would be greatly appreciated.
I wonder if you may have uncovered a libvirt bug. If the guest agent is
not capable of supporting per-mount freezing (because the agent is too
old), the command should fail rather than blindly freezing everything.
But to know for sure, it would be good to find the log messages for the
actual agent commands issued by libvirt, to make sure we were actually
trying to freeze just a single mount point.
Well, even though I agree I don't see way to achieve that. I mean, if
libvirt would probe for qemu-ga commands/capabilities, by the time it
makes a decision guest agent may have been downgraded, crashed,
whatever. There's been some discussion on this topic (unfortunately I
don't recall where currently). This is where guest agent is different to
the monitor tremendously.
Although, I see a way that we could get something reasonable here. If
qemu would tell us whenever somebody (dis-)connects (from)to the virtio
channel. That way we could query the qemu-ga capabilities and make good
decisions. And whenever we see a disconnect, we may just forget the
qemu-ga capabilities and claim guest agent unresponsive (instead of this
ping algorithm I'd came up with).
Michal