Konfigurowanie LVM Snapshot jako punktu kopii zapasowej / przywracania w Ubuntu

29

Konfigurowanie LVM Snapshot jako punktu kopii zapasowej / przywracania w Ubuntu.

Czemu?

Cóż, jak widzę, przy całej użyteczności Linuksa, jego największą wadą jest mieszany sposób instalowania aplikacji. Wszystkie biblioteki DLL przechodzą do jednego katalogu. Wszystkie pliki konfiguracyjne do innego. Pliki binarne są również zestawione. Tak, system Windows działa mniej więcej tak samo, ale z charakterem oprogramowania systemowego / serwerowego zainstalowanego w systemie Linux, ponieważ większość zainstalowanego oprogramowania jest tylko w około 95% dojrzała w danym momencie, co psuje system dwa razy w miesiącu bardzo prawdopodobne ..

Oczywiście możemy wykonać kopię zapasową systemu przed i po każdej instalacji, ale zajmuje to milion lat. Kopie zapasowe systemu (w przeciwieństwie do zwykłej kopii zapasowej danych / plików) wymagają wyłączenia komputera i użycia jakiejś formy rozruchowej płyty CD na żywo oraz nośnika kopii zapasowej. A jeśli dysk jest zapełniony w ponad 15%, wykonanie kopii zapasowej może zająć dużo czasu, nawet w przypadku nowoczesnego sprzętu.

Jak to można zrobić?

pocierać
źródło
3
To nie jest pytanie ... myślę, że nie wyglądałeś zbyt ostro; szybkie google dla „ubuntu LVM snapshot”, a pierwszą rzeczą, która pojawia się to wiki.ubuntu.com/Lvm
psusi
1
Nie ma to nic wspólnego z ... przeczytałeś to? Obejmuje wszystko, co tu powiedziałeś.
psusi
5
Oczywiście możesz zadać pytanie, a następnie sam na nie odpowiedzieć - pamiętaj jednak, że ta strona działa w formie pytań i odpowiedzi - nie jest przeznaczona do bezpłatnych ćwiczeń.
guntbert
3
To jest myśl. AskUbuntu zapewnia samouczki, ale nie mogłem znaleźć łatwego sposobu na ich wprowadzenie. A ponieważ chciałem podzielić się moją ciężką pracą z każdym, kto mógłby skorzystać, postanowiłem po prostu opublikować to tutaj.
pocierać
4
Głosowanie w celu ponownego otwarcia, abyśmy mogli podzielić to na pytania i odpowiedzi
muru

Odpowiedzi:

11

Alternatywa - Migawki LVM - O migawkach LVM możesz przeczytać tutaj: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

W skrócie - migawki są sposobem na zamrożenie używanych sektorów na dysku twardym, mówiąc systemowi, aby zapisał dowolną zmianę / usunięcie / dodanie w zarezerwowanej części dysku twardego, zwanej woluminem migawki, tym samym opóźniając decyzję o zachowaniu / odrzuceniu zmian na dysku do pewnego czasu w przyszłości, o ile zapewnia przestrzeń woluminów migawki. Tak więc, gdy zdecydujesz się cofnąć zmiany (lub zachować je), możesz to zrobić za pomocą jednej linii.

Na początku może się to wydawać skomplikowane, ale zapewniam cię, że po pierwszym wysiłku wszystko, czego potrzeba do korzystania z mechanizmu migawki, to tylko 2-wierszowe skrypty (pod warunkiem pobrania!)

Gwarancja - nie udzielamy żadnej gwarancji na poniższe instrukcje. Używaj na własne ryzyko!

W jaki sposób?

