Допустим, вы сделали снепшот
/dev/vgroup/root_snap. Можете его сразу передать на другой сервер:# dd if=/dev/vgroup/root_snap | ssh root@10.20.1.36 "dd of=vgroup-root.img"Получили живой бэкап. Его можно, к примеру, подмонтировать и посмотреть данные:
# mount vgroup-root.img /mntУ нас копия сервера, подключенная к другому серверу. Точно так же можно сохранить снимок локально в файл. Только нужно иметь ввиду, что это должен быть другой раздел. Иначе вы снепшот в снепшот сохранять начнёте.
# dd if=/dev/vgroup/root_snap of=/mnt/backup/vgroup-root.imgИз этого снимка можно восстановить систему полностью. Для этого нужен будет какой-то загрузочный диск c Linux. Нужно будет восстановить данные из образа на какой-то диск и отдельно установить на него загрузчик grub. То есть это простой и гарантированный способ получить целостную копию работающей системы и спокойно передать её куда-то по сети.
☝️ Отмечу ещё раз отдельно, что снепшоты LVM – вполне стабильная и рабочая функциональность. Это не какой-то хак, трюк, костыль, который работает на свой страх и риск. Можно без особых опасений её использовать, главное понимать нюансы работы снепшотов. Они немного снижают производительность, их нельзя оставлять надолго, так как они начинают занимать место в VG, которое может кончиться. Могут возникнуть проблемы.
Снепшот делается по ситуации, проверяется работа после его создания. Потом он либо куда-то сохраняется, либо откатывается, либо сливается с текущим состоянием. Оставлять его не нужно. Слияние большого снепшота, особенно на нагруженной системе, может прилично нагрузить дисковую подсистему.
Вот ещё одно коротенькое руководство, как можно с помощью снепшотов безопасно обновить систему, которая установлена в VG vgroup на LV root.
Переименовываем текущий LV и создаём вместо него snapshot с таким же названием:
# lvrename vgroup root root-old# lvcreate -n root -s /dev/vgroup/root-old -L 9G# rebootПерезагружаемся. Теперь у нас снепшот в роли корневого раздела. Мы можем выполнять какие-то действия с системой - обновлять, ломать, тестировать какую-то функциональность. Когда закончите, можно зафиксировать это. Переименовываем текущее состояние в виде снепшота в новое, а корень возвращаем обратно, как было:
# lvrename vgroup root root-new # lvrename vgroup root-old rootЕсли изменения вам подошли и вы готовы их принять, то сливаем снепшот нового состояния с текущем корнем:
# lvconvert --merge /dev/vgroup/root-new# rebootПосле перезагрузки по lvs смотрим, когда слияние закончится и перезагружаемся ещё раз:
# lvs# rebootЧтобы все изменения применились, надо перезагрузиться 2 раза. Снепшот при слиянии удаляется автоматически, ничего для этого делать не надо.
Если же вам изменения не нужны, то просто удаляем снепшот:
# lvremove /dev/vgroup/root-new# rebootИнструкция 100% рабочая. Проверял несколько раз и на прошлой заметке, и на этой. Снепшоты, когда вся система вместе с /boot разделом на LVM работают без проблем.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#lvm
