Généralités système Linux

LVM sous Linux (Volumes Logiques)

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction




LVM (Logical Volume Manager, ou gestionnaire de volumes logiques en français) permet la création et la gestion de volumes logiques sous Linux. L'utilisation de volumes logiques remplace en quelque sorte le partitionnement des disques. C'est un système beaucoup plus souple, qui permet par exemple de diminuer la taille d'un système de fichier pour pouvoir en agrandir un autre, sans se préoccuper de leur emplacement sur le disque

Avantages de LVM :

  • Il n'y a pas de limitations « étranges » comme avec les partitions (primaire, étendue, etc.).
  • On ne se préoccupe plus de l'emplacement exact des données.
  • On peut conserver quelques giga-octets de libres pour pouvoir les ajouter n'importe où et n'importe quand.
  • Les opérations de redimensionnement deviennent quasiment sans risques, contrairement au redimensionnement des partitions.



Inconvénients de LVM :

  • Si un des volumes physiques devient HS, alors c'est l'ensemble des volumes logiques qui utilisent ce volume physique qui sont perdus. Pour éviter ce désastre, il faudra utiliser LVM sur des disques raid par exemple.




Quelques définitions



PV : Volumes physiques



Les disques durs, partitions de disques durs, volumes RAID ou unités logiques provenant d'un SAN forment des « volumes physiques » (physical volumes ou PV).

VG : Groupes de Volumes



On concatène ces volumes physiques (1 ou plusieurs) dans des « groupes de volumes » (volume groups ou VG).

Ces VG sont équivalents à des pseudo-disques-durs.

LV : Volumes logiques



Des « volumes logiques » (logical volumes ou LV) sont alors découpés dans les groupes de volumes, puis formatés et montés dans des systèmes de fichiers. Les LV sont équivalents à des pseudo-partitions.

FS : Système de fichiers



Des « systèmes de fichiers » (file system ou FS) est une façon de stocker les informations et de les organiser dans des fichiers. Ils disposent d'un point de montage et ont un type (ext4, xfs, btrfs)

Je parlerai de manipulations à chaud et à froid :
A chaud signifie : système de fichiers monté
A froid signifie : système de fichiers démonté

Représentation visuelle



Je vous ai fait un petit schéma sur GIMP pour représenter tous les concepts ci-dessus dans une image, c'est parfois plus parlant :

lvm



Utiliser LVM



Pour manipuler le LVM, il faut évidemment avoir les droits root et être très prudent !

Les commandes LVM sont extrêmement simples à utiliser et portent des noms logiques :

  • toutes les commandes agissant sur les volumes physiques commencent par pv (pour physical volume);
  • toutes les commandes agissant sur les groupes de volumes commencent par vg (pour volumes group);
  • toutes les commandes agissant sur les volumes logiques commencent par lv (pour logical volume).



Manipulations



Dans l'article, je vais utiliser le disque sdb et sdc.

Démarrer les services



OpenRC



Pour les dérivées Gentoo, démarrer et activer les services lvm, lvmetad, lvm-monitoring :

Code BASH :
/etc/init.d/lvm start
/etc/init.d/lvmetad start
/etc/init.d/lvm-monitoring start
rc-update add lvm boot
rc-update add lvmetad boot
rc-update add lvm-monitoring boot


systemd



Pour les systèmes utilisant systemd (comme les dérivées de Red Hat) lancer et activer les services lvm2-lvmetad, lvm2-monitor :

Code BASH :
systemctl enable  lvm2-lvmetad
systemctl enable lvm2-monitor
systemctl start lvm2-lvmetad
systemctl start lvm2-monitor


Prérequis LVM sur partition



Si, au lieu d'utiliser un disque entier en LVM on veut utiliser une partition, il faut donc créer une partition de type LVM sur tout le disque.

C'est utile dans certains cas, notamment si on veut faire du LVM sur le disque système, l'installation du chargeur d’amorçage peut s'avérer compliqué.

Dans tous les cas, qu'on utilise une partition ou un disque entier, les manipulations sont identiques.

Code BASH :
fdisk /dev/sdb 


  • o (pour faire une table de partition MSDOS)
  • n (nouvelle partition)
  • p (type primaire)
  • 1 (num de partiton)
  • vide (début)
  • vide (fin)
  • t (type)
  • 8e (type LVM)
  • w (écrire)




Code BASH :
fdisk /dev/sdb 


