Снимок показывает том на момент снятия, но полной копией не является. Здесь — как он устроен и чего не переживёт.
Снимок LVM показывает том таким, каким он был в момент снятия. Том, с которого снят снимок, — origin, здесь это data.
Снимок работает по принципу копирования при записи (copy-on-write, COW). Пока блок origin не меняли, снимок читает его с самого origin. Перед первой записью в блок LVM копирует его старую версию в запас снимка и только потом пишет новую в origin. Поэтому снимку на 64 MiB хватает места: он хранит только то, что поменялось после снятия.
Отсюда и ограничение. Неизменённые данные снимок берёт с того же устройства, что и origin. Если устройство под группой откажет, пропадут и том, и снимок. От такой потери защищает копия на другом носителе — о ней следующий модуль.
Перед рискованной миграцией данные тома нужно защитить и от ошибки миграции, и от отказа диска под группой. Чего хватит?
-
От ошибки миграции снимок защитит. Но неизменённые блоки он читает с того же диска, что и origin, и с отказом диска пропадёт вместе с ним.
-
roбережёт снимок от случайной записи, но не от отказа диска: снимок по-прежнему зависит от origin. -
Оба снимка берут неизменённые блоки с origin на том же диске и пропадут вместе с ним. Проверь:
sudo lvsпокажет у обоих одну группу.
Снимок даёт быстрый откат после ошибки, но живёт на тех же устройствах, что и origin. От отказа диска защищает копия на другом носителе.
Главное в шаге
- Снимок хранит старые версии блоков, изменённых после снятия, а остальное читает с origin.
- Снимок живёт на тех же устройствах, что и origin, и при их отказе пропадёт вместе с ним.