Niveau :      
Résumé : lvreduce ; vgreduce ; lvextend ; vgextend

Après l'immense succès du premier article, voici sous vos applaudissements le deuxième article.

Ajout d'un nouveau disque

Maintenant que vous savez utiliser LVM vous voudriez aller un peu plus loin. Mise en situation : vous avez un disque de 50To, un vg déjà en place et sur sur ce VG un LV de 30To dédié à votre médiathèque. Or vous venez de découvrir (et donc d'acheter) un nouveau disque de 1Po (Péta Octet pour ceux qui ne suivent pas, hé oui, c'est fou comme ça avance vite la technologie).

$ lvdisplay /dev/vg0/mediatheque
  --- Logical volume ---
  LV Name                /dev/vg0/mediatheque
  VG Name                vg0
  LV UUID                AN0y7h-1cIF-cPmC-vE9E-JnKG-worn-dWeQ8D
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                31,82 TB
  Current LE             81459200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

Commençons donc par ajouter notre nouveau disque au vg :

# partitionnement
$ cfdisk /dev/sdc
# formatage
$ pvcreate /dev/sdc1
# ajout au vg
$ vgextend vg0 /dev/sdc1

Et voila nous avons de la place disponible. Maintenant agrandissons notre LV. Remarquez qu'il faut le faire avant d'agrandir le système de fichier puisqu'il se trouve au dessous. Au contraire en cas de réduction, il faut commencer par le système de fichier qui se trouve au dessus.

$ lvextend -l +100%FREE /dev/vg0/mediatheque
# cas de l'ext2/ext3
$ umount /dev/vg0/mediatheque
$ resize2fs /dev/vg0/mediatheque
$ mount /dev/vg0/mediatheque

Remarquez que chaque système de fichier a ses propres contraintes quant au redimensionnement :

  • ext2 doit être démontés
  • ext3 doit être démonté pour être réduit, il semblerait qu'il est possible de l'agrandir monté (voir ext2online)
  • reiserfs peut être agrandi monte, mais doit être démonté pour être réduit
  • xfs peut (et doit) être agrandi monté, mais ne peut pas être réduit
  • jfs peut (et doit) être agrandi monté, mais ne peut pas être réduit

En résumé : lvm_extend.png

Suppression d'un disque

Il est possible de faire la même chose dans l'autre sens a quelques subtilités près. Il faut forcer la désallocation de l'espace présent sur ce disque. Pour cela on va réduire un système de fichier pour faire de la place, puis faire en sorte que cette place libre soit sur le disque à retirer, et enfin retirer ce disque du groupe. Le tout pouvant se faire en direct.

Comme dit précédemment, lors d'une réduction, le système de fichier doit être réduit en premier :

# supposons de l'ext3
$ umount /dev/vg0/mediatheque
# il faut préciser la nouvelle taille puisqu'il n peut pas la deviner seul
$ resize2fs -p /dev/vg0/mediatheque 1024G
$ mount /dev/vg0/mediatheque
# réduction du lv, je vous conseille d'utiliser la taille absolue pour éviter les erreurs
$ lvreduce-L 1024G /dev/vg0/mediatheque

On fait en sorte que le disque à supprimer ne contienne plus de données :

# il se débrouille pour savoir où mettre les données
$ pvmove /dev/sdb1

Et enfin on le supprime du vg :

$ vgreduce vg0 /dev/sdb1