[CRIU] criu + threaded program + TCP_REPAIR
Sowmini Varadhan
sowmini.varadhan at oracle.com
Sat Oct 18 14:47:22 PDT 2014
On (10/14/14 14:29), Pavel Emelyanov wrote:
>
> Ah, live migration :) You may be interested in the
> https://github.com/xemul/p.haul
A few questions.. So I tried starting from
https://github.com/xemul/p.haul/wiki/Live-migrating-OVZ-mainstream-container
Some hiccups I ran into..
1. in my ubuntu vm, env was in /usr/bin/env by default, I had to fix up
p.haul-service manually to detect this. (minor errata in p.haul-service?)
2. the HOWTO page does not mention that you need the python-protobuf.socketrpc
package (and s/protobuf-python/python-protobuf)- might be good to call this
out, and I did the apt install of these, but...
3. Various errors like
" File "/home/sowmini/src/p.haul/p_haul_service.py", line 6, in <module>
import rpc_pb2 as cr_rpc"
In each case I had to specify the src package
from protobuf.socketrpc import rpc_pb2 as cr_rpc
Is there something wrong in my env that I need this?
4. where (what apt package/src) to get stats_pb2.py? It wasnt there in
python-protobuf[.socketrpc]
And if I used lxc tools to create the container, but what is the $id
that is expected by p.haul?
In any case, I also tried to just spawn my process from something like
ns_child_exec.c [http://lwn.net/Articles/533492/].
So if I do this:
# ns_child_exec -v -p bash
pidns# iperf -s &
Now, do I criu-dump/restore using the pid of ns_child_exec? Or the
pid(bash)? Or the pid(iperf)? (from default pidns? from the child
pidns?)
If I try to dump using pid(ns_child_exec) I get
root at vm# criu dump -D . -t <pid-of-ns_child_exec> --shell-job --tcp-established
Error (namespaces.c:196): Can't dump nested pid namespace for 15022
Error (namespaces.c:392): Can't make pidns id
so still trying to find the path-of-least-resistance here..
--Sowmini
More information about the CRIU
mailing list