Difference between revisions of "Memory images deduplication"

From CRIU
Jump to navigation Jump to search
(created!)
 
(more on punching holes)
Line 1: Line 1:
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 <code>fallocate()</code> syscall with <code>FALLOC_FL_PUNCH_HOLE</code> flag).
+
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 <code>fallocate()</code> syscall with <code>FALLOC_FL_PUNCH_HOLE</code> flag), effectively freeing used disk space.
  
 
Two ways to deduplicate memory images are available.
 
Two ways to deduplicate memory images are available.
Line 19: Line 19:
 
* [[Disk-less migration]]
 
* [[Disk-less migration]]
 
* [[Page server]]
 
* [[Page server]]
 +
 +
== External links ==
 +
 +
* http://man7.org/linux/man-pages/man2/fallocate.2.html
  
 
[[Category: Memory]]
 
[[Category: Memory]]
 
[[Category: Images]]
 
[[Category: Images]]

Revision as of 04:34, 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.

See also

External links