Проблема фрагментации виртуальных дисков и способы её решения

Большинство существующих решений виртуализации используют виртуальные диски (блочные устройства):

  • Qemu: qcow2
  • VMware: vmdk
  • Virtuozzo: ploop
  • Docker: dm-thin, loop, dm-snapshot

Важнейшим свойством таких дисков является “thin provision” (способность выделять место только в случае необходимости). Обратной стороной этого свойства оказывается «размазывание» данных по диску в процессе работы. Размер образа диска постоянно растёт, даже если объем реально используемых данных остаётся постоянным. В результате на виртуальном диске накапливаются блоки, которые выделены, но больше не используются файловой системой. В докладе мы рассмотрим, как в Virtuozzo/CRIU совместно с LKML решают эту проблему и почему существующих механизмов недостаточно.