Настройка LVM Snapshot в качестве точки резервного копирования / восстановления в Ubuntu

29

Настройка LVM Snapshot в качестве точки резервного копирования / восстановления в Ubuntu.

Зачем?

Ну, как я понимаю, при всей огромной полезности Linux, его самый большой недостаток - смешанный способ установки приложений. Все библиотеки находятся в одном каталоге. Все файлы конфигурации для другого. И бинарные файлы тоже складываются в кучу. Да, Windows работает более или менее одинаково, но с учетом того, что системное / серверное программное обеспечение установлено в Linux, поскольку большая часть установленного программного обеспечения является зрелой только на 95% в любой момент времени, порча вашей системы два раза в месяц очень вероятно ..

Конечно, мы можем сделать резервную копию системы до и после каждой установки, но это занимает миллион лет. Резервное копирование системы (в отличие от резервного копирования данных / файлов) требует, чтобы вы выключили компьютер и использовали какой-либо загрузочный live CD и носитель с резервной копией. И, если накопитель заполнен более чем на 15%, резервное копирование может занять много времени, даже при использовании современного оборудования.

Итак, как это можно сделать?

руб
источник
3
Это не вопрос ... также, я думаю, ты выглядел не очень усердно; быстрый гугл для «ubuntu lvm snapshot» и самое первое, что появляется, это wiki.ubuntu.com/Lvm
psusi
1
Ничего общего с ... ты читал это? Это охватывает все, что вы сказали здесь.
psusi
5
Конечно, вы можете задать вопрос, а затем ответить на него самостоятельно - но имейте в виду, что этот сайт работает как вопросы и ответы - не предназначен для бесплатных учебных пособий.
Гюнтберт
3
Это вещь. AskUbuntu предоставляет учебные пособия, но я не смог найти простой способ их размещения. И поскольку я хотел поделиться своей тяжелой работой с кем-то, кто мог бы извлечь выгоду, я решил просто опубликовать это здесь.
руб
4
Голосование, чтобы вновь открыть, чтобы мы могли разделить это на Q & A
Muru

Ответы:

11

Альтернатива - Снимки LVM - Вы можете прочитать о снимках LVM здесь: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

Вкратце - моментальные снимки - это способ замораживания используемых секторов на жестком диске, говорящий системе записывать любые изменения / удалять / добавлять в зарезервированную часть жесткого диска, называемую томом моментального снимка, таким образом, откладывая решение о сохранении / отмене изменений на диске в какое-то время в будущем, насколько позволяет пространство тома снимка. И так, как только вы решите откатить изменения (или сохранить их), вы можете сделать это одной строкой.

Поначалу это может показаться сложным, но я могу заверить вас, что после первой попытки все, что нужно для использования механизма моментальных снимков, - это всего лишь два строчных скрипта (загрузка возможна!)

Гарантия - гарантия не распространяется на приведенные ниже инструкции. Используйте на свой риск!

Как?

Если у вас нет предварительно настроенной группы томов, вам, вероятно, потребуется установить новую чистую Ubuntu. Затем вам придется приложить некоторые усилия для правильной настройки системы в первый раз, но с этого момента снимок станет легким . Под «легким» я подразумеваю команды с одним вкладышем, использующие предварительно настроенные сценарии.

  1. Загрузитесь с Ubuntu Live CD (пока нет установки. Просто Live CD)
  2. Открытые аксессуары -> Терминал
  3. Мы будем очищать жесткий диск! Пожалуйста, сделайте резервную копию чего-нибудь важного, прежде чем пройти этот этап.

    Сначала удалим существующие разделы:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Создайте загрузочный раздел и оставшуюся часть диска как другой раздел

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    Чтобы убедиться, что изменения сработали, выполните:

    # fdisk --list
    

    Вы должны получить что-то вроде этого:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Удалите все предыдущие группы томов / логические тома:

    # lvdisplay 
    

    Будет отображать логические тома, которые вы можете иметь в системе

    # lvremove <existing_logical_volume_name>
    

    Если какой-либо том установки, который может помешать этой установке, необходимо удалить.

    # vgdisplay 
    

    Покажет любую существующую группу томов в системе

    # vgremove <existing_volume_group>
    

    То же, что и для групп томов.

  6. Создайте группу томов vgsnap

    # vgcreate vgsnap /dev/sda2
    

    Должен привести с:

      Volume group "vgsnap" successfully created
    
  7. Создайте логический том

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    Корневой логический том, начиная со 100% устройства.

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    Это снимет 30G для томов подкачки и моментального снимка. Конечно, вы можете выбрать меньшие размеры для обмена / снимка.

    > 'y'
      for the warning shown.
    

    И создайте раздел подкачки:

    # lvcreate --size 15G --name lvswap vgsnap
    

    Примечание: теперь мы оставляем 15 ГБ неиспользуемого дискового пространства, зарезервированного для будущего снимка.

  8. Установка Ubuntu

    Закройте теримнал и запустите установщик.

    Выберите «Использовать LVM ...» (Вы также можете включить шифрование всего диска, но я его не проверял ...)

    Выберите «Что-то еще» и нажмите «Продолжить». На этом этапе вы найдете определенное количество томов / dev / mapper / .... Некоторые из них генерируются автоматически (lvsnap- *) - вы можете пока их игнорировать.

    Выберите: / dev / mapper / vgsnap-lvroot volume. Выберите «ext4» в качестве формата и установите как «/»

    Выберите том / dev / mapper / vgsnap-lvswap и выберите «область подкачки»

    Если вы хотите создать зашифрованный диск (я понятия не имею, будет ли это работать со снимками?), Вы, вероятно, захотите выбрать / dev / sda2 и отметить «том для шифрования». Не проверял это хотя ..

    Примечание. Неиспользуемые 15G остаются свободными для тома снимка.

    Выберите: / dev / sda1 раздел. Отформатируйте его как 'ext2' и смонтируйте как '/ boot'

    Ниже - выберите раздел / dev / sda1 в качестве загрузочного

    Установить!

