Налаштування LVM Snapshot як точки резервного копіювання / відновлення в ubuntu


29

Налаштування LVM Snapshot як точки резервного копіювання / відновлення в ubuntu.

Чому?

Ну, як я бачу, при всій великій корисності Linux, його найбільшим недоліком є ​​його змішаний спосіб встановлення додатків. Всі dll переходять до одного каталогу. Всі файли конфігурації для іншого. І бінарні файли також кладуть у купу. Так, Windows працює так само більш-менш, але з природою системного / серверного програмного забезпечення, встановленого в Linux, оскільки більшість встановленого програмного забезпечення в будь-який момент дозріває лише на 95%, що псує вашу систему двічі на місяць дуже ймовірний ..

Звичайно, ми можемо створити резервну копію системи до і після кожної установки, але це займає мільйон років. Резервне копіювання системи (на відміну від резервного копіювання даних / файлів) вимагає вимкнути комп'ютер та використовувати певну форму завантажувального живого CD та резервного носія. І якщо накопичувач заповнений понад 15%, може знадобитися багато часу, щоб зробити резервну копію навіть із сучасним обладнанням.

Отже, як це можна зробити?


3
Це не питання ... також я думаю, ви не виглядали дуже важко; швидкий google для "ubuntu lvm snapshot", і найперше, що з'являється, це wiki.ubuntu.com/Lvm
psusi

1
Нічого спільного ... ти це читав? Він охоплює все, що ви сказали тут.
psusi

5
Звичайно, ви можете задати питання, а потім відповісти на нього самостійно - але майте на увазі, що цей сайт працює як Q&A - не призначений для навчальних посібників у вільній формі.
guntbert

3
У цьому річ. AskUbuntu надає підручники, але я не зміг знайти простий спосіб її скласти. А оскільки я хотів поділитися своєю наполегливою працею з будь-ким, хто може принести користь, я вирішив просто опублікувати це тут.
руб

4
Голосуючи за повторне відкриття, щоб ми могли розділити це на питання і запитання
муру

Відповіді:


11

Альтернатива - LVM Snapshots - Про знімки LVM ви можете прочитати тут: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

Коротше кажучи - знімки - це спосіб заморожування використовуваних секторів на жорсткому диску, що дозволяє системі записати будь-яку зміну / видалити / додати на зарезервовану частину жорсткого диска, що називається томом знімка, тим самим відкласти рішення про збереження / відмінювання змін на приводі до деякого майбутнього часу, наскільки це забезпечує простір гучності знімків. Отже, як тільки ви вирішите відкатати зміни (або зберегти їх), ви можете зробити це одним рядком.

Спочатку це може здатися складним, але я можу запевнити, що після перших зусиль все, що потрібно для використання механізму знімка, - це лише 2 рядкові сценарії (завантаження передбачено!)

Гарантія - жодних гарантій, що раніше надані для наведених нижче інструкцій. Використовуйте на свій страх і ризик!

Як?

Якщо у вас немає заздалегідь налаштованої групи томів, можливо, вам доведеться встановити свіжий чистий Ubuntu. Тоді вам доведеться докласти певних зусиль для правильної настройки системи вперше, але з цього моменту знімок стане без зусиль . І без особливих зусиль я маю на увазі одну команду вкладок, використовуючи попередньо налаштовані сценарії.

  1. Завантажте живий cd ubuntu (ще не встановлено .. просто живий 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.
    

    І створити об'єм swap:

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

    Примітка: ми залишаємо зараз 15 Г невикористаного дискового простору, зарезервованого для майбутнього знімка.

  8. Встановлення Ubuntu

    Закрийте термінал і запустіть інсталятор.

    Виберіть "Використовувати LVM ..." (Ви також можете увімкнути шифрування всього диска, але я не перевіряв його.)

    Виберіть "Щось інше" та натисніть кнопку "Продовжити". На цьому етапі ви знайдете визначений обсяг / dev / mapper / ... томів. Деякі з них генеруються автоматично (lvsnap- *) - їх зараз можна ігнорувати.

    Виберіть: / dev / mapper / vgsnap-lvroot volume. Виберіть "ext4" як формат і монтуйте як "/"

    Виберіть: / dev / mapper / vgsnap-lvswap том і оберіть "swap area"

    Якщо ви маєте створити зашифрований диск (я не маю поняття, чи не працювало б це на знімках?), Ви, ймовірно, захочете вибрати / 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, зарезервований для swap)

  2. Відмова від групи томів - можлива лише шляхом видалення томів групи томів, що, ймовірно, означає видалення установки ОС. Але, звичайно, немає необхідності видаляти групу томів ...

    Щоб видалити групу гучності:

    # vgremove vgsnap
    

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


Велике спасибі за ці детальні інструкції ... ух.
Адріано Лукас

2

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

Тут назва тома - це назва тома, знімок якого ви хочете зробити. Для отримання детальної інформації ви також можете пройти цей підручник


1
Гарний путівник! Зауважте, що мої наміри, де надати засоби для резервного копіювання без резервного носія . Як форма ледачого резервного копіювання. У старі часи це було рятівником життя, з Нортоном GoBack та Windows 2000 :) Я звик справді заплутатися з системами, над якими працював, і будучи в змозі розраховувати, що я можу повернути свої помилки в найкоротші терміни, це був вітер ! Резервне копіювання, ймовірно, є правильним способом переходу на реальний сервер, але для робочої станції, не розміщеної на VMWare / VirtualBox (які надають знімки зовні), я вважаю, що знімки - це шлях.
руб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.