Sitedetout - Tutoriels informatiques

La gestion des LVM dans les systèmes Linux

LVM (Logical Volume Manager) ou gestionnaire est une méthode de gestion des espaces de stockage dans un ordinateur.

Sous les systèmes Linux, LVM s’introduit comme une couche d’abstraction entre les disques physiques et les points de montages typiques à Linux (/home, /var, …) en introduisant la notion de volumes.

Ce système permet alors d’allouer ou diminuer dynamiquement l’espace disque d’un volume ou migrer l’espace d’un volume vers un autre. de manière simple et rapide.

De façon basique, on peut voir le montage des partitions de la façon suivante :

Ajout d’un disque

Tout d’abord, on commencera par utiliser la commande Df -h qui nous permet d’avoir une vue globale sur notre système de fichiers.

[[email protected] ~]# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/cl-root 17G 2,1G 15G 12% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8,7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 186M 829M 19% /boot
tmpfs 183M 0 183M 0% /run/user/0

Supposant qu’on veut ajouter un nouveau point de montage sous une arborescence /produits ayant un espace de 20 GO.

Commençons par utiliser la commande fdisk -l qui nous permettra de lister tous les disques disponibles pour notre système.

[[email protected] ~]# fdisk -l

Disque /dev/sda : 21.5 Go, 21474836480 octets, 41943040 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 : 0x000c72ed

Périphérique Amorçage Début Fin Blocs Id. Système
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

Disque /dev/mapper/cl-root : 18.2 Go, 18249416704 octets, 35643392 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

Disque /dev/mapper/cl-swap : 2147 Mo, 2147483648 octets, 4194304 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

Maintenant pour avoir plus d’espace sur notre machine Linux, On devra ajouter un disque soit physiquement, ou à travers l’outil de virtualisation (dans le cas d’une machine virtuelle).
ajout disque

[[email protected] ~]# fdisk -l

Disque /dev/sda : 21.5 Go, 21474836480 octets, 41943040 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 : 0x000c72ed

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

Disque /dev/sdb : 21.5 Go, 21474836480 octets, 41943040 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

Disque /dev/mapper/cl-root : 18.2 Go, 18249416704 octets, 35643392 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

Disque /dev/mapper/cl-swap : 2147 Mo, 2147483648 octets, 4194304 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

On voit bien que le disque /dev/sdb vient d’être ajouté d’une taille de 19GO.

On utilisera la commande fdisk pour créer une table de partition à ce disque.

[[email protected] ~]# fdisk /dev/sdb
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 0x5ca7f32a.

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-41943039, 2048 par défaut) : 2048
Dernier secteur, +secteur ou +taille{K,M,G} (2048-41943039, 41943039 par défaut) :
Utilisation de la valeur 41943039 par défaut
La partition 1 de type Linux et de taille 20 GiB est configurée

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.

On vient de créer une partition primaire en sélectionnant les options par défaut.
On utilisera ce disque pour créer un volume physique (PV) comme suit :

[roo[email protected] ~]# pvcreate /dev/sdb1
 Physical volume "/dev/sdb1" successfully created.

Ensuite la commande pvs nous permettra de lister les volumes physiques disponibles :

