Skip to main content

Redimensionner disque lvm d'une VM

Sur une VM, si on redimensionne le disque virtuel et qu'on veut agrandir une partition LVM sur le disque

On demande au systemesystème de scanner les disques, pour qu'il prenne en compte l'agrandissement du disque dur:

rescan-scsi-bus.sh

Il faut d'abord agrandir la partition sur laquelle le PV est créé (ici sda2) :

cfdisk /dev/sda2

Dans cfdisk, il doit afficher l'espace libre en faire, ajouté sur le disque.

Ensuite selectionnersélectionner /dev/sda2 et redimenssionerredimensionner la partition
Enfin, ecrire les données et fermer cfdisk.

Via fdisk - l, on doit voir la partion sda2 agrandie.

Ensuite on agrandi le volume physique:

pveresize /dev/sda2

Ensuite on agrandit le volume logique, en ajoutant 10Giga
Pour voir le nom du LV, taper la commande lvs

lvresize -L +10G -r /dev/cl/root

Ou si on veut tout allouer l'espace du PV à notre LV:

lvresize -l +100%FREE /dev/cl/root

Il reste à redimensionner le système de fichier, pour que tout soit pris en compte:

resize2fs /chemin/disque/lvm # Dans le cas d'un système ext4

Agrandir le disque en recréant la table de partition

Il se peut qu'on ne puisse pas agrandir directement la partition contenant les données LVM: la partition étendue étant avant la LVM, et cfdisk ne peut pas agrandir le disque.

Dans ce cas, il faut utiliser fdisk, on va supprimer notre partition LVM et la recréer. L'idée étant de ne pas supprimer les donnée, mais de juste modifier la table de partition, il faudra que nos partitions commencent sur le même secteur et finissent sur un secteur plus loin. La partition sera la même e mais agrandie, donc nos données seront toujours présentes.

! Bien faire une backup au préalable, c'est toujours délicat de toucher aux tables de partitions

Configuration fdisk

Lancer fdisk sur le disque à modifier (ici /dev/sda):

fdisk /dev/sda

Détail des commandes fdisk (les détail de sont en commentaire):

Bienvenue dans fdisk (util-linux 2.38.1).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.

Le disque est actuellement utilisé — le repartitionner est
probablement une mauvaise idée.
Il est recommandé de démonter tous les systèmes de fichiers et désactiver (avec
swapoff) toutes les partitions d'échange de ce disque.


