40 lines
1.8 KiB
Go
40 lines
1.8 KiB
Go
|
// +build linux freebsd
|
||
|
|
||
|
package libcontainer
|
||
|
|
||
|
// cgroup restoring strategy provided by criu
|
||
|
type cgMode uint32
|
||
|
|
||
|
const (
|
||
|
CRIU_CG_MODE_SOFT cgMode = 3 + iota // restore cgroup properties if only dir created by criu
|
||
|
CRIU_CG_MODE_FULL // always restore all cgroups and their properties
|
||
|
CRIU_CG_MODE_STRICT // restore all, requiring them to not present in the system
|
||
|
CRIU_CG_MODE_DEFAULT // the same as CRIU_CG_MODE_SOFT
|
||
|
)
|
||
|
|
||
|
type CriuPageServerInfo struct {
|
||
|
Address string // IP address of CRIU page server
|
||
|
Port int32 // port number of CRIU page server
|
||
|
}
|
||
|
|
||
|
type VethPairName struct {
|
||
|
ContainerInterfaceName string
|
||
|
HostInterfaceName string
|
||
|
}
|
||
|
|
||
|
type CriuOpts struct {
|
||
|
ImagesDirectory string // directory for storing image files
|
||
|
WorkDirectory string // directory to cd and write logs/pidfiles/stats to
|
||
|
ParentImage string // direcotry for storing parent image files in pre-dump and dump
|
||
|
LeaveRunning bool // leave container in running state after checkpoint
|
||
|
TcpEstablished bool // checkpoint/restore established TCP connections
|
||
|
ExternalUnixConnections bool // allow external unix connections
|
||
|
ShellJob bool // allow to dump and restore shell jobs
|
||
|
FileLocks bool // handle file locks, for safety
|
||
|
PreDump bool // call criu predump to perform iterative checkpoint
|
||
|
PageServer CriuPageServerInfo // allow to dump to criu page server
|
||
|
VethPairs []VethPairName // pass the veth to criu when restore
|
||
|
ManageCgroupsMode cgMode // dump or restore cgroup mode
|
||
|
EmptyNs uint32 // don't c/r properties for namespace from this mask
|
||
|
}
|