checkpointer - primitive CRaC implementation

checkpointer provides checkpoint/restore hooks on CRIU as org.crac interface.
mvn package
See example.
You can build example
with mvn package
. Note that you have to run mvn package
for checkpointer.
You can specify following agent option:
addr=<address>
: Listen address.localhost:10095
is set by default.shutdown=<true|false>
: Shutdown agent thread when restre request finished.true
is set by default.shutdown_timeout=<seconds>
: Shutdown timeout for agent thread.10
is set by default.gc=<true|false>
:true
if invokeSystem.gc()
atbeforeCheckpoint
.false
is set by default.
You can concatenate them with ,
:
-javaagent:/path/to/checkpointer-0.1.0.jar=addr=localhost:10095,shutdown=true,shutdown_timeout=10
# Build checkpointer
mvn package
# Build example
cd example/simple
mvn package
# Run example
$JAVA_HOME/bin/java -javaagent:../../target/checkpointer-0.2.0.jar -jar target/checkpointer-example-0.1.0.jar
mkdir /path/to/checkpoint/dir
sudo ./bin/checkpointer.sh checkpoint [PID] /path/to/checkpoint/dir
sudo ./bin/checkpointer.sh restore /path/to/checkpoint/dir
- checkpointer provides
org.crac
implementation especiallyResource
andContext
. You can create yourbeforeCheckpoint
andafterRestore
hook. - checkpointer creates HTTP endpoint to accept hook request from externals.
criu
runs with--action-script bin/checkpointer-actions.sh
. checkpointer-actions.sh requests checkpointer to call hooks via REST API on checkpointer Java Agent:pre-dump
:beforeCheckpoint
post-resume
:afterRestore
The GNU Lesser General Public License, version 3.0