Jeśli nie masz wstępnie skonfigurowanej grupy woluminów, prawdopodobnie będziesz musiał zainstalować świeżą, czystą wersję Ubuntu. Następnie trzeba będzie po raz pierwszy włożyć trochę wysiłku w prawidłową konfigurację systemu, ale od tego momentu migawka stanie się łatwa . Mówiąc „bez wysiłku” mam na myśli polecenia jednego linijki, używając wstępnie skonfigurowanych skryptów.

  1. Uruchom komputer na Live CD z Ubuntu (jeszcze nie ma instalacji .. tylko Live CD)
  2. Otwórz Akcesoria -> Terminal
  3. Wyczyścimy dysk twardy! Wykonaj kopię zapasową wszystkiego, co ważne, zanim przejdziesz przez ten etap.

    Najpierw usuńmy istniejące partycje:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Utwórz partycję rozruchową i resztę dysku jako drugą partycję

    # 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.
    

    Aby sprawdzić, czy zmiany działały poprawnie, wykonaj:

    # fdisk --list
    

    Powinieneś dostać coś takiego:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Usuń wszystkie poprzednie grupy woluminów / woluminy logiczne:

    # lvdisplay 
    

    Wyświetli logiczne woluminy, które możesz mieć w systemie

    # lvremove <existing_logical_volume_name>
    

    Jeśli jakakolwiek instalacja woluminowa, która może zakłócać tę instalację, musi zostać usunięta.

    # vgdisplay 
    

    Pokaże każdą istniejącą grupę woluminów w systemie

    # vgremove <existing_volume_group>
    

    Taki sam jak dla grup woluminów ..

  6. Utwórz grupę woluminów „vgsnap”

    # vgcreate vgsnap /dev/sda2
    

    Powinny wynikać z:

      Volume group "vgsnap" successfully created
    
  7. Utwórz wolumin logiczny

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

    Główny wolumin logiczny, zaczynający się od 100% urządzenia.

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

    To zdejmie 30G dla woluminów wymiany i migawek. Oczywiście - możesz wybrać mniejsze rozmiary dla zamiany / migawki.

    > 'y'
      for the warning shown.
    

    I utwórz wolumin wymiany:

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

    Uwaga: pozostawiamy teraz 15 GB nieużywanego miejsca na dysku, zarezerwowane dla przyszłej migawki.

  8. Instalowanie Ubuntu

    Zamknij termin i uruchom instalatora.

    Wybierz „Użyj LVM ...” (możesz także włączyć szyfrowanie całego dysku - ale go nie testowałem ..)

    Wybierz „Coś innego” i naciśnij przycisk Kontynuuj. Na tym etapie znajdziesz przydzielone ilości / dev / mapper / ... woluminów. Niektóre z nich są generowane automatycznie (lvsnap- *) - na razie możesz je zignorować.

    Wybierz: / dev / mapper / vgsnap-lvroot volume. Wybierz „ext4” jako format i zamontuj jako „/”

    Wybierz: / dev / mapper / vgsnap-lvswap volume i wybierz „swap area”

    Jeśli chcesz utworzyć zaszyfrowany dysk (nie mam pojęcia, czy to działałoby z migawkami?), Prawdopodobnie będziesz chciał wybrać / dev / sda2 i zaznaczyć „wolumin do szyfrowania”. Nie przetestowałem tego jednak ...

    Uwaga: Nieużywane 15G pozostaje wolne dla woluminu migawki.

    Wybierz: partycję / dev / sda1. Sformatuj go jako „ext2” i zamontuj jako „/ boot”

    Poniżej - wybierz: partycję / dev / sda1 jako boot

    Zainstalować!

Korzystanie z migawki

