[CRIU] Docker Live migration using CRIU
Pavel Emelyanov
xemul at parallels.com
Wed Jan 13 05:16:30 PST 2016
On 01/04/2016 03:54 PM, Vijay Kilari wrote:
> Hi Hui,
>
> On Mon, Jan 4, 2016 at 2:55 PM, Hui Kang <hkang.sunysb at gmail.com> wrote:
>> Hi, Vijay,
>> I just realized that the C/R feature of docker is under extensive
>> development and discussion these days. So it has not been an upstream
>> experimental feature.
>>
>> As of now, will you be able to use the docker version provided in the
>> docker to try the migration feature?
>>
>> https://github.com/xemul/p.haul/blob/master/test/docker/HOWTO
>
> Here it was mentioned to use aufs as storage driver. Is it mandatory for
> live migration?
I wouldn't say it is, but Hui can correct me. AFAIK Aufs is going to be dropped
from Docker at all since overlayfs obsoletes it.
-- Pavel
>>
>> - Hui
>>
>> On Mon, Jan 4, 2016 at 4:35 PM, Vijay Kilari <vijay.kilari at gmail.com> wrote:
>>> Hi Hui,
>>>
>>> I am trying to migrate on the same machine (arm64) . I am running
>>> p.haul service and client on
>>> the same machine.
>>>
>>> After copying pycriu from to /usr/local/lib/python-2.7/ from criu path
>>> and installing
>>> missing python packages like protobuf, ipaddr I finally face below error
>>>
>>> The p_haul_docker.py is now looking for "containers" directory inside
>>> /var/lib/docker/.
>>>
>>> However there is no such directory called containers. Any idea?
>>>
>>> SRC:
>>> -------
>>>
>>> ubuntu at ubuntu:~/criu/p.haul$ sudo ./p.haul-wrap client 0.0.0.0 docker
>>> 02e2ad5ab840
>>> Establish connection...
>>> Exec p.haul: ./p.haul docker 02e2ad5ab840 --to 0.0.0.0 --fdrpc 3 --fdmem 4
>>>
>>> 07:23:10.195: Starting p.haul
>>> 07:23:10.196: Use existing connections, fdrpc=3 fdmem=4 fdfs=None
>>> 07:23:10.196: Setting up local
>>> 07:23:10.197: `- Passing (ctl:7, data:6) pair to CRIU
>>> 07:23:10.200: [Errno 2] No such file or directory: '/var/lib/docker/containers'
>>> Traceback (most recent call last):
>>> File "./p.haul", line 45, in <module>
>>> worker = phaul.iters.phaul_iter_worker(ph_type, connection)
>>> File "/home/ubuntu/criu/p.haul/phaul/iters.py", line 39, in __init__
>>> self.htype = htype.get_src(p_type)
>>> File "/home/ubuntu/criu/p.haul/phaul/htype.py", line 35, in get_src
>>> ht.init_src()
>>> File "/home/ubuntu/criu/p.haul/phaul/p_haul_docker.py", line 37, in init_src
>>> self.full_ctid = self.get_full_ctid()
>>> File "/home/ubuntu/criu/p.haul/phaul/p_haul_docker.py", line 78, in
>>> get_full_ctid
>>> dir_name_list = os.listdir(os.path.join(docker_dir, "containers"))
>>> OSError: [Errno 2] No such file or directory: '/var/lib/docker/containers'
>>> Error (cr-service.c:879): Can't recv request: Connection reset by peer
>>> ubuntu at ubuntu:~/criu/p.haul$
>>>
>>> ubuntu at ubuntu:~/criu/p.haul$ sudo ls /var/lib/docker/
>>> 0.0 graph init network tmp vfs
>>> devicemapper image linkgraph.db repositories-devicemapper trust volumes
>>>
>>>
>>> On Mon, Jan 4, 2016 at 11:33 AM, Vijay Kilari <vijay.kilari at gmail.com> wrote:
>>>> Hi Hiu,
>>>>
>>>> I am using latest docker with checkpoint and restore feature enabled.
>>>> Using this docker version, I could do docker native checkpoint/restore
>>>> successfully.
>>>>
>>>> I tried p.haul as described in the link given by you. When p.haul
>>>> service is launched,
>>>> p.haul could not connect. p.haul keeps waiting for connection..
>>>> See below log
>>>>
>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> ubuntu at ubuntu:~/docker$ criu --version
>>>> Version: 1.8
>>>> GitID: v1.8-193-g6aede7f
>>>>
>>>> ubuntu at ubuntu:~/criu/p.haul$ ps -eaf | grep criu
>>>> ubuntu 25624 1 0 05:46 ? 00:00:00 criu service -o
>>>> _local_/log -v4 --daemon
>>>> ubuntu 25718 25524 0 05:56 pts/2 00:00:00 grep --color=auto criu
>>>>
>>>> ubuntu at ubuntu:~/criu/p.haul$ ps -eaf | grep docker
>>>> root 915 1 0 2015 ? 00:15:28 /usr/bin/docker daemon -H fd://
>>>> ubuntu 25720 25524 0 05:56 pts/2 00:00:00 grep --color=auto docker
>>>>
>>>> ubuntu at ubuntu:~/criu/p.haul$ sudo docker version
>>>> Client:
>>>> Version: 1.10.0-dev
>>>> API version: 1.22
>>>> Go version: go1.5.2
>>>> Git commit: 66581cd-dirty
>>>> Built: Thu Dec 17 09:07:33 2015
>>>> OS/Arch: linux/arm64
>>>> Experimental: true
>>>>
>>>> Server:
>>>> Version: 1.10.0-dev
>>>> API version: 1.22
>>>> Go version: go1.5.2
>>>> Git commit: 66581cd-dirty
>>>> Built: Thu Dec 17 09:07:33 2015
>>>> OS/Arch: linux/arm64
>>>> Experimental: true
>>>>
>>>> ubuntu at ubuntu:~/criu/p.haul$ ./p.haul-wrap service
>>>> Waiting for connection...
>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>
>>>> On Thu, Dec 31, 2015 at 12:00 PM, Hui Kang <hkang.sunysb at gmail.com> wrote:
>>>>> Hi, Vijay,
>>>>> Please check out this
>>>>> https://github.com/xemul/p.haul/blob/master/test/docker/HOWTO
>>>>> Please note that you may need a later version of docker binary.
>>>>>
>>>>> - Hui
>>>>>
>>>>> On Thu, Dec 31, 2015 at 2:20 PM, Vijay Kilari <vijay.kilari at gmail.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> What is the current status of docker live migration using CRIU?.
>>>>>> Is there any wiki/blog which provides steps for doing live migration of docker?
>>>>>>
>>>>>> Regards
>>>>>> Vijay
>>>>>> _______________________________________________
>>>>>> CRIU mailing list
>>>>>> CRIU at openvz.org
>>>>>> https://lists.openvz.org/mailman/listinfo/criu
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
> .
>
More information about the CRIU
mailing list