web-dev-qa-db-fra.com

Configurer LVM Snapshot comme point de sauvegarde / restauration dans Ubuntu

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

Pourquoi?

Eh bien, comme je le vois bien, avec toute la grande utilité de Linux, son plus gros inconvénient est sa méthode d'installation mélangée. Toutes les dll vont dans un répertoire. Tous les fichiers de configuration à un autre. Et les fichiers binaires sont également mis dans un tas. Oui, Windows fonctionne plus ou moins de la même manière, mais avec la nature du logiciel système/serveur installé sur Linux, étant donné que la plupart des logiciels installés ne sont à maturité que d’environ 95% à la fois, gâcher votre système 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 du système (par opposition à la sauvegarde de données/fichiers uniquement) vous obligent à éteindre votre ordinateur et à utiliser une sorte de CD live amorçable et un support de sauvegarde. De plus, si le lecteur 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?

29
rub

L'alternative - Instantanés LVM - Vous pouvez en savoir plus 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 demandant au système d'écrire toute modification/suppression/ajout d'une partie réservée du disque dur, appelée volume d'instantané, ce qui permet de différer la décision de conserver/d'annuler les modifications. sur le lecteur à un moment futur, dans la mesure où l'espace de volume instantané fournit. Et ainsi, une fois que vous avez décidé d'annuler les modifications (ou de les conserver), vous pouvez le faire en une seule ligne.

Cela peut sembler complexe au début, 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 constitué de scripts à 2 lignes (téléchargements fournis!)

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

Comment?

Si vous ne possédez pas de groupe de volumes préconfiguré, vous devrez probablement installer un Ubuntu vierge et vierge. Ensuite, vous devrez vous efforcer de configurer le système correctement pour la première fois, mais à partir de ce moment, l’instantané deviendra sans effort . Et par effort, je veux dire une commande linéaire, en utilisant des scripts préconfigurés.

  1. Démarrez sur le cd live ubuntu (pas d’installation pour le moment .. juste le cd live)
  2. Accessoires ouverts -> Terminal
  3. Nous allons nettoyer le disque dur! Veuillez sauvegarder tout ce qui est important avant de passer à 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é, exécutez:

    # fdisk --list
    

    Vous devriez obtenir 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 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 en 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>
    

    Comme pour les groupes de volumes.

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

    # vgcreate vgsnap /dev/sda2
    

    Devrait 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, commençant par 100% du périphérique.

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

    Cela enlèvera 30G pour les volumes d'échange et d'instantané. Bien sûr, vous pouvez choisir 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 15G d’espace disque inutilisé, réservé pour le prochain instantané.

  8. Installer Ubuntu

    Fermez le terminal et lancez l’installateur.

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

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

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

    Sélectionnez:/dev/mapper/vgsnap-lvswap volume et choisissez "zone d'échange"

    Si vous voulez créer un lecteur chiffré (je ne sais pas si cela fonctionnerait avec les instantanés?), Vous voudrez probablement sélectionner/dev/sda2 et marquer le "volume à chiffrer". Je ne l'ai pas testé cependant ..

    Remarque: les 15G non utilisés sont laissés libres pour le volume d'instantané.

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

    En bas, choisissez:/dev/sda1 partition as boot

    Installez!

Utiliser l'instantané

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

  1. Monter l'instantané:

    Créer le volume d'instantané

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

    Créer le répertoire de montage

    # mkdir /mnt/vgsnap-lvsnap
    

    Monter 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 à gâcher votre système, à installer des pilotes bêta, et même (non! C'est simplement inapproprié).

    À partir de maintenant, vous pouvez à tout moment (dans la mesure où le permet la taille de l'instantané) 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: Utilisation d'une version peaufinée du script fourni ici: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ J'ai créé monitor_snapshot script.

    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 devez modifier les valeurs qu'il contient, telles que votre adresse électronique (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 - comme vous le décidez - et vous avertir une fois que l'instantané est sur le point d'être complet.

    Pour tester le script exécuté:

    # 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 rollback_snapshot script, avec les instructions suivantes, lien à la fin du document)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

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

    # reboot
    

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

  4. Validation des modifications - démontage de la capture instantanée: (voir commit_snapshot script, 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. Remontez l'instantané: (Voir remount script, avec les instructions suivantes - lien à la fin du document)

    # 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 sauvegardé le monitor_snapshot chez vous, 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 ne sont valables que pour ceux qui cessent de fumer;)

  1. Suppression du volume de la capture instantanée (si nécessaire)

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

    (Vous pouvez également vouloir redimensionner la partition racine ou le swap pour occuper les 15 Go manquants réservés 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
    

Remarque importante! - formater/exécuter fdisk et supprimer toutes les partitions ne supprime 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.

11
rub

Création d'une tâche cron pour effectuer une sauvegarde à l'aide de lvcreate -s -L <size> -n <snapshot_name> <volume_name>

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

2
Bidyut