checkpoint-restore / criu-image-streamer

Enables streaming of images to and from CRIU during checkpoint/restore with low overhead
86 stars 12 forks source link

How is this image streamer diffrent/better than CRIU page-Server #6

Closed DallelKh closed 1 year ago

rst0git commented 3 years ago

Hi @DallelKh, this is a good question.

Short answer

Long answer

CRIU is using a protocol buffer format to encode serialized data representation of a process tree (checkpoint). This data (by default) is stored as image files, where each file contains information such as open file descriptors, memory pages, sockets, etc. In most cases, memory pages are the largest component of a checkpoint, and in the context of live migration it takes significant amount of time to be migrated to a destination host.

The page server was introduced to enable the transfer of memory pages directly from source to destination host and it can be used for pre-copy and post-copy migration. However, all other images are stored as files in the path provided with --images-dir.

The image streamer replaced a prototype of the --remote option in CRIU. It allows to transfer all images (not only memory pages) directly from source to destination host.

I hope this answers your question.

nviennot commented 3 years ago

Another precision: criu-image-streamer emits the image on UNIX pipes, not just TCP. That means that you can do compression, encryption, and upload to a location of your choice (e.g., AWS S3) by plugging UNIX commands in. That's something the page server does not do.