Как создать снимок только для чтения в LVM и затем откатывать к нему после некоторой работы?

С GNU grep, это работает: grep -o '\<WORD\>' | wc -l

-o печать каждый подобранные части каждой строки на отдельной строке.

\< утверждает запуск слова и \> утверждает конец слова (подобный Perl \b), таким образом, это гарантирует, что Вы не соответствуете строке посреди слова.

Например,

$ python -c 'import this' | grep '\<one\>'
There should be one-- and preferably only one --obvious way to do it.
Namespaces are one honking great idea -- let's do more of those!
$ python -c 'import this' | grep -o '\<one\>'
one
one
one
$ python -c 'import this' | grep -o '\<one\>' | wc -l
3
12
17.08.2011, 18:21
1 ответ

Я думаю, что Вы ищете lvconvert --merge. Из страницы справочника:

- слияние

Объединяет снимок в его объем источника. Чтобы проверить, поддерживает ли Ваше ядро эту функцию, искать snapshot-merge в выводе dmsetup targets. Если оба, источник и объем снимка не открыты слияние, сразу запустят. Иначе слияние запустится в первый раз или источник или снимок активируются, и оба закрываются. Слияние снимка в источник, который не может быть закрыт, например, корневая файловая система, задерживается до следующего раза активируется объем источника. Когда слияние запустится, получающийся логический том будет иметь имя источника, незначительное число и UUID.
В то время как слияние происходит, чтения или записи к источнику появляются, поскольку они были направлены к объединяемому снимку. Когда слияние заканчивается, объединенный снимок удален. Несколько снимков могут быть указаны на командной строке, или @tag может использоваться для определения нескольких снимков быть объединенным с их соответствующим источником.

Предположите, что у Вас есть логический том vg0/system, который содержит Ваш / файловая система.

# 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

Перезагрузки только необходимы, потому что в этом сценарии Вы не можете размонтировать файловую систему. Если это не / фс, размонтирование достаточно.

Следует иметь в виду, что снимок будет удаленный после слияния.

11
27.01.2020, 19:56
  • 1
    Спасибо за ответ! И если Вы не даете -pr (--permission r) опция к lvcreate, снимок будет только для чтения по умолчанию? (LVM позволяет перезаписываемые снимки вообще? Если бы да, альтернативный сценарий мог бы быть возможным, где временные эксперименты не были бы видимы в основном объеме, но будут выполнены во временном перезаписываемом снимке.) –  imz -- Ivan Zakharyaschev 23.08.2011, 02:29
  • 2
    Значение по умолчанию является RW. –  stribika 23.08.2011, 21:38
  • 3
    Вы не должны делать слияния с живого CD, можно дать команду и после перезагрузки, которую это объединило бы автоматически. –  Hanan N. 04.12.2011, 12:40

Теги

Похожие вопросы