Vous avez augmenté la taille d'un disque d'une VM sous Linux et vous voulez maintenant l'allouer sur votre volume LVM.
On peut commencer par regarder la taille des disques physiques vus par la machine.
La commande de base pour cela est
fdisk -l
Lien vers le fichier : cliquez ici
Pour avoir un affichage plus concis, tentez la commande
fdisk -l | grep -i ^Disque
Lien vers le fichier : cliquez ici
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.
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
Exemple ou il ne reste rien de disponible
Ici il reste dans les 44Gb de libre
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
L'affichage des volumes physiques indique également les Free PE de disponibles
pvs
Lien vers le fichier : cliquez ici
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
La commande lsblk va permettre de savoir sur quel disque notre montage se situe
lsblk -f
Lien vers le fichier : cliquez ici
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
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
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
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
Faire un pvsresize du disque étendu. Pour cela on peut commencer par les afficher avec
pvs
Lien vers le fichier : cliquez ici
Ensuite étendre le disque souhaité en adaptant cette commande :
pvresize /dev/sdb1
Lien vers le fichier : cliquez ici
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
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
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
Pages Web
Site Web | Description |
---|---|
doc.ubuntu-fr.org/ | Article sur LVM sur ubuntu-fr.org |
Article(s) en relation(s)
Créer une configuration personnalisée de points de montage Linux (à corriger)
Déclarer un disque supplémentaire sous Linux avec LVM
Donner des droits d'accès sur vos répertoires avec des ACL sous Linux - à terminer
LVM sous Linux et création d'un logicial volume sur un disque existant - à terminer