[libvirt] Question about fsfreeze/fsthaw API

Tomoki Sekiyama tomoki.sekiyama at hds.com
Thu Nov 7 15:45:56 UTC 2013


On 11/7/13 4:01 , "Daniel P. Berrange" <berrange at redhat.com> wrote:

>On Thu, Nov 07, 2013 at 09:39:01AM +0100, Michal Privoznik wrote:
>> On 07.11.2013 01:31, Tomoki Sekiyama wrote:
>> > Hi all,
>> > 
>> > Is there any plans to add APIs to execute fsfreeze/fsthaw in qemu
>>guests?
>> > (something like virDomainFSFreeze(domain,timeout,flags) and
>> >                 virDomainFSThaw(domain,timeout,flags))
>> > 
>> > These would be useful in the case a guest has a disk device with its
>>own
>> > snapshot feature, such as cinder volumes in OpenStack configuration.
>> > In such cases, libvirt clients want to issue fsfreeze/fsthaw
>>before/after
>> > taking the disk snapshot.
>> > 
>> > Currently we can execute them using virDomainQemuAgentCommand(). (e.g.
>> > virsh qemu-agent-command dom '{"execute":"guest-fsfreeze-freeze"}' )
>> > 
>> > However, this is exposing internal implementation too much. And it
>> > cannot leverage future implementation for the other hypervisors.
>> > So it would be nice if we have well-defined API for fsfreeze/fsthaw.
>> > 
>> > If there is no plan for these API and this is acceptable, I will try
>>to
>> > implement this.
>> > Any comments are welcome.
>> 
>> I am not aware of somebody wanting these APIs exposed hence I don't know
>> if somebody is working on it. But since there is a clear usage scenario
>> I'd say go for it.
>
>We already support this QEMU agent commands in libvirt. We decided not
>to expose them explicitly as APIs, but instead wire them upto the impl
>of the disk snapshot APIs when VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE is
>used.
>
>Furthermore, OpenStack already has support for using this flag when
>doing snapshots, so I don't think we need any more work here.
>
>Daniel

AFAIK, VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE is used in openstack only when
glusterfs is used as volume backend which uses external qcow2 snapshot.

In the other cases, it uses own implementation instead of libvirt snapshot
API, to exploit native snapshot features of various storages, such as
LVM (over iSCSI), enterprise storages, and so on.
For these cases, fsfreeze API (without taking snapshot) is useful.

Tomoki Sekiyama





More information about the libvir-list mailing list