Table des matières

LVM Logical Volume Manager



Lister vos disques

Utiliser la commande lsblk:

lsblk

Créer une partition

fdisk /dev/vdb

Appuyez deux fois sur Entrée pour accepter les premier et dernier cylindres par défaut.

Pour préparer la partition à utiliser par LVM, utilisez les deux commandes suivantes.

Vérifiez et écrivez les informations sur le disque dur.

Après ces commandes, l'invite fdisk doit se fermer et vous revenez à l'invite bash de votre terminal.

Création du volume physique

La mise en place de volumes logiques est un modèle à trois couches :

  1. Volume physique
  2. Volume group
  3. Volume logique
root@debian1:/home/sylvain# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.

On vérifie:

root@debian1:/home/sylvain# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/vda5
  VG Name               debian1-vg
  PV Size               249,52 GiB / not usable 2,00 MiB
  Allocatable           yes 
  PE Size               4,00 MiB
  Total PE              63877
  Free PE               7
  Allocated PE          63870
  PV UUID               2cFsD1-qRB3-olFn-FC3W-IMRb-QBG2-2xI71u
 
  "/dev/vdb1" is a new physical volume of "<50,00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb1
  VG Name               
  PV Size               <50,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               31ciJF-WnDy-uQ34-qw2l-FSfB-0csk-eUafMt

Création du Volume Group

root@debian1:/home/sylvain# vgcreate debian1-vg2 /dev/vdb1
  Volume group "debian1-vg2" successfully created

On Vérifie:

root@debian1:/home/sylvain# vgdisplay 
  --- Volume group ---
  VG Name               debian1-vg2
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <50,00 GiB
  PE Size               4,00 MiB
  Total PE              12799
  Alloc PE / Size       0 / 0   
  Free  PE / Size       12799 / <50,00 GiB
  VG UUID               oL7KnP-O0XJ-mvUu-93mp-FnoM-bOHN-fByd3n

Création d'un volume logique

root@debian1:/home/sylvain# lvcreate -L 49G -n 50G-Disk debian1-vg2
  Logical volume "50G-Disk" created.

On Vérifie :

root@debian1:/home/sylvain# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/debian1-vg2/50G-Disk
  LV Name                50G-Disk
  VG Name                debian1-vg2
  LV UUID                ayAgOk-jo0r-CayP-YG0P-7SUk-zs2P-XIe0W9
  LV Write Access        read/write
  LV Creation host, time debian1, 2022-04-27 19:05:18 +0200
  LV Status              available
  # open                 0
  LV Size                49,00 GiB
  Current LE             12544
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5

Renommer un Volume Logique

Pour renommer “50G-Disk” dans le volume groupe debian1-vg2 en 50Go-LVM:

lvrename /dev/debian1-vg2/50G-Disk debian1-vg2/50G-LVM

Une syntaxe alternantive pour renommer un volume logique est:

lvrename debian1-vg2 50G-Disk 50G-LVM

Contrôler la commande:

sudo lvdisplay

Contrôler les Volumes Logiques

root@debian1:/home/sylvain# lvscan
  ACTIVE            '/dev/debian1-vg2/50G-Disk' [49,00 GiB] inherit
  ACTIVE            '/dev/debian1-vg/root' [23,28 GiB] inherit
  ACTIVE            '/dev/debian1-vg/var' [9,31 GiB] inherit
  ACTIVE            '/dev/debian1-vg/swap_1' [976,00 MiB] inherit
  ACTIVE            '/dev/debian1-vg/tmp' [<1,86 GiB] inherit
  ACTIVE            '/dev/debian1-vg/home' [<214,09 GiB] inherit

Tout semble ok ! 8-)

Commande

  1. pvscan (infos Volume physique membre de LVM)
  2. vgscan (infos Groupes LVM)
  3. lvsacn (infos Volumes logique LVM)

Il existe trois outils de base pour rendre les volumes physiques, les groupes de volumes et les volumes logiques plus grands ou plus petits.

Remarque: Chacune de ces commandes devra être précédée de pv, vg ou lv en fonction de votre travail.

Suppression Volumes

lvremove '/dev/debian1-vg2/50G-Disk'

Formatage

mkfs -t ext4 /dev/debian1-vg2/50G-Disk

Montage

mkdir /Essai1
mount /dev/debian1-vg2/50G-Disk /Essai1
df -h

(Voir fstab pour un montage persistant)  

Redimensionner un volume

 lvextend -L12G /dev/debian1-vg2/50G-Disk

va étendre la taille du volume logique à 12 GB.

lvextend -L+1G /dev/debian1-vg2/50G-Disk

va ajouter 1 GB au volume logique. Il faut ensuite retailler le file system qui repose sur ce volume logique :

umount /dev/debian1-vg2/50G-Disk
e2fsck -f /dev/debian1-vg2/50G-Disk
resize2fs /dev/debian1-vg2/50G-Disk
mount /dev/debian1-vg2/50G-Disk

Bien sûr, il faut avoir contrôlé auparavant que le volume group a suffisamment d'espace libre, avec la commande vgdisplay.


