[libvirt] [PATCH v5 0/5] Expose FSFreeze/FSThaw within the guest as API

Tomoki Sekiyama tomoki.sekiyama at hds.com
Mon Apr 21 21:54:43 UTC 2014


Any comments for this patchset?


On 4/3/14 11:39 , "Tomoki Sekiyama" <tomoki.sekiyama at hds.com> wrote:
>Hello,
>
>This is patchset v5 to add FSFreeze/FSThaw API for custom disk
>snapshotting.
>
>Changes to v4:
> * add disks and ndisks parameter to specify disks to be frozen/thawed
> * make fsfreeze requests nestable
> * change api version to 1.2.4
> (v4: 
>https://www.redhat.com/archives/libvir-list/2014-March/msg01674.html )
>
>=== Description ===
>
>Currently FSFreeze and FSThaw are supported by qemu guest agent and they
>are
>used internally in snapshot-create command with --quiesce option.
>However, when users want to utilize the native snapshot feature of storage
>devices (such as LVM over iSCSI, enterprise storage appliances, etc.),
>they need to issue fsfreeze command separately from libvirt-driven
>snapshots.
>(OpenStack cinder provides these storages' snapshot feature, but it cannot
> quiesce the guest filesystems automatically for now.)
>
>Although virDomainQemuGuestAgent() API could be used for this purpose, it
>is only for debugging and is not supported officially.
>
>This patchset adds virDomainFSFreeze()/virDomainFSThaw() APIs and virsh
>domfsfreeze/domfsthaw commands to enable the users to freeze and thaw
>domain's filesystems cleanly.
>
>  <updated>
>The APIs take disks and ndisks parameters, which is a list of disk names
>to be frozen/thawed. If the option is not provided, every mounted
>filesystem is frozen/thawed.
>
>The fsfreeze can be nestable. When fsfreeze requests to a disk are issued
>multiple times, it is not thawed until the fsthaw requests are issued as
>many times as the freeze requests.
>
>Currently, qemu driver doesn't support disks parameter because the guest
>agent doesn't have means to specify disks to be frozen/thawed. Hence, it
>just counts depth of fsfreeze per domain, not per disk, so far.
>  </updated>
>
>The APIs have flags option currently unsupported for future extension.
>---
>
>Tomoki Sekiyama (5):
>      Introduce virDomainFSFreeze() and virDomainFSThaw() public API
>      remote: Implement virDomainFSFreeze and virDomainFSThaw
>      qemu: Track domain quiesced status and make fsfreeze/thaw nestable
>      qemu: Implement virDomainFSFreeze and virDomainFSThaw
>      virsh: Expose new virDomainFSFreeze and virDomainFSThaw API
>
>
> include/libvirt/libvirt.h.in |   10 +++
> src/access/viraccessperm.c   |    2 -
> src/access/viraccessperm.h   |    6 ++
> src/driver.h                 |   14 ++++
> src/libvirt.c                |   92 ++++++++++++++++++++++++
> src/libvirt_public.syms      |    6 ++
> src/qemu/qemu_domain.c       |    6 ++
> src/qemu/qemu_domain.h       |    2 +
> src/qemu/qemu_driver.c       |  159
>++++++++++++++++++++++++++++++++++++++----
> src/remote/remote_driver.c   |    2 +
> src/remote/remote_protocol.x |   30 +++++++-
> src/remote_protocol-structs  |   18 +++++
> src/rpc/gendispatch.pl       |    2 +
> tools/virsh-domain.c         |  128 ++++++++++++++++++++++++++++++++++
> tools/virsh.pod              |   23 ++++++
> 15 files changed, 483 insertions(+), 17 deletions(-)





More information about the libvir-list mailing list