Code TEXT :
Bienvenue dans fdisk (util-linux 2.23.2). 
 
Les modifications resteront en mémoire jusqu'à écriture. 
Soyez prudent avant d'utiliser la commande d'écriture. 
 
Le périphérique ne contient pas de table de partitions reconnue 
Construction d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0x2660dada. 
 
Commande (m pour l'aide) : o 
Construction d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xb4087607. 
 
Commande (m pour l'aide) : n 
Type de partition : 
   p   primaire (0 primaire(s), 0 étendue(s), 4 libre(s)) 
  e   étendue 
Sélection (p par défaut) : p 
Numéro de partition (1-4, 1 par défaut) : 1 
Premier secteur (2048-2097151, 2048 par défaut) : 
Utilisation de la valeur 2048 par défaut 
Dernier secteur, +secteur ou +taille{K,M,G} (2048-2097151, 2097151 par défaut) : 
Utilisation de la valeur 2097151 par défaut 
La partition 1 de type Linux et de taille 1023 MiB est configurée 
 
Commande (m pour l'aide) : t 
Partition 1 sélectionnée 
Code Hexa (taper L pour afficher tous les codes) :8e 
Type de partition « Linux » modifié en « Linux LVM » 
 
Commande (m pour l'aide) : w 
La table de partitions a été altérée. 
 
Appel d'ioctl() pour relire la table de partitions. 
Synchronisation des disques.


Pour plus de simplicités, on pourra partitionner avec cfdisk, en créant la partition et en définissant le type sur LVM Linux :

cfdisk /dev/sdb

Une fois fait, on vérifie avec fdisk -l :

Code BASH :
fdisk -l /dev/sdb 


Code TEXT :
Disque /dev/sdb : 1073 Mo, 1073741824 octets, 2097152 secteurs 
Unités = secteur de 1 × 512 = 512 octets 
Taille de secteur (logique / physique) : 512 octets / 512 octets 
taille d'E/S (minimale / optimale) : 512 octets / 512 octets 
Type d'étiquette de disque : dos 
Identifiant de disque : 0xb4087607 
 
Périphérique Amorçage  Début         Fin      Blocs    Id. Système 
/dev/sdb1            2048     2097151     1047552   8e  Linux LVM 



On va ensuite passer au LVM.

Les PV



Créer un PV



Avant toute chose, il faut créer au moins un PV.

Un PV peut être un disque entier ou une partition.

Code BASH :
pvcreate /dev/sdb 


Code TEXT :
Physical volume "/dev/sdb" successfully created 


Afficher des infos sur un PV



Pour afficher des infos sur un PV, on utilise la commande pvdisplay

Code BASH :
pvdisplay /dev/sdb 


Code TEXT :
  "/dev/sdb" is a new physical volume of "1,00 GiB" 


Code TEXT :
--- NEW Physical volume ---
  PV Name               /dev/sdb 
  VG Name 
  PV Size               1,00 GiB 
  Allocatable           NO 
  PE Size               0 
  Total PE              0 
  Free PE               0 
  Allocated PE          0 
  PV UUID               OYbIFi-1Amm-zUFC-3lrJ-qPpb-Llu7-nxM3xl 


Si on ne spécifie pas le nom du PV, tous les PV sont affichés.

Supprimer un PV




Pour supprimer un PV, on utilise la commande pvremove


Code BASH :
pvremove /dev/sdb 


Code TEXT :
  Labels on physical volume "/dev/sdb" successfully wiped 


Les VG



Créer un VG



Pour créer un VG, on va utiliser la commande vgcreate.

La commande s'utilise ainsi :

Code BASH :
vgcreate nomduvg /dev/pv1 /dev/pv2 ... 


Code BASH :
vgcreate datavg /dev/sdb 


Code TEXT :
  Volume group "datavg" successfully created 



Afficher des infos sur un VG



Pour afficher des infos sur un VG, on utilise la commande vgdisplay

Code BASH :
vgdisplay datavg 


Code TEXT :
--- Volume group ---
  VG Name               datavg 
  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               1020,00 MiB 
  PE Size               4,00 MiB 
  Total PE              255 
  Alloc PE / Size       0 / 0 
  Free  PE / Size       255 / 1020,00 MiB 
  VG UUID               GbeMTP-dmeX-d8f6-hgxP-Njyj-RQWi-OX5Cct 


Si le nom du VG n'est pas indiqué, tous les VG sont affichés.

Supprimer un VG



Pour supprimer un VG, on utilise vgremove

Code BASH :
vgremove datavg 


Code TEXT :
Volume group "datavg" successfully removed 


Ajouter un PV au VG



Si on a un seul PV dans le VG, et qu'on veut agrandir notre VG, on peut ajourer un deuxième PV avec la commande vgextend :

Code BASH :
vgextend datavg /dev/sdc 


Code TEXT :
Volume group "datavg" successfully extended 


On constate qu'avec vgdisplay on a 2 PV maintenant :

Code BASH :
vgdisplay datavg | grep "Cur PV" 


Code TEXT :
  Cur PV                2 


Supprimer un PV au VG



Si on a plusieurs PV dans le VG et qu'on veut en ôter un, (donc réduire notre VG) on peut supprimer un PV avec la commande vgreduce :


Code BASH :
vgreduce datavg /dev/sdc 


Code TEXT :
  Removed "/dev/sdc1" from volume group "datavg" 


Attention Si plusieurs PV dans un même VG



Imaginons 2 disques de 500Go (avec 2 partitions LVM de 500Go) nommés sdb1 et sdc1.

On fait un VG de 1000Go avec ces 2 PV, si 1 des 2 disques tombe en panne, l'intégralité du VG est perdu !

Veiller donc à utiliser un système de RAID derrière.


Les LV et les FS



Dans ce chapitre, je traite les LV et ls FS en même temps car ils sont très liés :)

Créer un LV



On se rapproche du but !

Pour créer un LV, on va utiliser la commande ... lvcreate.

La commande, pour le plus simple s'utilise ainsi :

Code BASH :
lvcreate -n nomdulv -L taille nomduvg 


Ou

Code BASH :
lvcreate -n nomdulv -l nb%VG nomduvg 


Exemple :

Code BASH :
lvcreate -n adrienlv -L 100M datavg 


Code TEXT :
  Logical volume "adrienlv" created. 


Code BASH :
lvcreate -n pourcentlv -l 10%VG datavg 


Code TEXT :
  Logical volume "pourcentlv" created. 



Ajouter un FS



Pour ajouter un FS sur le LV, on utilise la traditionnelle commande mkfs !

XFS


Code BASH :
mkfs.xfs /dev/nomduvg/nomdulv 


BTRFS


Code BASH :
mkfs.btrfs /dev/nomduvg/nomdulv 


EXT4


Code BASH :
mkfs.ext4 /dev/nomduvg/nomdulv 


Exemple :

Code BASH :
mkfs.ext4 /dev/nomduvg/nomdulv 


Code TEXT :
mke2fs 1.42.9 (28-Dec-2013) 
Étiquette de système de fichiers= 
Type de système d'exploitation : Linux 
Taille de bloc=1024 (log=0) 
Taille de fragment=1024 (log=0) 
« Stride » = 0 blocs, « Stripe width » = 0 blocs 
25688 i-noeuds, 102400 blocs 
5120 blocs (5.00%) réservés pour le super utilisateur 
Premier bloc de données=1 
Nombre maximum de blocs du système de fichiers=33685504 
13 groupes de blocs 
8192 blocs par groupe, 8192 fragments par groupe 
1976 i-noeuds par groupe 
Superblocs de secours stockés sur les blocs : 
        8193, 24577, 40961, 57345, 73729 
 
Allocation des tables de groupe : complété 
Écriture des tables d'i-noeuds : complété 
Création du journal (4096 blocs) : complété 
Écriture des superblocs et de l'information de comptabilité du système de 
fichiers : complété 



Monter le FS




Pour monter le FS, on utilise la traditionnelle commande mount !

Code BASH :
mount /dev/nomduvg/nomdulv /pointdemontage 


ou

Code BASH :
mount /dev/mapper/nomduvg-nomdulv /pointdemontage 


Exemple :

Code BASH :
mount /dev/datavg/adrienlv /adrien


On contrôle avec la commande mount ou df que le FS est bien monté :

Code BASH :
mount | grep adrienlv 


Code TEXT :
/dev/mapper/datavg-adrienlv on /adrien type ext4 (rw,relatime,data=ordered) 


Code BASH :
df | grep adrienlv 


Code TEXT :
/dev/mapper/datavg-adrienlv       95054    1550      86336   2% /adrien 


On peut ajouter ensuite une ligne dans le fstab pour rendre permanente la modification :

Code TEXT :
/dev/mapper/nomduvg-nomdulv /pointdemontage  typefs     options  1 1


Exemple:

Code TEXT :
/dev/mapper/datavg-adrienlv /adrien  ext4  defaults  1 1 



Voir les LV



Pour voir les LV on utilise la commande ... lvdisplay

lvdisplay affiche tous les LV de tous les VG.

On peut spécifier un VG uniquement ou un LV d'un VG, ou rien pour tous.

Code BASH :
lvdisplay 
lvdisplay nomduvg 
lvdisplay nomduvg/nomdulv 


Exemple :

Code BASH :
lvdisplay datavg/adrienlv 


Code TEXT :
--- Logical volume ---
  LV Path                /dev/datavg/adrienlv 
  LV Name                adrienlv 
  VG Name                datavg 
  LV UUID                IDpnmL-e4u8-dm4a-KhQn-mZ1w-UnMV-yRyWsQ 
  LV Write Access        read/write 
  LV Creation host, time zeus.biopole21.com, 2016-02-16 17:05:31 +0100 
  LV Status              available 
  # open                 0 
  LV Size                100,00 MiB 
  Current LE             25 
  Segments               1 
  Allocation             inherit 
  Read ahead sectors     auto 
  - currently set to     8192 
  Block device           253:2 
 



Supprimer un LV



Pour supprimer un LV, on va utiliser la commande lvremove.

Attention, toutes les données sont supprimées !!!!

Le FS doit être démonté !

La commande s'utilise comme suit :

Code BASH :
lvremove nomduvg/nomdulv 



Exemple :

Code BASH :
lvremove datavg/pourcentlv 


Code TEXT :
Do you really want to remove active logical volume pourcentlv? [y/n]: y 
  Logical volume "pourcentlv" successfully removed 



Agrandir un LV (et le FS)



Pour agrandir un LV, on va utiliser la commande lvresize. (On peut utiliser aussi lvextend, ça fait la même chose)

La commande s'utilise comme suit :

Définir une taille précise :

Code BASH :
lvresize -L taille nomduvg/nomdulv 


Ou ajouter de n Go :

Code BASH :
lvresize -L +nG nomduvg/nomdulv 


Les tailles de LV sont des multiples de PE. (Physical Extend)

Code BASH :
pvdisplay /dev/sdb | grep "PE Size" 


Code TEXT :
  PE Size               4,00 MiB 


Après avoir agrandi le LV, il faut penser à agrandir le FS également !

Les commandes diffèrent suivant les systèmes de fichiers.

Pour ext4, on utilise la commande resize2fs.

Si on ne met pas d'option, la taille maximale est prise (ce qu'on souhaite dans le LV)

Il est préférable de démonter si possible le système de fichiers, mais l'agrandissement à chaud est possible.

Code BASH :
resize2fs /dev/nomduvg/nomdulv 


Exemple en doublant la taille du LV

Code BASH :
df -h /adrien 


Code TEXT :
Sys. de fichiers            Taille Utilisé Dispo Uti% Monté sur 
/dev/mapper/datavg-adrienlv    93M    1,6M   85M   2% /adrien 


Code BASH :
lvresize -L +100M datavg/adrienlv 


Code TEXT :
  Size of logical volume datavg/adrienlv changed from 100,00 MiB (25 extents) to 200,00 MiB (50 extents). 
  Logical volume adrienlv successfully resized. 


Code BASH :
resize2fs /dev/datavg/adrienlv 


Code TEXT :
resize2fs 1.42.9 (28-Dec-2013) 
Le système de fichiers de /dev/datavg/adrienlv est monté sur /adrien ; le changement de taille doit être effectué en ligne 
old_desc_blocks = 1, new_desc_blocks = 2 
Le système de fichiers /dev/datavg/adrienlv a maintenant une taille de 204800 blocs. 


Code BASH :
df -h /adrien 


Code TEXT :
Sys. de fichiers            Taille Utilisé Dispo Uti% Monté sur 
/dev/mapper/datavg-adrienlv   190M    1,6M  178M   1% /adrien 



A noter, il est possible de redimensionner le LV et d'agrandir le FS en même temps avec l'option -r
Le FS doit pouvoir être agrandi :
XFS = oui à chaud
EXT4 = oui à chaud
BTRFS = oui à chaud

Code BASH :
lvresize -L +100M -r /dev/datavg/adrienlv 



Pour remplir tout le VG, on pourra utiliser -l avec +100%FREE :

Code BASH :
lvresize -l +100%FREE -r /dev/datavg/adrienlv 



Réduire le LV (et le FS)



Avant de réduire le LV, si la taille finale du LV est plus petite que celle du FS, il faut réduire le FS d'abord, sinon, corruption de données !!!

Diminuer la taille du FS est un peu plus délicat. Il ne faut évidemment pas réduire plus que la place occupée...

Pour éviter tout risque, je conseille de procéder ainsi :

  • Réduire la taille du FS plus que nécessaire
  • Réduire la taille du LV pour lui donner exactement la taille souhaitée.
  • Agrandir le FS pour qu'il occupe tout l'espace disponible.



Attention, tous les systèmes de fichiers ne peuvent pas être réduits.
XFS = NON
EXT4 = oui à froid
BTRFS = oui à chaud

Il est recommandé de réduire plus le FS que prévu puis de le ragrandir ensuite.

Exemple : Si on passe d'un LV de 200M à 100M, on va, pas sécurité, réduire le FS de 200M à 90M, réduire le LV de 200M à 100M, puis agrandir le FS au maximum.

Pour réduire le LV, on utilise la commande lvresize. (On peut utiliser aussi lvreduce, ça fait la même chose)

La commande s'utilise comme suit :

Définir une taille précise :

Code BASH :
lvresize -L taille nomduvg/nomdulv 


Ou réduire de n Go :

Code BASH :
lvresize -L -nG nomduvg/nomdulv 


Pour réduire un FS, on utilise encore la commande resize2fs, en ayant au préalable vérifié le système de fichiers avec e2fsck.

Code BASH :
umount /pointdemontage 
e2fsck -f /dev/nomduvg/nomdulv 
resize2fs /dev/nomduvg/nomdulv taille 



Donc en combinant les 2 options dans le bon ordre :

Code BASH :
umount /pointdemontage 
e2fsck -f /dev/nomduvg/nomdulv 
resize2fs /dev/nomduvg/nomdulv taille 
lvresize -L taille /dev/nomduvg/nomdulv 
resize2fs /dev/nomduvg/nomdulv 
mount /pointdemontage 


Exemple :

Code BASH :
df -h /adrien 


Code TEXT :
Sys. de fichiers            Taille Utilisé Dispo Uti% Monté sur 
/dev/mapper/datavg-adrienlv   190M    1,6M  178M   1% /adrien 


Code BASH :
umount /adrien 
e2fsck -f /dev/datavg/adrienlv 


Code TEXT :
e2fsck 1.42.9 (28-Dec-2013) 
Passe 1 : vérification des i-noeuds, des blocs et des tailles 
Passe 2 : vérification de la structure des répertoires 
Passe 3 : vérification de la connectivité des répertoires 
Passe 4 : vérification des compteurs de référence 
Passe 5 : vérification de l'information du sommaire de groupe 
/dev/datavg/adrienlv : 11/49400 fichiers (9.1% non contigüs), 11884/204800 blocs 


Code BASH :
resize2fs /dev/datavg/adrienlv 90M 


Code TEXT :
resize2fs 1.42.9 (28-Dec-2013) 
En train de redimensionner le système de fichiers sur /dev/datavg/adrienlv à 92160 (1k) blocs. 
Le système de fichiers /dev/datavg/adrienlv a maintenant une taille de 92160 blocs. 


Code BASH :
lvresize -L 100M /dev/datavg/adrienlv 


Code TEXT :
  WARNING: Reducing active logical volume to 100,00 MiB 
  THIS MAY DESTROY YOUR DATA (filesystem etc.) 
Do you really want to reduce adrienlv? [y/n]: y 
  Size of logical volume datavg/adrienlv changed from 200,00 MiB (50 extents) to 100,00 MiB (25 extents). 
  Logical volume adrienlv successfully resized. 


Code BASH :
resize2fs /dev/datavg/adrienlv 


Code TEXT :
resize2fs 1.42.9 (28-Dec-2013) 
En train de redimensionner le système de fichiers sur /dev/datavg/adrienlv à 102400 (1k) blocs. 
Le système de fichiers /dev/datavg/adrienlv a maintenant une taille de 102400 blocs. 


Code BASH :
mount /dev/datavg/adrienlv /adrien 
df -h /adrien 


Code TEXT :
Sys. de fichiers            Taille Utilisé Dispo Uti% Monté sur 
/dev/mapper/datavg-adrienlv    93M    1,6M   85M   2% /adrien 


A noter, il est possible de redimensionner le LV et réduire le FS en même temps avec l'option -r
Attention, les FS ne peuvent pas tous être réduits :
XFS = NON
EXT4 = oui à froid
BTRFS = oui à chaud

Code BASH :
lvresize -L 100M -r /dev/datavg/adrienlv 



Cas particulier : Agrandir un PV d'un disque virtuel



Contexte de l'exemple



Dans cette catégorie, on va voir comment agrandir un PV.
Prenons un exemple, une machine Virtuelle VMWare.
Disque VMDK 100Go.
On a en partition :
/dev/sda1 : /boot 1Go
/dev/sda2 : PV de 99Go.

On agrandit le VMDK de 50Go, et on se retrouve avec
/dev/sda1 : /boot 1Go
/dev/sda2 : PV de 99Go
50Go d'espace libre.

Voici comment procéder



Avant tout, si l'opération est faite à chaud, il sera nécessaire de demander au système de réanalyser les disques. 2 solutions :

La première, avec la commande suivante issue de sg3_utils :

Code BASH :
rescan-scsi-bus


La deuxième, en rescannant directement, en écrivant 1 dans le fichier rescan du scsi_disk correspondant :
Code BASH :
echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan


Une fois la nouvelle taille détectée, on va pouvoir agrandir le PV /dev/sda2 pour profiter de la place supplémentaire et agrandir un LV du VG.

On va modifier les partitions, avec cfdisk (plus simple que fdisk) de /dev/sda

Code TEXT :
cfdisk /dev/sda


Redimensionner /dev/sda2 et utiliser tout l'espace libre (définir la taille maximale), Ecrire et quitter :

Code BASH :
                              Disque : /dev/sda
          Taille : 150 GiB, 161061273600 octets, 314572800 secteurs
                  Étiquette : dos, identifiant : 0xa11da406
    Périphérique  Amorçage      Début       Fin  Secteurs Taille Id Type
    /dev/sda1     *              2048   2099199   2097152     1G 83 Linux
>>  /dev/sda2                 2099200 209715199 207616000    99G 8e LVM Linux
    Espace libre            209715200 314572799 104857600    50G
 ┌─────────────────────────────────────────────────────────────────────────┐
 │       Type de la partition : LVM Linux (8e)                             │
 │UUID du système de fichiers : osVgGC-DLUg-WceS-rk5X-p53v-fgBy-x6EjWX     │
 │        Système de fichiers : LVM2_member                                │
 └─────────────────────────────────────────────────────────────────────────┘
 Nouvel taille :149G
  Peut être suivi de M pour Mio, G pour Gio, T pour Tio ou S pour secteur.
 


On prend en compte le nouveau schéma de partition avec

Code BASH :
partprobe


On va scanner ensuite les PV pour vérifier la nouvelle taille :

Code BASH :
pvs


On voit que le PV ne fait pas toute la taille de la partition.

Code TEXT :
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  rootvg lvm2 a--  <99,00g 4,00m


On va redimensionner le PV au maximum de sa taille :

Code BASH :
pvresize /dev/sda2


Une info indique que l'opération a eu lieu :

Code TEXT :
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized


Ensuite on vérifie que toute la taille est prise en compte :

Code BASH :
pvs


Code TEXT :
  PV         VG     Fmt  Attr PSize    PFree 
  /dev/sda2  rootvg lvm2 a--  <149,00g 50,00g
 


La taille est prise en compte. 50Go de libre.

On vérifie le VG :

Code BASH :
vgs


Code TEXT :
  VG     #PV #LV #SN Attr   VSize    VFree 
  rootvg   1   4   0 wz--n- <149,00g 50,00g
 


On voit que l'espace est dispo dans le VG.
Si le terminal est long à rendre la main, on peut rescanner les VG :

Code BASH :
vgscan


Ensuite, on peut agrandir nos LV à souhait comme vu précédemment :)

Cas particulier : désactiver un VG



Il peut arriver que vous branchiez un disque dur avec du LVM dessus.
Problème, certains outils graphiques ne savent pas formater le disque si un LVM est actif (plus particulièrement un VG)

Pour désactiver le VG :

Code BASH :
vgchange -a n lenomduvg


Ensuite, vous pouvez reformater le disque, recréer des partitions, faire tout ce que vous voulez !