boucher
b3ec1fce19
Add steps to install criu to the Dockerfile
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:30 -07:00
boucher
bfb093aacd
Allow restore to actually exec/create the libcontainer, rather than requiring that one already exists.
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:30 -07:00
Andrey Vagin
a16d7f1b7d
container: don't use c.initProcess before it's set
...
container.Checkpoint() doesn't clear c.initProcess and
it's used on restore.
Signed-off-by: Andrew Vagin <avagin@openvz.org>
2015-05-20 15:19:30 -07:00
boucher
420180a10b
Require criu 1.5.2 rather than 1.5.1
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:30 -07:00
boucher
7c138ebbee
Reformat some error handling code and declare descriptor filename as a const.
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:30 -07:00
Andrey Vagin
7d32656ee7
cr: handle all external descriptros in ct.Restore()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:19:30 -07:00
boucher
78a21b77b2
Fix formatting issues, and missing test methods.
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:30 -07:00
Andrey Vagin
8f0cad54ac
Don't fix the size of the ExternalDescriptors array
...
In a future we may want to have more external descriptors.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:19:30 -07:00
Andrey Vagin
655f1ce09c
Rename StdFds into ExternalDescriptors
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:19:30 -07:00
Andrey Vagin
6ecf32c234
Restore StdFds from the state file
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:19:29 -07:00
boucher
3d59a7fe8b
Refactor saving fds slightly, set the restored process fds correctly.
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:29 -07:00
boucher
38635c5a11
Move the std_fds into initProcess, and expose them in container's State
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:19:29 -07:00
boucher
129280ac62
Write the fd info to the image directory during a checkpoint,
...
and restore with the written info from a given image directory.
Also, write completely root independent ext_mount info.
These changes enable checkpointing in one container and then restoring
into a completely new container.
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:18:56 -07:00
Hui Kang
46dd56ba07
Change back to --page-server, PageServer should be in CriOpts struct
...
Docker-DCO-1.1-Signed-off-by: Hui Kang <hkang.sunysb@gmail.com>
2015-05-20 15:18:56 -07:00
Hui Kang
1d89a25aec
Fix a nil pointer bug when doing local checkpoint
...
Docker-DCO-1.1-Signed-off-by: Hui Kang <hkang.sunysb@gmail.com>
2015-05-20 15:18:56 -07:00
Hui Kang
67636f13fb
Change --page-server to --PageServer
...
Docker-DCO-1.1-Signed-off-by: Hui Kang <hkang.sunysb@gmail.com>
2015-05-20 15:18:56 -07:00
Hui Kang
d278b830d9
Change criu command line format for page server
...
--page-server ADDRESS:PORT
Docker-DCO-1.1-Signed-off-by: Hui Kang <hkang.sunysb@gmail.com>
2015-05-20 15:18:56 -07:00
root
7a012fe3b5
Allow dumped image to be transferred to a criu page server
...
--page-server to specify the IP address of criu page server
--port to specify the port of the criu page server
Docker-DCO-1.1-Signed-off-by: Hui Kang <hkang.sunysb@gmail.com>
2015-05-20 15:18:56 -07:00
boucher
4fc7543317
Don't write a "checkpoint" file if the process is left running.
...
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:18:56 -07:00
boucher
a8d5fdf1fd
Add support for providing options to CRIU.
...
In order to do more complex things with checkpointing
and restoring of containers it's necessary to have
control over where the image files are being saved
and whether or not to kill the running process. It's
possible more flags will be wanted in the future.
Some things probably should always be auto-configured
by libcontainer though.
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:18:56 -07:00
Andrey Vagin
cbe747d989
cr: add a comment about bind-mounting root in a tmp dir
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
eaa35f552e
cr: add network support
...
We need to enumirate all veth devices on restore and handle
{un,}lock-network notifications.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
boucher
032aca342e
Exclude the root path from mount point paths.
...
This change was necessary for me to get criu/libcontainer running inside of Docker.
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-20 15:18:56 -07:00
Andrey Vagin
328786f70e
cr: don't remove images after restore
...
This code was added when images were saved in a factory root directory and in
addition this directory was used as a flag.
Now an user can decide when images can be removed.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
553b8be2d0
cr: prepare a container root
...
CRIU has following requirements for a container root:
* it is a mount point
* a parent mount point isn't over-mounted
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
39795424db
cr: user criu swrk to dump CT
...
criu swrk allows to rollback if the /ROOT/CRID/checkpoint
file can't be created. In a future it will be used for locking network.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
6f1d940b8e
cr: split the Restore function
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
65f9b1bd84
cr: handle criu notifications in a separate function
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
522f7b36ff
cr: Add an ability to specify path for images
...
the emptye /ROOT/CTID/checkpoint file is created to
support the Checkpointed state.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
5fb0019c45
Add the Checkpointed state
...
I don't like the current logic in ct.Destroy(). I think ct.Destroy
must destoy ct or return an error.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
f5fad10193
protobuf: workaround a go vet error
...
vendor/src/github.com/golang/protobuf/proto/all_test.go:1284: result of fmt.Sprintf call not used
Do we really need to execute go vet for vendor? I don't find how to exclude them.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
5231fbf143
Dockerfile: don't call go get
...
Everything must be in vendor/
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:56 -07:00
Andrey Vagin
5df3a07b5f
cr: split work and image directories
...
This directory can be removed when criu completes.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:55 -07:00
Andrey Vagin
e0f87e2f23
cr: check criu version
...
CRIU version must be 1.5.1 or higher
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:55 -07:00
Andrey Vagin
b836046422
cr: use the RPC protocol for communication with criu
...
criu swrk is a special mode when we don't want to execute a service,
but want to use RPC.
Here is more details:
http://lists.openvz.org/pipermail/criu/2015-March/019400.html
Another good feature of this mode is that we don't need to create
action scripts and we will be able to remove the hack with saving StdFds.
criu swrk is supported starting with CRIU 1.5.1.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:55 -07:00
Andrey Vagin
c920f5fe75
cr: add criu_rpc.proto
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:55 -07:00
Andrey Vagin
c0640ae461
vendor: add protobuf
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:18:55 -07:00
Andrey Vagin
0eea415019
ct: execute CRIU restore with the --restore-detached option
...
In this case CRIU will exit after restoring processes. Here is
no reason to wait the init process.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:17:59 -07:00
Andrey Vagin
e75d0228cc
cr: wait the criu process properly
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:17:59 -07:00
Andrey Vagin
b28fbb20a3
cr: don't umount rootfs which was not mounted by us
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:17:59 -07:00
Andrey Vagin
f705221b4a
go: fmt
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-05-20 15:17:59 -07:00
Saied Kazemi
9212f68293
Some C/R bug fixes and changes in the new libcontainer and nsinit.
...
This is work in progress, integrating C/R support from
https://github.com/SaiedKazemi/docker/tree/cr into the
new libcontainer and nsinit.
Signed-off-by: Saied Kazemi <saied@google.com>
2015-05-20 15:17:59 -07:00
Michael Crosby
406f32a774
Set default criu binary
...
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-05-20 15:17:34 -07:00
Michael Crosby
f15aba685b
Update criu support with restored processes
...
Also use pipes for non tty so that the parent's tty of the nsinit
process does not leak into the conatiner.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-05-20 15:17:34 -07:00
Michael Crosby
da009f5710
Add nsinit support for checkpoint and restore
...
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-05-20 15:16:13 -07:00
Michael Crosby
6fec5923e3
Add Checkpoint and Restore methods to Container
...
Containers support checkpointing and restore via criu(8) for linux
containers.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-05-20 15:15:36 -07:00
Michael Crosby
a4a648ce30
Merge pull request #583 from jhowardmsft/master
...
Windows: Initial compilation enablement
2015-05-18 11:11:08 -07:00
Michael Crosby
ef5240072a
Merge pull request #562 from mrunalp/sys_prop_flag
...
Add a flag for specifying system properties.
2015-05-18 11:08:32 -07:00
Alexander Morozov
ec538cae1a
Merge pull request #542 from sayuan/fix-rand-mac
...
Set the seed when randMacAddr
2015-05-18 09:51:59 -07:00
Mrunal Patel
b38cce017b
Add a flag for specifying system properties.
...
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-05-16 22:10:30 -04:00