{"id":636,"date":"2013-01-24T21:44:00","date_gmt":"2013-01-24T19:44:00","guid":{"rendered":"https:\/\/lisas.de\/~adrian\/posts\/2013-Jan-24-process-migration-coming-to-fedora-19-probably.html"},"modified":"2026-03-30T22:41:24","modified_gmt":"2026-03-30T20:41:24","slug":"process-migration-coming-to-fedora-19-probably","status":"publish","type":"post","link":"https:\/\/lisas.de\/luges\/index.php\/2013\/01\/24\/process-migration-coming-to-fedora-19-probably\/","title":{"rendered":"Process Migration coming to Fedora 19 (probably)"},"content":{"rendered":"<p>With the recent <a href=\"https:\/\/bugzilla.redhat.com\/show_bug.cgi?id=869618\">approved review<\/a> of the package <a href=\"https:\/\/admin.fedoraproject.org\/pkgdb\/acls\/name\/crtools\">crtools<\/a> in Fedora I have made a feature proposal for <a href=\"https:\/\/fedoraproject.org\/wiki\/Features\/Checkpoint_Restore\">checkpoint\/restore<\/a>.<\/p>\n<p>To test checkpoint\/restore on Fedora you need to run the current development version of Fedora and install crtools using yum (<code>yum install crtools<\/code>). Until it is decided if it actually will be a Fedora 19 feature and the necessary changes in the Fedora kernel packages have been implemented it is necessary to install a kernel which is not in the repository. I have built a kernel in Fedora&#8217;s buildsystem which enables the following config options: <code>CHECKPOINT_RESTORE, NAMESPACES, EXPERT<\/code>.<\/p>\n<p>A kernel with these changes enabled is available from koji as a scratch build: <a href=\"http:\/\/koji.fedoraproject.org\/koji\/taskinfo?taskID=4899525\">http:\/\/koji.fedoraproject.org\/koji\/taskinfo?taskID=4899525<\/a><\/p>\n<p>After installing this kernel I am able to migrate a process from one Fedora system to another. For my test case I am migrating a UDP ping pong (<code>udpp.c<\/code>) program from one system to another while communicating with a third system.<\/p>\n<p><a href=\"http:\/\/lisas.de\/~adrian\/images\/udpp-migration.png\"><img decoding=\"async\" alt=\"udpp\" src=\"http:\/\/lisas.de\/~adrian\/images\/udpp-migration.png\" title=\"udpp\"><\/a><\/p>\n<p><code>udpp<\/code> is running in server mode on <code>129.143.116.10<\/code> and on <code>134.108.34.90<\/code> <code>udpp<\/code> is started in client mode. After a short time I am migrating, with the help of <code>crtools<\/code>, the <code>udpp<\/code> client to <code>85.214.67.247<\/code>. The following is part of the output on the <code>udpp<\/code> server:<\/p>\n<p><code>--&gt;<\/code><\/p>\n<p>Received ping packet from 134.108.34.90:38374<br \/> Data: This is ping packet 6<\/p>\n<p>Sending pong packet 6<br \/> &lt;&#8211;<br \/> &#8211;&gt;<\/p>\n<p>Received ping packet from 134.108.34.90:38374<br \/> Data: This is ping packet 7<\/p>\n<p>Sending pong packet 7<br \/> &lt;&#8211;<br \/> &#8211;&gt;<\/p>\n<p>Received ping packet from 85.214.67.247:38374<br \/> Data: This is ping packet 8<\/p>\n<p>Sending pong packet 8<br \/> &lt;&#8211;<br \/> &#8211;&gt;<\/p>\n<p>Received ping packet from 85.214.67.247:38374<br \/> Data: This is ping packet 9<\/p>\n<p>Sending pong packet 9<br \/> &lt;&#8211;<br \/> <\/tt><\/p>\n<p>So with only little changes to the kernel configuration it is possible to migrate a process by checkpointing and restoring a process with the help of <code>crtools<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the recent approved review of the package crtools in Fedora I have made a feature proposal for checkpoint\/restore. To test checkpoint\/restore on Fedora you need to run the current development version of Fedora and install crtools using yum (yum install crtools). Until it is decided if it actually will be a Fedora 19 feature [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-636","post","type-post","status-publish","format-standard","hentry","category-luges"],"_links":{"self":[{"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/posts\/636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/comments?post=636"}],"version-history":[{"count":4,"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/posts\/636\/revisions"}],"predecessor-version":[{"id":1323,"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/posts\/636\/revisions\/1323"}],"wp:attachment":[{"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/media?parent=636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/categories?post=636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lisas.de\/luges\/index.php\/wp-json\/wp\/v2\/tags?post=636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}