Использование снимка

Следующие шаги покажут, как использовать снимок в любой момент времени:

  1. Монтирование снимка:

    Создать том снимка

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    Создайте каталог монтирования

    # mkdir /mnt/vgsnap-lvsnap
    

    Смонтировать снимок как монтируемый только для чтения

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    Снимок включен!

    В этот момент вы можете начать портить вашу систему, устанавливать бета-драйверы и даже (нет! Это просто неуместно).

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

  2. Автоматический мониторинг свободного места на томе моментального снимка: с помощью подправленной версии скрипта, представленной здесь: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ Я создал скрипт monitor_snapshot ,

    Как использовать / установить? - Примерно так же, как со ссылкой выше:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    Прежде чем запускать его в первый раз, лучше отредактируйте его значения, такие как адрес электронной почты (куда следует отправлять уведомления и т. Д.). При правильной настройке демон cron будет запускать скрипт каждые X часов / дней - как вы решите - и уведомить вас, когда снимок будет заполнен.

    Чтобы проверить скрипт, выполните:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Будет напечатан процент (количество) свободного места в снимке.

    Важный! Как только вы закончите с вашими тестами / установками - откатитесь или сохраните изменения - и размонтируйте снимок!

  3. Откат изменений: (См. Скрипт rollback_snapshot , со следующими инструкциями, ссылка в конце документа)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    Это также отключит моментальный снимок, но все ваши изменения будут отменены. Кроме того, вы увидите предупреждение о том, что возврат произойдет только при следующей активации, поэтому:

    # reboot
    

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

  4. Передача изменений - размонтирование снимка: (см. Скрипт commit_snapshot со следующими инструкциями - ссылка в конце документа)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. Повторная установка снимка: (См. Сценарий перемонтирования со следующими инструкциями - ссылка в конце документа) Как и прежде:

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    Если вы сохранили monitor_snapshot в вашей домашней директории, вы можете восстановить его обратно:

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

Это все, ребята! Следующие инструкции предназначены только для бросивших курить;)

  1. Сброс тома снимка (если больше не требуется)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (Вы также можете изменить размер корневого раздела или раздела подкачки, чтобы занять недостающие 15G, зарезервированные для раздела подкачки).

  2. Отказ от группы томов - возможно только путем удаления томов группы томов, что, вероятно, означает удаление установки ОС. Но, разумеется, нет необходимости удалять группу томов ...

    Чтобы удалить группу томов:

    # vgremove vgsnap
    

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

руб
источник
Большое спасибо за эти подробные инструкции ... вау.
Адриано Лукас
2

Создание cronjob для резервного копирования с использованием lvcreate -s -L <size> -n <snapshot_name> <volume_name>

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

Bidyut
источник
1
Хороший гид! Обратите внимание, однако, что мои намерения, где предоставить средства для резервного копирования без резервного носителя . Как форма ленивого бэкапа. В старые времена это было спасением жизни с Norton GoBack и Windows 2000 :) Я имел обыкновение действительно портить системы, над которыми работал, и возможность рассчитывать на то, что я смогу исправить свои ошибки в кратчайшие сроки, была очень легкой. ! Резервные копии, вероятно, являются правильным способом для работы на реальном сервере, но для рабочей станции, не установленной на VMWare / VirtualBox (которые предоставляют снимки извне), я считаю, что снимки - это лучший способ.
РУБ