Какие команды использовать в LVM, если я хочу:
- создать снимок тома только для чтения;
- (сделать несколько экспериментов в объеме);
- а затем откатить том до снимка?
Я думаю, что вы ищете lvconvert --merge
. Со страницы руководства:
--merge
Объединяет снимок в исходный том. Чтобы проверить, поддерживает ли ваше ядро эту функцию, ищите
snapshot-merge
в выводеdmsetup targets
. Если исходный том и том снимка не открыты, объединение начнется немедленно. В противном случае объединение начнется при первом включении источника или снимка, и оба будут закрыты. Слияние снимка с источником, который не может быть закрыт, например с корневой файловой системой, откладывается до следующей активации тома источника. Когда начинается объединение, результирующий логический том будет иметь имя источника, младший номер и UUID.
Во время слияния операции чтения или записи в исходную точку отображаются так, как они были направлены к объединяемому снимку.Когда слияние завершается, объединенный снимок удаляется. Несколько командных снимков могут быть указаны в командной строке или @tag может использоваться для указания нескольких снимков, которые будут объединены с их соответствующим источником.
Предположим, у вас есть логический том vg0 / system, который содержит вашу / filesystem.
# create a read-only snapshot
lvcreate -pr --snapshot --name system_snapshot vg0/system
# upgrade or something
# if it fails, reboot and do this from a livecd
lvconvert --merge vg0/system_snapshot
# reboot again and you have your old system back
Перезагрузки нужны только потому, что в этом случае вы не можете размонтировать файловую систему. Если это не / fs, достаточно демонтировать.
Имейте в виду, что снимок будет удален после слияния.
-pr
(--permission r
)lvcreate
, будет ли снимок по умолчанию доступен только для чтения? ( Разрешает ли LVM записываемые снимки вообще? Если да, возможен альтернативный сценарий, когда временные эксперименты не будут видны в основном томе, но будут выполняться во временном снимке с возможностью записи.)