login
Header Space

 
 

Re: Checkpoint/restart (was Re: [PATCH 0/4] - v2 - Object creation with a specified id)

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Eric W. Biederman <ebiederm@...>
Cc: Kirill Korotaev <dev@...>, <containers@...>, <linux-kernel@...>, Dave Hansen <dave@...>, Alexey Dobriyan <adobriyan@...>, Andrew Morton <akpm@...>, <nick@...>, <Nadia.Derbey@...>, Serge Hallyn <serue@...>
Date: Thursday, July 17, 2008 - 7:09 pm

Eric W. Biederman wrote:

yes, we probably prefer an intermediate representation to some extent, mainly
because we (a) don't want garbage data that we don't use and (b) to make the
task of converting from old to new kernel version easier.

But only for these two reasons. I see zero value in avoiding representation
used internally by the kernel for the sake of avoiding it. In fact, if it's
that much easier to stick to that representation in a specific case -- so be
it. There shall be userland utilities that will be able to inspect the contents
(like those that can inspect the contents of internal file system data).


Not all state can be inferred; and the point is that I don't want to need
to chase the kernel devs and add such interfaces every time some state is
added.


ugh ... not only tedious - but not entirely correct: deterministic replay is
a very complicated problem (but thrilling) !  and you'll need to log/record
everything during the execution :(


limiting in what sense ?


yes;  in practice, you mostly care about memory contents that have
changed in the interim, as saving/transfering memory is by far the
most time consuming component of a checkpoint/migration.

So you must track which memory pages were modified between successive
attempts to complete the migration. As for the rest - you can either
checkpoint all the rest during the final snapshot, or save all of them
at the beginning and track changes to them too.


These two are important factors in my reasoning to use in kernel
implementation. Such implementation should allow concurrency (e.g.
using kernel threads), as well as the required atomicity to track
the changes between successive iterations.


So now it seems that we agree on that a kernel approach is suitable.


what do you mean by "isolate" and "unisolate" ?


why different files ?  why not a single file, streamed - beneficial
for live migration, for example, or pass the data through filters
(encryption, signature, conversion between kernel versions, etc).


if you let the processes in a container to proceed execution (even
if isolated) during a checkpoint, you will be unable to capture a
state that is consistent among all processes in that container. So
you must freeze them somehow.


I am not aware of any simple way that can prevent any sort of interaction
between processes (by simple, I mean like unplugging a cable). For
example, how would you prevent shared memory alterations ?  signals that
are raised due to async IO completion ? and many more examples.




you mean distributed checkpoint/restart ?  not an easy job either, and
should not, IMHO, be done at kernel level. Perhaps you'll find this
paper interesting:
http://www.ncl.cs.columbia.edu/publications/cluster2005_fordist.pdf


can you please define "isolation" in this context ?  "freezing" is very
simple: the processes cannot do anything while they are checkpointed.
(in the case of live migration, they aren't frozen except for very short
time - aka downtime).



This last point is interesting and important, but not high priority.
It is always possible to take a checkpoint image and - in user space -
convert it to a format that is readable by debuggers. So it should not
be a guiding factor in designing the checkpoint/restart mechanism.

Oren.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: Checkpoint/restart (was Re: [PATCH 0/4] - v2 - Object c..., Oren Laadan, (Thu Jul 17, 7:09 pm)
Re: Checkpoint/restart (was Re: [PATCH 0/4] - v2 - Object cr..., Eric W. Biederman, (Thu Jul 10, 2:55 pm)
Re: Checkpoint/restart (was Re: [PATCH 0/4] - v2 - Object cr..., Eric W. Biederman, (Thu Jul 10, 3:21 pm)
speck-geostationary