Poniższe kroki pokażą, jak korzystać z migawki w danym momencie:

  1. Montowanie migawki:

    Utwórz wolumin migawki

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

    Utwórz katalog montowania

    # mkdir /mnt/vgsnap-lvsnap
    

    Zamontuj migawkę jako montaż tylko do odczytu

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

    Migawka jest włączona!

    W tym momencie możesz zacząć popsuć system, zainstalować sterowniki beta, a nawet (nie! To po prostu nieodpowiednie).

    Od teraz możesz w dowolnym momencie (o ile pozwala na to rozmiar migawki ...) powrócić do poprzedniego stanu lub, jeśli jesteś zadowolony z nowego wyglądu, zachowaj go.

  2. Automatyczne monitorowanie wolnej przestrzeni dyskowej migawki: za pomocą poprawionej wersji skryptu podanej tutaj: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ Stworzyłem skrypt monitor_snapshot .

    Jak go używać / zainstalować? - Prawie jak w powyższym linku:

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

    Przed uruchomieniem go po raz pierwszy lepiej edytuj zawarte w nim wartości, takie jak adres e-mail (do którego mają być wysyłane powiadomienia itp.). Przy prawidłowej konfiguracji demon cron będzie uruchamiał skrypt co X godzin / dni - zgodnie z decyzją - i powiadomimy Cię, gdy migawka będzie prawie pełna.

    Aby przetestować uruchomienie skryptu:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Wyświetli procent (liczbę) wolnego miejsca w migawce.

    Ważny! Po zakończeniu testów / instalacji - przywróć lub zachowaj zmiany - i zamontuj migawkę!

  3. Cofanie zmian: (Zobacz skrypt rollback_snapshot , z następującymi instrukcjami, link na końcu dokumentu)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    Spowoduje to również umountowanie migawki, ale odrzuci wszelkie zmiany. Ponadto - zobaczysz ostrzeżenie sugerujące, że przywrócenie nastąpi tylko przy następnej aktywacji, więc:

    # reboot
    

    Uwaga: jeśli pominiesz scalanie, zmiany zostaną zatwierdzone po umountowaniu migawki.

  4. Zatwierdzanie zmian - podłączanie migawki: (Zobacz skrypt commit_snapshot , z następującymi instrukcjami - link na końcu dokumentu)

    # 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. Ponowne montowanie migawki: (Zobacz skrypt remount , z następującymi instrukcjami - link na końcu dokumentu) Prawie jak wcześniej:

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

    Jeśli zapisałeś monitor_snapshot w swoim katalogu domowym, możesz przywrócić go z powrotem:

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

To wszystko ludzie! Poniższe instrukcje dotyczą tylko osób rezygnujących;)

  1. Odrzucanie woluminu migawki (jeśli nie jest już wymagane)

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

    (Możesz także zmienić rozmiar partycji głównej lub wymiany, aby zająć brakujące 15G zarezerwowane dla wymiany)

  2. Odrzucanie grupy woluminów - Możliwe tylko poprzez usunięcie woluminów grupy woluminów, co prawdopodobnie oznacza usunięcie instalacji systemu operacyjnego. Ale oczywiście nie ma prawdziwej potrzeby usuwania grupy woluminów ...

    Aby usunąć grupę woluminów:

    # vgremove vgsnap
    

Ważna uwaga! - formatowanie / uruchamianie programu fdisk i usuwanie wszystkich partycji NIE spowoduje usunięcia woluminów ani grupy, ponieważ są one zapisane na innej części dysku ... Więc po prostu skorzystaj z instrukcji usuwania podanych powyżej i usuń woluminy i grupę, jeśli to konieczne.

pocierać
źródło
Wielkie dzięki za te szczegółowe instrukcje ... wow.
Adriano Lucas
2

Tworzenie współdziałania do tworzenia kopii zapasowych przy użyciu lvcreate -s -L <size> -n <snapshot_name> <volume_name>

Tutaj nazwa woluminu to nazwa woluminu, którego migawkę chcesz wykonać. Aby uzyskać więcej informacji, możesz również przejść przez ten samouczek

Bidyut
źródło
1
Miły przewodnik! Należy jednak pamiętać, że moje zamiary, aby zapewnić sposób tworzenia kopii zapasowych bez nośnika kopii zapasowej . Jako forma leniwej kopii zapasowej. W dawnych czasach było to ratowanie życia, z Norton GoBack i Windows 2000 :) Naprawdę bałaganiłem w systemach, na których pracowałem, i mogłem liczyć na to, że mogę w mgnieniu oka cofnąć swoje błędy. ! Kopie zapasowe są prawdopodobnie właściwą drogą do przejścia na prawdziwy serwer, ale dla stacji roboczej nie umieszczonej na VMWare / VirtualBox (która zapewnia migawki zewnętrznie) uważam, że migawki są właściwą drogą.
pocierać