Avi Weit
2010-Feb-03 14:03 UTC
[libvirt-users] [libvirt] [LXC] Tyring to locate livbvirt operations for LXC relocation
Hello, I am searching for the libvirt operations for relocating LXC (system or application) containers. LXC relocation mechanism is done by checkpoint / restart. I went over libvirt API documentation and found the following methods: virDomainSave that receives a domain and path to state file. The method saves domain's memory contents into a disk file. virDomainRestore that receives a domain and path to state file. The method restores the domain from the state file created by save operation. Are these the proper methods to use for LXC relocation? I assume I can also use the corresponding operations via virsh (save / restore)..>From looking into lxcDriver object (defined under /src/lxc/xlc_driver.c inlibvirt server source) I can see that NULLs are set in save and restore methods. Does that mean that there is no support for saving and restoring Linux containers? Is there a libvirt patch beyond the kernel patch that needs to be applied? I am using libvirt 0.7.5 and kernel 2.6.31 /* Function Tables */ static virDriver lxcDriver = { VIR_DRV_LXC, /* the number virDrvNo */ "LXC", /* the name of the driver */ lxcOpen, /* open */ lxcClose, /* close */ NULL, /* supports_feature */ NULL, /* type */ lxcVersion, /* version */ NULL, /* libvirtVersion (impl. in libvirt.c) */ virGetHostname, /* getHostname */ NULL, /* getMaxVcpus */ nodeGetInfo, /* nodeGetInfo */ lxcGetCapabilities, /* getCapabilities */ lxcListDomains, /* listDomains */ lxcNumDomains, /* numOfDomains */ lxcDomainCreateAndStart, /* domainCreateXML */ lxcDomainLookupByID, /* domainLookupByID */ lxcDomainLookupByUUID, /* domainLookupByUUID */ lxcDomainLookupByName, /* domainLookupByName */ lxcDomainSuspend, /* domainSuspend */ lxcDomainResume, /* domainResume */ lxcDomainShutdown, /* domainShutdown */ NULL, /* domainSave */ NULL, /* domainRestore */ NULL, /* domainMigratePrepare */ NULL, /* domainMigratePerform */ NULL, /* domainMigrateFinish */ ... ... Thanks, - Avi
Daniel P. Berrange
2010-Feb-04 13:44 UTC
[libvirt-users] [libvirt] [LXC] Tyring to locate livbvirt operations for LXC relocation
On Wed, Feb 03, 2010 at 04:03:10PM +0200, Avi Weit wrote:> > Hello, > > I am searching for the libvirt operations for relocating LXC (system or > application) containers. LXC relocation mechanism is done by checkpoint / > restart. I went over libvirt API documentation and found the following > methods: > > virDomainSave that receives a domain and path to state file. The method > saves domain's memory contents into a disk file. > virDomainRestore that receives a domain and path to state file. The method > restores the domain from the state file created by save operation. > > Are these the proper methods to use for LXC relocation? I assume I can also > use the corresponding operations via virsh (save / restore).. > > >From looking into lxcDriver object (defined under /src/lxc/xlc_driver.c in > libvirt server source) I can see that NULLs are set in save and restore > methods. Does that mean that there is no support for saving and restoring > Linux containers? Is there a libvirt patch beyond the kernel patch that > needs to be applied?That is correct - the virDomainSave/Restore functions are intended to save the running guest/container state to a file or load it from a file, respectively. These operations have not yet been implemented for libvirt's LXC driver. I'm not sure how mature the kernel support for container save/restore is yet, but if it has stabilized sufficiently, then we will obviously accept patches from anyone wanting to try implementing... Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|