[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC v3] domain snapshot documents



Hi, David
> On Fri, May 16, 2014 at 6:00 PM, Bamvor Jian Zhang <bjzhang@xxxxxxxx> wrote:
>
> > Hi, david
> >
> > > On Thu, May 15, 2014 at 4:58 PM, Bamvor Jian Zhang <bjzhang@xxxxxxxx>
> > wrote:
> > >
> > > > Hi,
> > > >
> > > > here is the third version about domain snapshot documents, the second
> > > > version
> > > > and the first version is here[1][2].
> > ...
> > > > 2, new functions
> > > > there is no common api like libxl_snapshot_xxx. the reason is that
> > > > different
> > > > toolstack may need to different event handling machanism(synchronize or
> > > > asynchronize). and obviously, domain snapshot create need async
> > handler.
> > > > so i
> > > > decide to only provide the sub api for xl and other toolstack(e.g.
> > > > libvirt).
> > > > it make eailer for toolstack to handle the event by themselves.
> > > >
> > > > 1), in libxl/libxl.h
> > > > the implementation will be located in libxl_snapshot.c
> > > > /* disk snapshot api
> > > >  * support create for external and internal disks, support delete for
> > > > internal
> > > >  * snapshot of disks.
> > > >  */
> > > > /* create disk snapshot according to the device name in snapshot
> > array. nb
> > > > is
> > > >  * the number of snapshot array.
> > > >  * use the qmp transaction to ensure all snapshot of disk is coherence.
> > > >  */
> > > > int libxl_disk_snapshot_create(libxl_ctx *ctx, int domid,
> > > >                                libxl_disk_snapshot *snapshot, int nb,
> > > >                                const libxl_asyncop_how *ao_how);
> > > > /* delete number of nb disk snapshot describe in snapshot array
> > > >  */
> > > > int libxl_disk_snapshot_delete(libxl_ctx *ctx, int domid,
> > > >                                libxl_disk_snapshot *snapshot, int nb);
> >
> Are this the only two functions you are exposing?I mean the API?or am I
> getting something wrong?
>
there are functions libxl_qmp_loadvm, libxl_qmp_savevm which is called by
domain internal snapshot create/revert. currently, they are internal functions.
(libxl_intenal.h). but i should expose them, e.g. look like:
int libxl_loadvm(libxl_ctx *ctx, int domid, libxl_domain_snapshot *snapshot,
                 const libxl_asyncop_how *ao_how);
int libxl_savevm(libxl_ctx *ctx, int domid, libxl_domain_snapshot *snapshot,
                 const libxl_asyncop_how *ao_how);

sorry for confuse.

regards

bamvor

> > > >
> > > I think we also need revert libxl_disk_snapshot_revert() here.
> > there are two methods for revert disk snapshot state in qemu: call
> > "loadvm" hmp
> > and "qemu-img snapshot -a". and i will call loadvm for reverting the qemu
> > state
> > and disk state in libxl_snapshot_create.
> > user could revert the dedicate disk snapshot with qemu-img when domain is
> > not
> > running.it seems not a good idea wrap the qemu-img command in libxl.
> >
> > regards
> >
> > bamvor
> >




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.