Ajouter un disque

Pour installer un nouveau disque dur, suivez les étapes ci-dessus pour créer une nouvelle partition et ajoutez le type de partition à LVM (8e). Ensuite, utilisez pvcreate pour créer un volume physique que LVM peut reconnaître.

Ajouter un nouveau disque dur au groupe de volumes:

Pour ajouter le nouveau disque dur à un groupe de volumes, vous devez simplement connaître votre nouvelle partition, /dev/vdc1 dans notre cas, ainsi que le nom du groupe de volumes auquel vous souhaitez l'ajouter.

Cela ajoutera le nouveau volume physique au groupe de volumes existant.

vgextend debian1-vg2 /dev/vdc1

Étendre le volume logique

Pour redimensionner le volume logique, nous devons dire combien nous voulons étendre par taille plutôt que par périphérique. Dans notre exemple, nous venons d'ajouter un disque dur de 8 Go à notre “debian1-vg” de 3 Go. Pour rendre cet espace utilisable, nous pouvons utiliser lvextend ou lvresize.

lvextend -L8G /dev/debian1-vg2/50G-Disk

Bien que cette commande fonctionne, vous verrez qu’elle redimensionnera réellement notre volume logique à 8 Go au lieu d’ajouter 8 Go au volume existant comme nous le souhaitions. Pour ajouter les 3 derniers gigaoctets disponibles, vous devez utiliser la commande suivante.

lvextend -L+3G /dev/debian1-vg2/50G-Disk

Notre volume logique est maintenant de 11 Go.

Étendre le système de fichiers

resize2fs /dev/debian1-vg2/50G-Disk

Le volume logique est de 11 Go, mais le système de fichiers de ce volume ne contient encore que 3 Go. Pour que le système de fichiers utilise la totalité des 11 Go disponibles, vous devez utiliser la commande resize2fs. Il suffit de pointer resize2fs sur le volume logique de 11 Go et il fera la magie pour vous.

Réduire le volume logique

Si vous souhaitez supprimer un disque dur d'un groupe de volumes, vous devez suivre les étapes ci-dessus dans l'ordre inverse et utiliser lvreduce et vgreduce à la place.

  1. redimensionner le système de fichiers (assurez-vous de déplacer les fichiers dans une zone sécurisée du disque dur avant de les redimensionner)
  2. réduire le volume logique (au lieu de + pour étendre, vous pouvez également utiliser - pour réduire la taille)
  3. retirer le disque dur du groupe de volumes avec vgreduce

Sauvegarder un volume logique

Lorsque LVM prend un instantané, une photo de l'apparence exacte du volume logique est prise et cette photo peut être utilisée pour effectuer une copie sur un disque dur différent. Lors de la copie, toute nouvelle information devant être ajoutée au volume logique est écrite sur le disque comme d'habitude, mais les modifications sont suivies afin que l'image d'origine ne soit jamais détruite.

Pour créer un instantané, nous devons créer un nouveau volume logique avec suffisamment d'espace libre pour contenir toute nouvelle information qui sera écrite sur le volume logique lors de la sauvegarde. Si le lecteur n'est pas en cours d'écriture, vous pouvez utiliser une très petite quantité de stockage. Une fois que nous avons terminé notre sauvegarde, nous supprimons simplement le volume logique temporaire et le volume logique d'origine continue normalement.

Créer un nouvel instantané

Pour créer un instantané de debian1-vg2, utilisez la commande lvcreate comme avant, mais utilisez l'indicateur -s.

lvcreate -L512M -s -n 50G-Disk-backup /dev/debian1-vg2/50G-Disk

Nous avons créé ici un volume logique de 512 Mo seulement, car le lecteur n’est pas utilisé de manière active. Les 512 Mo stockeront toutes les nouvelles écritures pendant la sauvegarde.  

mkdir /mnt/50G-Disk-backup 
mount /dev/debian1-vg2/50G-Disk-backup /mnt/50G-Disk-backup

Copier un instantané et supprimer un volume logique
Tout ce que vous avez à faire est de copier tous les fichiers de /mnt/50G-Disk-backup/ sur un disque dur externe ou de le sauvegarder pour le placer dans un seul fichier.

Remarque: tar -c créera une archive et -f indiquera l'emplacement et le nom du fichier de l'archive. Pour obtenir de l'aide sur l'utilisation de la commande tar man tar dans le terminal.

tar -cf /home/rothgar/Backup/50G-Disk-backup-ss /mnt/50G-Disk-backup

N'oubliez pas que pendant la sauvegarde, tous les fichiers qui seraient écrits dans 50G-Disk font l'objet d'un suivi dans le volume logique temporaire créé précédemment. Assurez-vous de disposer de suffisamment d'espace libre pendant la sauvegarde.  

Une fois la sauvegarde terminée, démontez le volume et supprimez l'instantané temporaire.

umount /mnt/50G-Disk-backup 
lvremove /dev/debian1-vg2/50G-Disk-backup/