Резервное копирование логического тома LVM2

Резервное копирование логического тома LVM2

Я хотел бы сделать резервную копию логического тома LVM2 на внешнем диске dd.

Подход, который я рассматриваю, заключается в следующем:

  • создайте lv на внешнем диске с идентичным размером
  • копия сdd

(Пожалуйста, дайте мне знать, если вы видите что-то действительно неправильное в таком подходе. Мне нужно что-то надежное и быстрое.)

Я хотел бы автоматизировать весь процесс; вот что у меня есть:

# Sanity check that lv is not used
lvuses="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 6 )"
if [ $lvuses -gt 0 ]; then exit 1 ; fi
#obtain lv size (in sectors)
lvsize="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 7 )"
#create destination
lvcreate -L "${lvsize}s" vgB -n BB || exit 1
# copy
dd if=/dev/mapper/vgA-AA of=/dev/mapper/vgB-BB

Все в порядке? Я что-то пропустил?

(В моем случае vgA-AA — это снимок LVM, и я хотел бы сделать его резервную копию на внешнем диске и перенести этот диск в другое географическое местоположение)

решение1

Ваш скрипт выглядит хорошо, но я бы использовал другой подход: создать зеркало, а затем сломать его. Вы можете сделать это онлайн, насколько я знаю. Непроверено:

lvconvert -m /dev/mapper/vgA-AA /dev/sdz98 /dev/sdz99
lvconvert --splitmirrors 1 --name BB /dev/mapper/vgA-AA

Если вы хотите переместить новый логический том в другую группу томов, я думаю, вам нужно убедиться, что логический том, который вы хотите отправить, находится на своем собственном физическом томе(ах), и перенести физические тома(ы) из одной группы томов в другую с помощью vgsplit.

решение2

Не используйте dd. Это глупое животное, которое скопирует все в томе, включая свободное пространство, и в результате получит файловую систему с тем же UUID, что и у оригинала, что может сбить систему с толку. Вместо этого используйте инструмент вроде partcloneghost4linux или fsarchiver, который может скопировать систему в сжатый файл образа и пропустить свободные блоки.

решение3

  • монтировать внешний диск
  • остановить приложение
  • проверьте, не используется ли файловая система ($ sudo fuser -M /path/to/filesystem/mountpoint)
  • создать снимок ($ sudo lvcreate -s ........... )
  • начать приложение
  • резервное копирование с помощью rsync (проверьте man rsync на наличие --update и --link-dest)
  • или проверьтеhttp://dirvish.orgилиhttp://backuppc.sourceforge.net/для внедрения
  • размонтировать внешний диск
  • удалить снимок LV Эта процедура создает каталог на внешнем диске для каждой резервной копии. Она копирует только измененные/новые файлы с исходного диска и экономит место за счет жесткой привязки дублирующихся файлов между резервными копиями.

решение4

Надежно и быстро. Я бы рекомендовал снимки LVM.

Это очень быстро, и вы можете гарантировать, что резервное копирование будет выполнено без каких-либо изменений файлов во время резервного копирования. Кроме того, если у вас есть база данных на томе, вам не придется переводить ее в автономный режим.

Это также хороший способ проверить изменения в вашем томе. Сделайте снимок, внесите изменения, они не срабатывают, вы объединяете снимок обратно. Если они срабатывают, вы удаляете снимок.

Редактировать: Код

lvcreate -L 10G -s -n snapshot /dev/VG/LV

Затем создайте резервную копию тома моментального снимка в любом месте и любым удобным для вас способом.

Для тестирования файловой системы можно сделать снимок и выполнить обратное слияние.

lvconvert --merge /dev/VG/snapshot

Это слияние автоматически удалит том моментального снимка.

Примечание:моментальные снимки требуют kernel version 2.6.33 or newerиLVM tools 2.02.58 or newer

Редактировать. Ссылки:

TLDP: Резервное копирование с использованием снимков

HowtoForge: Резервное копирование и восстановление разделов с использованием снимков LVM

Cyberciti: последовательное резервное копирование с помощью снимков LVM

Связанный контент