[systemd-devel] systemd and process migration

Adrian Reber adrian at lisas.de
Mon Apr 20 05:59:41 PDT 2015


Using CRIU I have been migrating processes from one system to another
for the last few months (even years). I am now interested in migrating
processes under systemd's control. Before starting to look how to make
it work I wanted to know if there has been any discussion if and how
systemd and CRIU can work together?

Dumping a process under systemd's control should be no problem.
After criu has dumped the process (and killed it) systemd should know
that it does not need to restart the process, but even if the process is
restarted by systemd it does not hurt the process migration.

The interesting part happens on the system where the process wants to be
migrated to. After the process has been dumped and transfered from the
source system to the destination system it needs to be restarted. So far
this works with different tested processes (postgresql is my current
test process). If I want to restore the process as a systemd child
process I have the problem that the process would have to be re-parented
to systemd after restarting which is not possible in Linux. Therefore I
need the help of systemd.

My plan now would be to transfer the process to the destination
system and tell systemd I want to restore a process which should be
under systemd's control after the restore has completed. Therefore
systemd needs to run criu with the option to restore the new process as
a criu sibling. Thus systemd would be the correct parent process.

Is this something which would be useful to integrate into systemd?
I have some ideas how this could be implemented and how the user
interfaces could look like. Before going in too much detail I want to
find out if this is a direction which makes sense.

		Adrian


More information about the systemd-devel mailing list