Comment puis-je utiliser des instantanés LVM dans Ubuntu?

19

J'ai installé Ubuntu en utilisant ces options:

  • Effacez le disque et installez Ubuntu
  • Crypter la nouvelle installation d'Ubuntu
  • Utiliser LVM

Comment puis-je créer des instantanés LVM, afin de pouvoir annuler les modifications du système lorsque cela est nécessaire?

Aleksandr Gornostal
la source

Réponses:

22

Remarque: toutes les commandes doivent être exécutées à partir de sudo

Tout d'abord, réduisez la taille de votre volume racine pour faire de la place pour un volume d'instantané

  • Démarrage à partir du Live CD
  • fdisk -l pour voir le nom de votre appareil.
    Type de taille des secteurs de fin de début de périphérique
    / dev / sda1 2048 1050623 1048576 512M Système EFI
    / dev / sda2 1050624 2050047 999424 488M système de fichiers Linux
    / dev / sda3 2050048 500117503 498067456 Système de fichiers Linux 237,5G
    
    /dev/sda3 dans mon cas
  • cryptsetup luksOpen /dev/sda3 crypt1 décrypter votre volume
  • vgscan --mknodes pour trouver tous les groupes de volumes
    Lecture de tous les volumes physiques. Cela peut prendre un peu de temps...
    Groupe de volumes "ubuntu-vg" trouvé à l'aide du type de métadonnées lvm2
    
  • vgchange -ay pour activer tous vos groupes de volumes
    2 volume (s) logique (s) dans le groupe de volumes "ubuntu-vg" maintenant actif
    
  • lvreduce -r -L -20G /dev/ubuntu-vg/rootpour réduire la taille de votre volume racine de 20 Go. Cela peut prendre un certain temps (cela m'a pris environ 4 minutes).
    Cet espace sera ensuite utilisé pour créer des instantanés LVM.
  • vgs pour voir que vous avez en fait 20 Go d'espace libre
    VG #PV #LV #SN Attr VSize VFree
    ubuntu-vg 1 2 0 wz - n- 230.44g 20.01g
    
  • reboot et supprimer Live CD

Créer un instantané (c.-à-d. Activer le mode "expérimentation")

Maintenant, chaque fois que vous voulez faire quelque chose de risqué avec votre système, exécutez la commande suivante

  • lvcreate -s -n snap -L 20G /dev/ubuntu-vg/root
    Remarque: /dev/ubuntu-vg/rootest un volume logique dont vous souhaitez avoir un instantané
  • lvs pour voir que le volume a été créé
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy% Sync Convert
    racine ubuntu-vg owi-aos --- 201,59g                                                    
    snap ubuntu-vg swi-as --- 20.00g racine 0.00                                   
    swap_1 ubuntu-vg -wi-ao ---- 15.90g
    
    L'instantané est actif à partir du moment où vous exécutez lvcreate. Vous pouvez maintenant commencer à expérimenter de nouvelles choses.

Scénario n ° 1: vous souhaitez annuler les modifications

  • lvconvert --merge /dev/mapper/ubuntu--vg-snap
    Le volume logique ubuntu-vg / root contient un système de fichiers utilisé.
    Impossible de fusionner sur un volume d'origine ouvert.
    La fusion de l'instantané ubuntu-vg / snap se produira lors de la prochaine activation d'ubuntu-vg / root.
    
  • reboot

Scénario n ° 2: vous souhaitez conserver les modifications

  • lvremove /dev/mapper/ubuntu--vg-snap

En conclusion

Vous devez essentiellement exécuter lvcreatepour démarrer le processus, puis l'exécuter lvconvert --mergeou lvremovele terminer.

Gardez à l'esprit que lorsque l'instantané est actif, en raison de la stratégie de copie sur écriture, toutes les modifications sont enregistrées dans ces 20 Go d'espace (ou quelle que soit la valeur que vous définissez). Une façon de vérifier la capacité restante est de regarder la colonne de lvscommande Data% .

Aleksandr Gornostal
la source
Bon à entendre :) Merci @ cl-netbox
Aleksandr Gornostal
N'avez-vous pas besoin de réduire le système de fichiers avant d'exécuter lvreducesur son conteneur?
Mark
@Mark -rflag does that
Aleksandr Gornostal
Est-il sûr de fonctionner lvconvert --mergelorsque le système de fichiers est monté, ou devez-vous le faire à partir de LiveCD?
CharlesB
1
@CharlesB oui, vous devriez l'exécuter lorsqu'il est monté
Aleksandr Gornostal