-
Notifications
You must be signed in to change notification settings - Fork 0
Home
H-Container enables containerized applications, natively compiled for a specific ISA, to runtime migrate (similar to VM migration) across compute nodes featuring CPUs of different ISAs, such as ARM and x86. H-Container takes a natively compiled binary (for Linux) and transforms it into a natively compiled set of binaries, one per ISA. Once a binary is started and checkpointed on a machine, it can be restarted on a machine with a different ISA. Thus, enabling runtime migration of applications (note that live-migration is also supported). H-Container supports not just single applications but also entire containers.
H-Container fully integrates with Docker. However, at least at the time of writing, Docker supports container checkpoint/restart (with CRIU) on a single machine only, checkpoint/restart among different (heterogeneous-ISA) machines is completely manual. This repository provides the tools and instructions to enable Docker container migration.
Docker guide Follow the steps described at Start to test H-Container with Docker on Amazon AWS. This version doesn't require mcsema.
- Popcorn Compiler “criu” branch https://github.com/systems-nuts/popcorn-compiler/tree/criu
- CRIU, two different branches based on the usage, for Docker “heterogeneous-simplified” is recommended
- Docker scripts and demo https://github.com/systems-nuts/hcontainer-tutorial
- https://github.com/systems-nuts/hcontainer-benchmark
- https://github.com/systems-nuts/hcontainer-micro_benchmark_script
- https://github.com/systems-nuts/hcontainer-nginx
- https://github.com/systems-nuts/hcontainer-game
- https://github.com/systems-nuts/hcontainer-gzip
- https://github.com/systems-nuts/hcontainer-redis
- https://github.com/systems-nuts/hcontainer-lighttpd
- https://github.com/systems-nuts/hcontainer-testscript
- We don't support mcsema at the moment due to fundamental changes in their repos
Please contact Antonio Barbalace [email protected]
If a H-Containers team member, please use the github discussion board