Я понимаю, что с помощью dm thin теперь можно хранить метаданные отдельно от самого снимка.
Кто-нибудь знает, можно ли создавать снимки только для метаданных, которые не несут такие же накладные расходы ввода-вывода? Меня интересует, какие блоки были изменены, но не содержимое старого блока.
Моя основная мотивация для этого вопроса заключается в том, что мне интересно, используется ли решение для резервного копирования, использующее что-то вроде lvmsync (https://github.com/mpalmer/lvmsync), но без значительных накладных расходов.
В документации содержится немного информации о том, как этого добиться, мои мысли были о создании тонкого пула на основе / dev / null или аналогичного, который молча отбрасывается при записи.
Устройство сопоставления, эквивалентное /dev/null
нулевая цель (dmsetup create --table '0 <nsectors> zero' myzeroes
). Я думаю, вы сможете использовать это как устройство данных для своего тонкого пула; а затем сделайте снимок исходного тома (как внешнего источника), чтобы отслеживать, какие изменения были внесены в него. Все это делается вне LVM; вам нужна полная гибкость DM, а LVM позволяет более удобно и безопасно выполнять обычные сценарии использования.
С помощью thin-provisioning.txt:
dmsetup create --table "0 $nsectors zero" myzeroes
dmsetup create pool \
--table "0 $nsectors thin-pool $metadata_dev /dev/mapper/myzeroes \
$data_block_size $low_water_mark"
thinnum=0
dmsetup message /dev/mapper/pool 0 "create_thin $thinnum"
origsectors=$(blockdev --getsz /dev/myorigin)
dmsetup create snap \
--table "0 $origsectors thin /dev/mapper/pool $thinnum /dev/myorigin"