Configurer l'instantané LVM comme point de sauvegarde / restauration dans Ubuntu

29

Configurer LVM Snapshot comme point de sauvegarde / restauration dans Ubuntu.

Pourquoi?

Eh bien, comme je le vois, avec la grande utilité de Linux, son plus grand inconvénient est son mode mixte d’installation des applications. Toutes les dll vont dans un répertoire. Tous les fichiers de configuration à un autre. Et les binaires sont également mis en tas. 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'à environ 95% à la fois, le système échoue deux fois par mois. 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 (par opposition à la sauvegarde de données / fichiers) nécessitent que vous éteigniez votre ordinateur et utilisiez une forme de CD live amorçable et un support de sauvegarde. Et si le disque est rempli à plus de 15%, la sauvegarde peut prendre beaucoup de temps, même avec du matériel moderne.

Alors, comment cela peut-il être fait?

    
posée rub 21.02.2014 - 16:45
la source

2 réponses

7

L'alternative - Instantanés LVM - Vous pouvez lire ici les instantanés LVM: lien

En bref - les snapshots permettent de geler les secteurs utilisés sur le disque dur, en demandant au système d’écrire toute modification / suppression / ajout sur une partie réservée du HardDisk, appelée un volume instantané, retardant ainsi la décision de conserver / en supprimant les modifications sur le lecteur dans le futur, dans la mesure où l’espace du volume d’instantané le permet. Ainsi, une fois que vous décidez de restaurer les modifications (ou de les conserver), vous pouvez le faire avec une seule ligne.

Cela peut sembler complexe au début, mais je peux vous assurer qu’après un premier effort, tout ce qui est nécessaire pour utiliser le mécanisme de capture instantanée n’est que des scripts de 2 lignes (téléchargements fournis!)

Garantie - Aucune garantie sur ce qui est toujours donné pour les instructions ci-dessous. Utilisez à vos risques et périls!

Comment?

Si vous ne disposez pas d’un groupe de volumes préconfiguré, vous devrez probablement installer une nouvelle version d’Ubuntu. Ensuite, vous devrez vous efforcer de configurer le système correctement pour la première fois, mais à partir de ce moment, le snapshot deviendra sans effort . Et par effort, je veux dire des commandes à une ligne, en utilisant des scripts préconfigurés.

  1. Démarrez le cd ubuntu live (pas encore d’installation .. juste le cd live)
  2. Ouvrir les accessoires - & gt; 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 en tant que 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 avoir quelque chose comme ça:

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

    # lvdisplay 
    

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

    # lvremove <existing_logical_volume_name>
    

    Si une installation de volume pouvant 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 aboutir à:

      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 va décoller 30G pour swap & amp; volumes d'instantanés. Bien sûr vous pouvez choisissez des tailles plus petites pour le swap / instantané.

    > 'y'
      for the warning shown.
    

    Et créez le volume d'échange:

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

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

  8. Installation d'Ubuntu

    Fermez le terminal et démarrez le programme d’installation.

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

    Sélectionnez "Something Else" et appuyez sur continuer. A ce stade, vous trouverez des 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 ne sais pas si cela fonctionnerait avec les instantanés?), vous souhaiterez probablement sélectionner / dev / sda2 et marquer le "volume pour le chiffrement". Je n'ai pas testé si ..

    Remarque: les 15G inutilisés sont laissés libres pour le volume d’instantané.

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

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

    Installer!

Utiliser l’instantané

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

  1. Montage de l’instantané:

    Créez le volume d'instantané

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

    Créez le répertoire de montage

    # mkdir /mnt/vgsnap-lvsnap
    

    Montez l’instantané en tant que montage en lecture seule

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

    L'instantané est activé!

    À ce stade, vous pouvez commencer à bousiller votre système en installant 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 la capture d'écran fournit ..) revenir à l'état précédent ou, si vous êtes satisfait du nouveau look, le conserver.

  2. Surveillance automatique de l’espace disque disponible sur le volume instantané: En utilisant une version modifiée du script fourni ici: lien J'ai créé le script monitor_snapshot .

    Comment l'utiliser / l'installer? - Comme pour 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, il est préférable de modifier les valeurs, comme 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 - au moment où vous le déciderez - et vous avertira dès que le snapshot sera sur le point d'être saturé.

    Pour tester le script exécuté:

    # sh /etc/cron.hourly/monitor_snapshot
    

    Il imprimera le pourcentage (nombre) d’espace libre de l’instantané.

    Important! Une fois que vous avez terminé vos tests / installations - restaurer ou conserver les modifications - et configurer l’instantané!

  3. Modification de la version précédente: (Voir rollback_snapshot , avec les instructions suivantes, lien à la fin du document. )

    # lvconvert --merge /dev/vgsnap/lvsnap
    

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

    # reboot
    

    Remarque: Si vous ignorez la fusion, vos modifications seront validées une fois que vous aurez terminé la capture instantanée.

  4. Validation des modifications - Mise à jour 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. Réinstallation de l’instantané: (Voir remontage le script, avec les instructions suivantes - lien à la fin du document ) 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
    

Ce sont toutes les personnes! Les instructions suivantes sont destinées aux personnes qui cessent de fumer;)

  1. Annulation du volume d’instantané (si ce n’est plus nécessaire)

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

    (Vous souhaiterez peut-être également redimensionner la partition racine ou échanger pour occuper les 15G manquants réservés pour le swap)

  2. Supprimer le groupe de volumes - Possible uniquement en supprimant les volumes du groupe de volumes, ce qui implique 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
    

Remarque importante! - Le formatage / exécution de fdisk et la suppression de toutes les partitions ne suppriment PAS les volumes ni le groupe, car ceux-ci sont écrits sur une autre partie du lecteur. supprimer les instructions données ci-dessus et supprimer les volumes et le groupe si nécessaire.

    
réponse donnée rub 01.10.2015 - 15:45
la source
2

Créer un job cron pour effectuer une sauvegarde en utilisant lvcreate -s -L <size> -n <snapshot_name> <volume_name>

Ici le nom du volume est le nom du volume dont vous voulez prendre l’instantané. Pour plus de détails, vous pouvez également consulter ce tutoriel

    
réponse donnée Bidyut 03.10.2015 - 09:02
la source

Lire d'autres questions sur les étiquettes