[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <19,00g 0
/dev/sdb1 lvm2 --- <20,00g <20,00g

On doit ensuite créer un groupe de volumes en utilisant le PV précédent comme suit :

[[email protected] ~]# vgcreate root_vg /dev/sdb1
 Volume group "root_vg" successfully created

De la même manière, la commande vgs nous permettra de lister les groupes de volumes disponibles :

[[email protected] ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 2 0 wz--n- <19,00g 0
root_vg 1 0 0 wz--n- <20,00g <20,00g

A partir du groupe de volumes créé, on peut créer plusieurs volumes logiques (LV) comme suit :

[[email protected] ~]# lvcreate -L 5G -n LV1 root_vg
 Logical volume "LV1" created.

Avec la commande lvs,  on va lister les volumes logiques disponibles :

[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao---- <17,00g
swap cl -wi-ao---- 2,00g
LV1 root_vg -wi-a----- 5,00g

On a créé notre volume logique d’une taille de 5GO, mais on verra par la suite comment étendre sa taille à 19GO.

A partir de ce volume logique, on va créer un système de fichiers comme suit :

[[email protected] ~]# mkfs -t ext3 /dev/mapper/root_vg-LV1
mke2fs 1.42.9 (28-Dec-2013)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
« Stride » = 0 blocs, « Stripe width » = 0 blocs
327680 i-noeuds, 1310720 blocs
65536 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=1342177280
40 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8192 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocation des tables de groupe : complété
Écriture des tables d'i-noeuds : complété
Création du journal (32768 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Ainsi si nous voulions que ce système soit disponible à partir de l’arborescence /appli, On commencera par créer le répertoire /produits comme suit :

[[email protected] ~]# mkdir /appli

Puis monter le système de fichier sur ce répertoire :

[[email protected] ~]# mount /dev/mapper/root_vg-LV1 /appli/

En utilisant la commande df -h on peut voir le nouveau point de montage créé d’une taille de 5GO

[[email protected] ~]# df -h
Sys. de fichiers        Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/cl-root        17G    2,1G   15G  12% /
devtmpfs                  901M       0  901M   0% /dev
tmpfs                     912M       0  912M   0% /dev/shm
tmpfs                     912M    8,7M  904M   1% /run
tmpfs                     912M       0  912M   0% /sys/fs/cgroup
/dev/sda1                1014M    186M  829M  19% /boot
tmpfs                     183M       0  183M   0% /run/user/0
/dev/mapper/root_vg-LV1   4,8G     11M  4,6G   1% /appli

On voulait au début créer un point de montage de 19GO (commande lv précédente), mais on a utiliser que 5GO pour une bonne raison et celle de montrer comment étendre la taille d’un point de montage.

Extension d’un disque existant :

Pour étendre l’espace d’un point de montage, il faut d’abord vérifier si son groupe de volume associé détient de l’espace vide.

[[email protected] ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree
  cl        1   2   0 wz--n- <19,00g      0
  root_vg   1   1   0 wz--n- <20,00g <15,00g 

On remarque qu’on possède 15 GO de libre sur notre groupe de volume root_vg

1-Démonter la partition /appli

On commencera par démonter la partition /appli à l’aide de la commande umount

[[email protected] ~]# umount /appli/

On utilisera ensuite la commande lvextendpour étendre la taille du volume logique précédemment créé à 5GO.

[[email protected] ~]# lvextend -L 19G /dev/mapper/root_vg-LV1
Size of logical volume root_vg/LV1 changed from 15,00 GiB (3840 extents) to 19,00 GiB (4864 extents).
Logical volume root_vg/LV1 successfully resized.

Le résultat de la commande lvs nous confirme bien l’extention.

[[email protected] ~]# lvs
  LV   VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl      -wi-ao---- <17,00g
  swap cl      -wi-ao----   2,00g
  LV1  root_vg -wi-a-----  19,00g

Il ne reste que utiliser la commande e2fsck pour vérifié le système de fichier puis la commande resize2fs pour qu’il puisse utiliser l’espace supplémentaire alloué comme suit :

[[email protected] ~]# e2fsck -f /dev/mapper/root_vg-LV1
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/mapper/root_vg-LV1 : 11/327680 fichiers (0.0% non contigüs), 55935/1310720 blocs
[[email protected] ~]# resize2fs /dev/mapper/root_vg-LV1
resize2fs 1.42.9 (28-Dec-2013)
En train de redimensionner le système de fichiers sur /dev/mapper/root_vg-LV1 à 4980736 (4k) blocs.
Le système de fichiers /dev/mapper/root_vg-LV1 a maintenant une taille de 4980736 blocs.

Il ne reste plus que remonté la partition sur l’arborescence /appli

[[email protected] ~]# mount /dev/mapper/root_vg-LV1 /appli/

Maintenant, en utilisant la commande df -h, on peut bien voir que la partition /appli est d’une taille de 19GO

[[email protected] ~]# df -h
Sys. de fichiers        Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/cl-root        17G    2,1G   15G  12% /
devtmpfs                  901M       0  901M   0% /dev
tmpfs                     912M       0  912M   0% /dev/shm
tmpfs                     912M    8,7M  904M   1% /run
tmpfs                     912M       0  912M   0% /sys/fs/cgroup
/dev/sda1                1014M    186M  829M  19% /boot
tmpfs                     183M       0  183M   0% /run/user/0
/dev/mapper/root_vg-LV1    19G     14M   18G   1% /appli

Enfin, si vous chercher à maîtriser l’environnement linux (administration et programmation Shell), je vous recommande ces deux livres


Commentaires de La gestion des LVM dans les systèmes Linux

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Menu Title
Chargement...

Powered by sitedetout.com