Augmenter une partition LVM

Voici un petit mémo pour moi même, qui détaille la façon d’augmenter la taille d’une partition lvm:

On va commencer par créer une partition de type lvm sur l’espace vide d’un disque, /dev/sda (dans un contexte hyperviseur):

fdisk /dev/sda

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x3657f1c2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

On affiche la table de partition (vide sur un disque vierge)  avec la lettre « p« :

Command (m for help): p

Disk /dev/sda: 581.7 GB, 421474836480 bytes
16 heads, 183 sectors/track, 451610 cylinders, total 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 identifier: 0x3567f1c2

 Device Boot Start End Blocks Id System
/dev/sda1 * * * * * *
/dev/sda2 * * * * * *

On crée une nouvelle partition avec « n »

Command (m for help): n

Puis on choisit une partition type « primary » (« p« )

Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p

On lui donne un numéro (chez moi, il y a déjà un sda1 et sda2 donc cela sera la sda3 « 3« ):

Partition number (1-4, default 1): 3
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039

On va maintenant changer le « type » de la partition, c’est a dire que l’on va indiquer que cette partition est une partition lvm (8e):

Command (m for help): t
Selected partition 3
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

8e est le code pour LVM.

On affiche la table de partition pour tout vérifier avant de réécrire la table :

Command (m for help): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders, total 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 identifier: 0x3657f1c2

Device Boot Start End Blocks Id System
/dev/sda1 * * * * * *
/dev/sda2 * * * * * *
/dev/sda3 2048 41943039 20970496 8e Linux LVM

On a bien une partition de type « LVM ».

On peux enfin écrire la table:

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks
.

Pour une prise en charge de la nouvelle table sans redémarrer :

partx -v -a /dev/sda

Maintenant qu’on en a terminé avec le bas niveau, occupons-nous de LVM.

On commence par sauvegarder la configuration de LVM pour la restaurer en cas de problème:

vgcfgbackup mvg

Cela va créer un fichier /etc/lvm/backup/mvg qu’il nous sera utile en cas de problème.

On poursuit en initialisant maintenant la partition Lvm que l’on souhaite ajouté:

pvcreate /dev/sda3

Writing physical volume data to disk "/dev/sda3"
Physical volume "/dev/sda3" successfully created

On peut maintenant étendre le volume groupe « mvg » sur ce nouveau disque/partition:

vgextend mvg /dev/sda3

Volume group "mvg" successfully extended

Nous allons maintenant étendre le volume groupe à la totalité de l’espace libre de « mvg »:

lvextend -l +100%FREE /dev/mvg/LogVol02

Extending logical volume LogVol02 to 136.72 GiB
Logical volume LogVol02 successfully resized

En cas de problème, nous pouvons restaurer la configuration de LVM à l’état précédent grâce à la sauvegarde faite precedemment avec cette commande:

vgcfgrestore -f /etc/lvm/backup/mvg

Si tout est bon, il ne nous reste plus qu’à étendre le file système du volume logique (EXT2/3/4):

resize2fs /dev/mvg/LogVol02

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mvg/VolGroup00-LogVol02 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 9
Performing an on-line resize of /dev/mvg/VolGroup00-LogVol02 to 35840000 (4k) blocks.
The filesystem on /dev/mvg/VolGroup00-LogVol02 is now 35840000 blocks long.

Si la partition est en XFS, il faudra plutot passer par cette commande:

xfs_growfs /dev/mvg/LogVol02

meta-data=/dev/mvg/LogVol02 isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 9697280

On peux maintenant savourer son travail avec un petit df -h.

 

 

 

Derniers Articles