Configuration de LVM Snapshot comme point de sauvegarde / restauration dans Ubuntu

29

Configuration de LVM Snapshot comme point de sauvegarde / restauration dans ubuntu.

Pourquoi?

Eh bien, comme je le vois, avec toute la grande utilité de Linux, son plus gros inconvénient est sa façon mélangée d'installer des applications. Toutes les DLL vont dans un seul répertoire. Tous les fichiers de configuration à un autre. Et les binaires sont également regroupés. Oui, Windows fonctionne plus ou moins de la même manière, mais avec la nature des logiciels système / serveur installés sur Linux, étant donné que la plupart des logiciels installés ne sont matures qu'à 95% à tout moment, gâcher votre système deux fois par mois est très probable ..

Bien sûr, nous pouvons sauvegarder le système avant et après chaque installation, mais cela prend un million d'années. Les sauvegardes système (contrairement à la sauvegarde des données / fichiers uniquement) vous obligent à éteindre votre ordinateur et à utiliser une certaine forme de CD live amorçable et un support de sauvegarde. Et, si le disque est plein à plus de 15%, la sauvegarde peut prendre beaucoup de temps, même avec du matériel moderne.

Alors, comment cela peut-il être fait?

frotter
la source
3
Ce n'est pas une question ... aussi je suppose que vous n'avez pas regardé très fort; un rapide google pour "ubuntu lvm snapshot" et la toute première chose qui apparaît est wiki.ubuntu.com/Lvm
psusi
1
Rien à voir avec ... tu l'as lu? Il couvre tout ce que vous avez dit ici.
psusi
5
Bien sûr, vous pouvez poser une question puis y répondre vous-même - mais gardez à l'esprit que ce site fonctionne comme Q&A - non destiné aux didacticiels sous forme gratuite.
guntbert
3
C'est ca le truc. AskUbuntu fournit des didacticiels, mais je n'ai pas trouvé de moyen facile d'en mettre un. Et comme je voulais partager mon travail acharné avec tous ceux qui pourraient en bénéficier, j'ai décidé de le poster ici.
frotter le
4
Voter pour rouvrir afin que nous puissions diviser cela en questions et réponses
muru

Réponses:

11

L'alternative - LVM Snapshots - Vous pouvez lire sur les instantanés LVM ici: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html

En bref - les instantanés sont un moyen de geler les secteurs utilisés sur le disque dur, en disant au système d'écrire toute modification / suppression / ajout sur une partie réservée du disque dur, appelée volume d'instantané, différant ainsi la décision de conserver / rejeter les modifications sur le lecteur à une heure future, dans la mesure où l'espace de volume de capture instantanée fournit. Et donc, une fois que vous décidez d'annuler les modifications (ou de les conserver), vous pouvez le faire avec une seule ligne.

Cela peut sembler complexe au premier abord, mais je peux vous assurer qu'après le premier effort, tout ce qui est nécessaire pour utiliser le mécanisme d'instantané est juste 2 scripts de ligne (téléchargements fournis!)

Garantie - Aucune garantie n'est fournie pour les instructions ci-dessous. À utiliser à vos risques et périls!

Comment?

