This patch series adds support for saving an running lxc domain's state into files with lxcDomainSave and restore afterwards from files with lxcDomainRestore. Usage: virsh save [domain-name] [domain-id or domain-uuid] [directory name] I use CRIU tool (https://criu.org/Main_Page), that offers checkpoint/restore functionality for containers in userspace. For the time, I have tried successfully the C/R procedure for simple sh containers and OS containers. I'll mention some notes/issues here: *I have working C/R only for non systemd hosts (on systemd host I was facing problems with CRIU). *I have not done anything for container networking. Thats should be done with --veth-pair IN=OUT option in CRIU. *In new distros, where efivars mountpoint exists, CRIU dump fails. *The only tty restored is /dev/tty1. I'll fix this in another patch, to allow more ttys. *Currently for things to work, I have slightly modified criu source. That is in criu master I have the following diff: diff --git a/criu/tty.c b/criu/tty.c index 302dd54..2226484 100644 --- a/criu/tty.c +++ b/criu/tty.c @@ -1394,8 +1394,10 @@ static int verify_info(struct tty_info *info) */ if (term_opts_missing_any(info)) { if (tty_is_master(info)) { + /* pr_err("Corrupted master peer %x\n", info->tfe->id); return -1; + */ } else if (!term_opts_missing_all(info)) { pr_err("Corrupted slave peer %x\n", info->tfe->id); return -1; Lastly, I have ready a patch that adds support for migration but I wait for feedback on this series, and I'll send the migration one later. Anyway, any comments here are more than welcome. ps: That is a work in terms of my GSoC 2016 project. Katerina Koukiou (5): Include criu support in autotools lxc: make container's init process session leader lxc: adds checkpoint and restore helper functions lxc: adjusted libvirt-lxc process to add restore mode to it. lxc: adds save and restore support configure.ac | 8 ++ po/POTFILES.in | 1 + src/Makefile.am | 6 +- src/lxc/lxc_container.c | 208 ++++++++++++++++++++++++++++++++++-- src/lxc/lxc_container.h | 3 +- src/lxc/lxc_controller.c | 109 +++++++++++++++++-- src/lxc/lxc_criu.c | 273 +++++++++++++++++++++++++++++++++++++++++++++++ src/lxc/lxc_criu.h | 34 ++++++ src/lxc/lxc_driver.c | 238 ++++++++++++++++++++++++++++++++++++++++- src/lxc/lxc_process.c | 23 +++- src/lxc/lxc_process.h | 1 + 11 files changed, 883 insertions(+), 21 deletions(-) create mode 100644 src/lxc/lxc_criu.c create mode 100644 src/lxc/lxc_criu.h -- 2.7.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list