Difference between revisions of "Memory images deduplication"
(more on punching holes) |
(add "memory dumps" to see also, api and under the hood to categories) |
||
Line 15: | Line 15: | ||
== See also == | == See also == | ||
+ | * [[Memory dumps]] | ||
* [[Iterative migration]] | * [[Iterative migration]] | ||
* [[Incremental dumps]] | * [[Incremental dumps]] | ||
Line 26: | Line 27: | ||
[[Category: Memory]] | [[Category: Memory]] | ||
[[Category: Images]] | [[Category: Images]] | ||
+ | [[Category: API]] | ||
+ | [[Category: Under the hood]] |
Revision as of 05:50, 31 August 2016
When performing incremental dumps or iterative migration, a layered stack of memory images is created. In that stack, some data is duplicated (i.e. same memory page is present in multiple images). This article describes ways to deduplicate such data by punching holes in image files (using fallocate()
syscall with FALLOC_FL_PUNCH_HOLE
flag), effectively freeing used disk space.
Two ways to deduplicate memory images are available.
Deduplication action
The criu dedup
command opens the image directory and punches holes in the parent images where child images would replace them.
On the fly deduplication
The --auto-dedup
option can be used for criu dump
and criu page-server
. It causes every write to images with process' pages to punch holes in the respective parent images.
The option is extremely useful in disk-less migration scenario.