Si vous n'avez pas de groupe de volumes préconfiguré, vous devrez probablement installer un Ubuntu propre et frais. Ensuite, vous devrez faire des efforts pour configurer correctement le système pour la première fois, mais à partir de ce moment, l'instantané deviendra sans effort . Et par effort, je veux dire une commande liner, en utilisant des scripts préconfigurés.

  1. Démarrez sur le live cd d'ubuntu (pas encore d'installation .. juste le live cd)
  2. Accessoires ouverts -> Terminal
  3. Nous allons vider le disque dur! Veuillez sauvegarder tout ce qui est important avant de passer par cette étape.

    Tout d'abord, supprimons les partitions existantes:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Créez la partition de démarrage et le reste du lecteur comme l'autre partition

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

    Pour vérifier que les modifications ont bien fonctionné:

    # fdisk --list
    

    Vous devriez obtenir quelque chose comme ceci:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Supprimez tous les groupes de volumes / volumes logiques précédents:

    # lvdisplay 
    

    Affiche les volumes logiques que vous pouvez avoir sur le système

    # lvremove <existing_logical_volume_name>
    

    Si une installation de volume susceptible d'interférer avec cette installation doit être supprimée.

    # vgdisplay 
    

    Affiche tout groupe de volumes existant sur le système

    # vgremove <existing_volume_group>
    

    Identique aux groupes de volumes.

  6. Créer le groupe de volumes 'vgsnap'

    # vgcreate vgsnap /dev/sda2
    

    Doit résulter avec:

      Volume group "vgsnap" successfully created
    
  7. Créer le volume logique

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

    Le volume logique racine, en commençant par 100% du périphérique.

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

    Cela enlèvera 30G pour les volumes de swap & snapshot. Bien sûr, vous pouvez choisir des tailles plus petites pour le swap / snapshot.

    > 'y'
      for the warning shown.
    

    Et créez le volume d'échange:

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

    Remarque: nous laissons maintenant 15G d'espace disque inutilisé, réservé pour le futur instantané.

  8. Installer Ubuntu

    Fermez le terminal et démarrez l'installateur.

    Choisissez "Utiliser LVM ..." (Vous pouvez également choisir d'activer le chiffrement du disque entier - mais je ne l'ai pas testé ..)

    Sélectionnez "Quelque chose d'autre" et appuyez sur Continuer. À ce stade, vous trouverez un ensemble de volumes / dev / mapper / ... définis. Certains d'entre eux sont générés automatiquement (lvsnap- *) - vous pouvez les ignorer pour l'instant.

    Sélectionnez: / dev / mapper / vgsnap-lvroot volume. Choisissez "ext4" comme format et montez comme '/'

    Sélectionnez: / dev / mapper / vgsnap-lvswap volume, et choisissez "swap area"

    Si vous devez créer un lecteur chiffré (je n'ai aucune idée si cela fonctionnerait avec les instantanés?), Vous voudrez probablement sélectionner le / dev / sda2 et marquer le "volume pour le chiffrement". Je ne l'ai pas testé cependant ..

    Remarque: Les 15G inutilisés sont laissés libres pour le volume de cliché.

    Sélectionnez: / dev / sda1 partition. Formatez-le comme «ext2» et montez-le comme «/ boot»

    Ci-dessous - choisissez: / dev / sda1 partition as boot

    Installer!

Utilisation de l'instantané

Les étapes suivantes montrent comment utiliser l'instantané à tout moment:

  1. Montage de l'instantané:

    Créer le volume d'instantanés

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

    Créez le répertoire de montage

    # mkdir /mnt/vgsnap-lvsnap
    

    Montez l'instantané comme montage en lecture seule

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

    Le cliché est activé!

    À ce stade, vous pouvez commencer à gâcher votre système, à installer des pilotes bêta et même (Non! C'est tout simplement inapproprié).

    À partir de maintenant, vous pouvez à tout moment (dans la mesure où la taille de l'instantané le prévoit ..) revenir à l'état précédent ou, si vous êtes satisfait du nouveau look, conservez-le.

  2. Surveillance automatique de l'espace disque libre du volume d'instantanés: à l'aide d'une version modifiée du script fourni ici: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ J'ai créé le script monitor_snapshot .

    Comment l'utiliser / l'installer? - À peu près comme avec le lien ci-dessus:

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

    Avant de l'exécuter pour la première fois, vous feriez mieux de modifier les valeurs qu'il contient, telles que votre adresse e-mail (où les notifications doivent être envoyées, etc.). S'il est correctement configuré, le démon cron exécutera le script toutes les X heures / jours - que vous décidez - et vous avertir une fois que l'instantané est sur le point d'être plein.

    Pour tester l'exécution du script:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Il imprimera le pourcentage (nombre) d'espace libre dans l'instantané.

    Important! Une fois que vous avez terminé vos tests / installations - annulez ou conservez les modifications - et montez l'instantané!

  3. Annulation des modifications: (Voir le script rollback_snapshot , avec les instructions suivantes, lien à la fin du document)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    Cela démontera également l'instantané, mais supprimera toutes vos modifications. Aussi - Vous verrez un avertissement suggérant que le retour ne se produira que lors de la prochaine activation, donc:

    # reboot
    

    Remarque: Si vous sautez la fusion, vos modifications seront validées une fois que vous aurez démonté l'instantané.

  4. Validation des modifications - démontage de l'instantané: (Voir le script commit_snapshot , avec les instructions suivantes - lien à la fin du document)

    # 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. Remontage de l'instantané: (Voir le script de remontage , avec les instructions suivantes - lien à la fin du document) À peu près comme avant:

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

    Si vous avez enregistré le monitor_snapshot dans votre répertoire personnel, vous pouvez le restaurer:

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

C'est tout le monde! Les instructions suivantes sont réservées aux abandons;)

  1. Suppression du volume de cliché (s'il n'est plus nécessaire)

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

    (Vous pouvez également vouloir redimensionner la partition racine ou le swap pour occuper le 15G manquant réservé au swap)

  2. Suppression du groupe de volumes - Possible uniquement en supprimant les volumes du groupe de volumes, ce qui signifie probablement la suppression de l'installation du système d'exploitation. Mais bien sûr, il n'est pas vraiment nécessaire de supprimer le groupe de volumes ...

    Pour supprimer le groupe de volumes:

    # vgremove vgsnap
    

Note importante! - le formatage / l'exécution de fdisk et la suppression de toutes les partitions ne supprimeront PAS les volumes ni le groupe, car ceux-ci sont écrits sur une autre partie du lecteur ... Donc, utilisez simplement les instructions de suppression données ci-dessus et supprimez les volumes et le groupe si nécessaire.

frotter
la source
Merci beaucoup pour ces instructions détaillées ... wow.
Adriano Lucas
2

Création d'un cronjob pour effectuer une sauvegarde à l'aide du lvcreate -s -L <size> -n <snapshot_name> <volume_name>

Ici, le nom du volume est le nom du volume dont vous souhaitez prendre un instantané. Pour plus de détails, vous pouvez également parcourir ce tutoriel

Bidyut
la source
1
Joli guide! Notez cependant que mes intentions étaient de fournir un moyen de sauvegarde sans support de sauvegarde . Comme une forme de sauvegarde paresseuse. Auparavant, c'était un épargnant de vie, avec Norton GoBack et Windows 2000 :) J'avais l'habitude de vraiment gâcher les systèmes sur lesquels je travaillais, et pouvoir compter sur le fait que je pouvais revenir sur mes erreurs en un rien de temps était un jeu d'enfant ! Les sauvegardes sont probablement la bonne façon de procéder sur un vrai serveur, mais pour un poste de travail non installé sur un VMWare / VirtualBox (qui fournissent des instantanés en externe), je crois que les instantanés sont la voie à suivre.
frottez