Commande (m pour l'aide) : p # afficher les partitions et copier les valeurs dans un bloc-note

Disque /dev/sda : 40 GiB, 42949672960 octets, 83886080 secteurs
Modèle de disque : Virtual Disk    
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x248fe134

Périphérique Amorçage   Début      Fin Secteurs Taille Id Type
/dev/sda1    *           2048  1953791  1951744   953M 83 Linux
/dev/sda2             1953792  2148351   194560    95M 83 Linux
/dev/sda3             2150398 41209855 39059458  18,6G  5 Étendue
/dev/sda5             2150400 41209855 39059456  18,6G 8e LVM Linux

La partition 3 ne commence pas sur une frontière de cylindre physique.

Commande (m pour l'aide) : d # Suppression partition 
Numéro de partition (1-3,5, 5 par défaut) : 3 # la n°3 (/dev/sda3)

La partition 3 a été supprimée.

Commande (m pour l'aide) : n  # Créer un nouvelle partition
Type de partition
   p   primaire (2 primaire, 0 étendue, 2 libre)
   e   étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : e # Créer un nouvelle partition de type étendue
Numéro de partition (3,4, 3 par défaut) : 3
Premier secteur (2148352-83886079, 2148352 par défaut) : 2150398 # La nouvelle partition commence exactement au même endroit que celle qu'on vient de supprimer
Dernier secteur, +/-secteurs ou +/-taille{K,M,G,T,P} (2150398-83886079, 83886079 par défaut) : # on laisse par défaut, ce qui correspond à la fin du disque.

Commande (m pour l'aide) : p # On réaffiche la table de partition
Disque /dev/sda : 40 GiB, 42949672960 octets, 83886080 secteurs
Modèle de disque : Virtual Disk    
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x248fe134

Périphérique Amorçage   Début      Fin Secteurs Taille Id Type
/dev/sda1    *           2048  1953791  1951744   953M 83 Linux
/dev/sda2             1953792  2148351   194560    95M 83 Linux
/dev/sda3             2150398 83886079 81735682    39G  5 Étendue

La partition 3 ne commence pas sur une frontière de cylindre physique.

Commande (m pour l'aide) : n # on créé une nouvelle partition n°5

Tout l’espace des partitions primaires est utilisé.
Ajout de la partition logique 5
Premier secteur (2152446-83886079, 2152448 par défaut) : 
Dernier secteur, +/-secteurs ou +/-taille{K,M,G,T,P} (2152448-83886079, 83886079 par défaut) : 

Une nouvelle partition 5 de type « Linux » et de taille 39 GiB a été créée.
La partition #5 contient une signature ext4.

Voulez-vous supprimer la signature ? [O]ui/[N]on : o # Suppression signature

La signature sera supprimée par une commande d'écriture.

Commande (m pour l'aide) : x # passage en mode "avancé" de fdisk

Commande pour spécialistes (m pour l'aide) : b # on souhaite déplacer le début des données dans une partition
Numéro de partition (1-3,5, 5 par défaut) : 5 # pour la n°5
Nouveau début de données (2150399-83886079, 2152448 par défaut) : 2150400  # Début qu'on repositionne exactement au même endroit que l'initiale.

Commande pour spécialistes (m pour l'aide) : r # il reste juste à modifier le type, retour en mode normal.

Commande (m pour l'aide) : t # modifier le type d'une partition
Numéro de partition (1-3,5, 5 par défaut) : 5 # la n°5
Code Hexa ou synonyme (taper L pour afficher tous les codes) :L # on liste les types existan

...

   lvm            - 8E
   linuxex        - 85
...
Code Hexa ou synonyme (taper L pour afficher tous les codes) :8E # on veut une partition LVM linux comme initialement.

Type de partition « Linux » modifié en « Linux LVM ».
Commande (m pour l'aide) : p # On affiche l'état de nos partitions

Disque /dev/sda : 40 GiB, 42949672960 octets, 83886080 secteurs
Modèle de disque : Virtual Disk    
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x248fe134

Périphérique Amorçage   Début      Fin Secteurs Taille Id Type
/dev/sda1    *           2048  1953791  1951744   953M 83 Linux
/dev/sda2             1953792  2148351   194560    95M 83 Linux
/dev/sda3             2150398 83886079 81735682    39G  5 Étendue
/dev/sda5             2150400 83886079 81735680    39G 8e LVM Linux


Commande (m pour l'aide) : w # Tout est bon On écrit les modifications sur le disque
La table de partitions a été altérée.
Impossible de mettre à jour les informations du système à propos de la partition 3: Périphérique ou ressource occupé

Le noyau continue à utiliser les anciennes partitions. La nouvelle table sera utilisée lors du prochain démarrage. 
Synchronisation des disques.

Il reste à redémarrer le système pour que ça soit pris en compte

reboot
Prise en compte dans LVM

Enfin, comme précédemment il faudra agrandir la partition LVM avec pvs et lvresize

pvresize /dev/sda5
lvextend -l +100%FREE /chemin/disque/lvm
File system

Il va rester à redimensionner le système de fichier posé sur la partition  pour que lui aussi occupe tout l’espace :

resize2fs /chemin/disque/lvm

 

Liens

→ Vidéo linuxtricks

→ Augmenter la tailler d'un disque LVM (pour l'agrandissement avec fdisk)