TUTOS.EU

Linux et LVM : Logical Volume Manager : augmenter la taille d'un disque

Gestion de volumes logiques sous Linux


Vous avez augmenté la taille d'un disque d'une VM sous Linux et vous voulez maintenant l'allouer sur votre volume LVM.

Pour commencer, j'aime avoir un état des lieux avec la commande

lsblk -f
Lien vers le fichier : cliquez ici Copier le code

Exemple

Pour regarder la taille des disques physiques vus par la machine, la commande la plus connue est

fdisk -l
Lien vers le fichier : cliquez ici Copier le code

Pour avoir un affichage plus concis, tentez la commande

fdisk -l | grep -i ^Disque
Lien vers le fichier : cliquez ici Copier le code

dev veut dire device.

Dans l'exemple ci-dessous, les /dev/mapper ne comptent pas, c est utilisé par LVM (voir https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/5/html/logical_volume_manager_administration/device_mapper)

Ici le seul vrai disque est /dev/sda
les autres, en /dev/mapper/centos-root etc, utilisent /dev/sda, à la façon d'une partition.

Vous pouvez aussi contrôler vos points de montage avec

df -h
Lien vers le fichier : cliquez ici Copier le code

Les volumes logiques LVM sont sous /dev/mapper

Il y a plusieurs façons de voir l'espace disque restant. Cette commande affiche les volumes lvm et
Free PE / Size indique l'espace libre

vgdisplay
Lien vers le fichier : cliquez ici Copier le code

Exemple ou il ne reste rien de disponible

Ici il reste dans les 44Gb de libre

La commande vgs fait la même chose en moins complet

vgs
Lien vers le fichier : cliquez ici Copier le code

Si vous venez d'augmenter la taille du disque, vous pouvez faire un éventuel scan scsi des disques attachés à la VM

scsi-rescan --forcerescan
Lien vers le fichier : cliquez ici Copier le code

Sur Ubuntu la commande est

for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done
Lien vers le fichier : cliquez ici Copier le code

Et si cela ne passe pas, sur kerneltalks.com il indique cette commande qu'il faut adapter. Ici elle est faite pour mettre à jour la taille du disque sda :

echo 1>/sys/class/block/sda/device/rescan
 

L'affichage des volumes physiques indique également les Free PE de disponibles

pvs
Lien vers le fichier : cliquez ici Copier le code

La commande affichera des informations de ce type

  PV         VG       Fmt  Attr PSize    PFree
  /dev/sda2  centos   lvm2 a--   <63,00g <27,00g
  /dev/sdb1  logstash lvm2 a--  <500,00g      0

 

Imaginons que la commande df -h indique que notre montage de logstash est full

df -h
Lien vers le fichier : cliquez ici Copier le code

La commande lsblk va permettre de savoir sur quel disque notre montage se situe

lsblk -f
Lien vers le fichier : cliquez ici Copier le code

cad sdb dans notre cas

On fait ensuite un fdisk sur le disque, et non pas les partitions.

Donc pour notre exemple on tape sur le disque sdb, cad /dev/sdb (il faut ajouter /dev (pour device) devant)

On ne tape pas sur /dev/sdb1

Regardez bien le schéma ci-dessus.

Le but est de vérifier que le disque affiche bien la nouvelle taille.

fdisk -l /dev/sdb
Lien vers le fichier : cliquez ici Copier le code

Si ce n'est pas le cas (c'est le but de ce tuto), il faut supprimer et refaire la partition LVM avec la nouvelle taille.
Cela ne provoquera pas la perte des données. On les retrouvera par la suite.

fdisk -u /dev/sdb
Lien vers le fichier : cliquez ici Copier le code

Une fois sous fdisk

taper m pour avoir l'aide puis 

p pour voir la table des partitions

v pour vérifier la table des partitions

 

On efface et on recrée la partition de type primary (on récupérera les données)
d pour effacer une partition
n pour la recréer
p pour primary

dans mon cas j'ai laissé les réponses par défaut en appuyant sur entrée

mais si vous ne voulez pas assigner la totalité de la taille du disque, vous pouvez. Pour faire un disque de 600Gb, tapez +600G

Exemple

Ensuite appuyer sur

t pour changer l'id de la partition
mettre 8e comme type de partition pour lvm

w pour écrire la modification

rebooter avec la commande

reboot
Lien vers le fichier : cliquez ici Copier le code

Il peut être nécessaire d'informer le noyau de la modification de la table de partitions via la commande partprobe

partprobe
Lien vers le fichier : cliquez ici Copier le code

Faire un pvsresize du disque étendu. Pour cela on peut commencer par les afficher avec

pvs
Lien vers le fichier : cliquez ici Copier le code

Ensuite étendre le disque souhaité en adaptant cette commande :

pvresize /dev/sdb1
Lien vers le fichier : cliquez ici Copier le code

Exemple de retour

[root@nommachine~]# pvresize /dev/sdb1
  Physical volume "/dev/sdb1" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

 

Il va maintenant affecter le volume supplémentaire à votre volume.
Notez le nom de celui qui vous intéresse suite à ce que vous affiche la commande

vgs
Lien vers le fichier : cliquez ici Copier le code

ajouter /dev devant ce qui peut donner par exemple un chemin du type

/dev/logstash/lv-logstash

ou encore /dev/centos/opt comme détaillé ci-dessous

 

Maintenant on va utiliser la commande lvextend

Exemples d'usage: 

La commande suivante étend le volume logique appelé testlv afin de remplir tout l'espace non alloué du groupe de volumes myvg 
lvextend --resizefs -l +100%FREE /dev/logstash/lv-logstash

 

Etendre le volume jusqu'à 12 giga-octets. 
lvextend --resizefs -L12G /dev/logstash/lv-logstash

    

Ajoute un giga-octet
lvextend --resizefs -L+1G /dev/logstash/lv-logstash

 

Pour info, si on n'avait pas mis l'option --resizefs dans la commande lvextend, on aurait dû en plus relever le type de système de fichier utilisé avec

lsblk -f
Lien vers le fichier : cliquez ici Copier le code

Puis, suivant le résultat, il aurait fallu adapter et utiliser une de ces commandes

EXT4 : 
resize2fs /dev/centos/root 

XFS :  
xfs_growfs /dev/centos/root
Lien vers le fichier : cliquez ici Copier le code

Exemple

xfs_growfs /dev/logstash/lv-logstash
Lien vers le fichier : cliquez ici Copier le code

Pages Web

Site WebDescription
doc.ubuntu-fr.org/Article sur LVM sur ubuntu-fr.org

2