[libvirt-users] [libvirt] [LXC] Tyring to locate livbvirt operations for LXC relocation

From looking into lxcDriver object (defined under /src/lxc/xlc_driver.c in
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).. 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? 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

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 :|

From:
"Daniel P. Berrange" <berrange@redhat.com>
To:
Avi Weit/Haifa/IBM@IBMIL
Cc:
libvirt-users@redhat.com
Date:
04/02/2010 03:45 PM
Subject:
Re: [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
Hi Daniel, I wanted to ask on whether virDomainSave/Restore functions of libvirt are implemented now for the LXC containers? If yes, what libivrt version should I install please? Thanks, - Avi "Daniel P. Berrange" <berrange@redhat.com> wrote on 04/02/2010 03:44:49 PM: 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 :|
participants (2)
-
Avi Weit
-
Daniel P. Berrange