Le message explique comment étendre l'espace disponible dans un volume LVM en étendant la partition de disque physique à l'aide de fdisk. Cet exemple montre comment redimensionner le volume physique /dev/sdc1 de 200 Mo à 400 Mo.
Avertissement de perte de données potentielle :Cette étape supprimera la structure de partition existante et créera une nouvelle partition à sa place. Il est essentiel que la nouvelle partition soit créée exactement à la même origine que la partition supprimée, sinon une grave corruption et perte de données se produira.Vérifier la configuration actuelle
1. Vérifiez la taille actuelle du volume physique sur le disque.
# pvdisplay /dev/sdc1 "/dev/sdc1" is a new physical volume of "200.00 MiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 200.00 MiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
2. Obtenez les informations sur la configuration actuelle de LVM. Le volume logique que nous souhaitons étendre est ‘testlv’.
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
Désactiver le volume logique existant
1. Avant de procéder à l'expansion réelle de PV et LV, nous devons d'abord désactiver le volume logique. Utilisez la commande ci-dessous pour désactiver le LV.
# lvchange -a n /dev/testvg/testlv
2. Vérifiez si le volume a été désactivé.
# lvscan inactive '/dev/testvg/testlv' [100.00 MiB] inherit
Nous savons maintenant que le LVM n'est pas utilisé, nous pouvons donc démarrer le processus d'expansion dessus.
Étendez la partition "/dev/sda1" avec l'utilitaire fdisk
1. Afin d'étendre les informations sur la partition du périphérique physique, nous supprimons d'abord l'ancienne partition, puis nous en créons une nouvelle. Notez que nous imprimons d'abord les informations sur la partition actuelle afin de savoir précisément où commence la partition. Nous devons superposer la nouvelle partition plus grande en commençant au même bloc que l'ancienne partition.
# fdisk /dev/sdc Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x085579f4 Device Boot Start End Blocks Id System /dev/sdc1 2048 411647 204800 83 Linux Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): ### we will press ENTER here to select default first sector 2048 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +400M Partition 1 of type Linux and of size 400 MiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Cette étape peut être interrompue à tout moment avant d'écrire la table de partition modifiée avec le "w " commande. Jusque-là, seule une copie en mémoire de la table de partition est modifiée.
À propos de la modification des tables de partition :Les informations de partition pour tous les LUN sur un périphérique physique sont conservées dans une table de partition. La commande fdisk ne manipule que cette table de partition. Le reste du disque est toujours laissé inchangé. Cela signifie que les informations de la table de partition peuvent être modifiées mais que le contenu des partitions n'est jamais touché, toujours laissé intact.Charger la nouvelle table de partition dans le noyau
Le noyau en cours d'exécution n'a pas connaissance des nouvelles informations de partition, car fdisk modifie la table de partition en écrivant directement sur le périphérique. Normalement, le noyau ne lit les informations de partition qu'au démarrage du système ou lorsqu'un événement de connexion à chaud (tel que l'insertion d'un périphérique USB) se produit.
Cependant, nous pouvons éviter un redémarrage inutile en obligeant le noyau à relire ses informations de partition, puis à mettre à jour ses informations LVM.
# partprobe
Maintenant que le noyau est au courant de la table de partition mise à jour, informez le sous-système LVM de cette modification du périphérique physique. Par défaut, le redimensionnement utilisera la taille entière de la partition obtenue à partir de la table de partition :
# pvresize /dev/sdc1 Physical volume "/dev/sdc1" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
# pvdisplay /dev/sdc1 --- Physical volume --- PV Name /dev/sdc1 VG Name testvg PV Size 399.00 MiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 99 Free PE 74 Allocated PE 25 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
Activer le volume logique existant
La dernière étape consiste à remettre le LVM modifié en ligne. Comme toujours, nous vérifions d'abord notre travail :
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
Comme le montre la sortie ci-dessus, le volume logique est inactif. Alors activons-le d'abord.
# lvchange -a y /dev/testvg/testlv
# /usr/sbin/lvscan ACTIVE '/dev/vgtest/lvtest' [100.00 MB] inherit
Redimensionner le volume logique (facultatif)
1. Vous pouvez maintenant également étendre le volume logique car vous disposez désormais de plus d'espace dans le volume physique sous-jacent. Utilisez la commande ci-dessous pour redimensionner le LV.
# lvresize -L +200M /dev/testvg/testlv Size of logical volume testvg/testlv changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents). Logical volume testvg/testlv successfully resized.
2. Vérifiez la nouvelle taille du volume logique.
# lvscan ACTIVE '/dev/testvg/testlv' [300.00 MiB] inherit