Ajouter de l’espace disque a une vm |
Récemment, j’ai publié 2 articles pour le redimensionnement de vm, a chaud et avec system rescue.
Voici une troisième méthode, ajouter un disque et le fusionner à l’existant
Cet Article est rédigé et testé pour Centos 6
Pour une vm ou il n’est pas possible de mettre en maintenance (genre db) et que son espace disque atteint 99%,on peut monter un disque secondaire et agréger l’espace existant.
Voici la méthode que j’ai utilisée sur une vm de test.
Ci-dessous l’espace disque actuel, je vais rajouter un disque virtuel de 15 GO pour le point de montage /var
1 |
df -h |
1 2 3 4 5 6 7 8 9 10 11 |
Filesystem Size Used Avail Use% Mounted on /dev/mapper/mainvg-root 7,6G 1,4G 5,8G 20% / tmpfs 9,8G 0 9,8G 0% /dev/shm /dev/vda1 248M 65M 171M 28% /boot /dev/mapper/mainvg-tmp 1,5G 3,1M 1,4G 1% /tmp /dev/mapper/mainvg-var 4,2G 1,8G 2,3G 44% /var /dev/mapper/mainvg-spool 144M 1,6M 135M 2% /var/spool |
Actuellement la vm dispose d’un disque vda
1 |
# lsblk |
1 2 3 4 5 6 7 8 9 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 15G 0 disk ├─vda1 252:1 0 256M 0 part /boot └─vda2 252:2 0 14,8G 0 part ├─mainvg-swap (dm-0) 253:0 0 1G 0 lvm [SWAP] ├─mainvg-root (dm-1) 253:1 0 7,8G 0 lvm / ├─mainvg-tmp (dm-2) 253:2 0 1,5G 0 lvm /tmp ├─mainvg-var (dm-3) 253:3 0 4,4G 0 lvm /var └─mainvg-spool (dm-4) 253:4 0 152M 0 lvm /var/spool |
Sur le socle, ajouter un second disque a la vm
La vm récupère à chaud le nouveau disque, ci-dessous vdb
1 |
# lsblk |
1 2 3 4 5 6 7 8 9 10 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 15G 0 disk ├─vda1 252:1 0 256M 0 part /boot └─vda2 252:2 0 14,8G 0 part ├─mainvg-swap (dm-0) 253:0 0 1G 0 lvm [SWAP] ├─mainvg-root (dm-1) 253:1 0 7,8G 0 lvm / ├─mainvg-tmp (dm-2) 253:2 0 1,5G 0 lvm /tmp ├─mainvg-var (dm-3) 253:3 0 4,4G 0 lvm /var └─mainvg-spool (dm-4) 253:4 0 152M 0 lvm /var/spool vdb 252:16 0 15G 0 disk |
Créer la partition pour le nouveau disque
1 |
# pvcreate /dev/vdb |
1 |
<<<< Physical volume "/dev/vdb" successfully created |
Vérifier l’état, on liste bien le /dev/sdb avec 15 GO libre
1 |
# pvs |
1 2 3 |
PV VG Fmt Attr PSize PFree /dev/vda2 mainvg lvm2 a--u 14,75g 0 /dev/vdb lvm2 ---- 15,00g 15,00g |
Vérifier l’état du mainvg
1 2 3 |
vgs VG #PV #LV #SN Attr VSize VFree mainvg 1 5 0 wz--n- 14,75g 0 |
Agréger le mainvg avec la nouvelle partition
1 |
# vgextend mainvg /dev/vdb |
1 |
Volume group "mainvg" successfully extended |
Vérifier l’état du mainvg, celui-ci dispose maintenant de 15 GO d’espace disque supplémentaire
1 |
# vgs |
1 2 |
VG #PV #LV #SN Attr VSize VFree mainvg 2 5 0 wz--n- 29,74g 15,00g |
Il faut maintenant redimensionner le point de montage désiré, comme mentionné plus haut pour le /var
1 |
# lvresize -r -l+100%FREE /dev/mapper/mainvg-var |
1 2 3 4 5 6 7 |
Size of logical volume mainvg/var changed from 4,36 GiB (1117 extents) to 19,36 GiB (4956 extents). Logical volume var successfully resized. resize2fs 1.41.12 (17-May-2010) Le système de fichiers de /dev/mapper/mainvg-var est monté sur /var ; le changement de taille doit être effectué en ligne old desc_blocks = 1, new_desc_blocks = 2 En train d'effectuer un changement de taille en ligne de /dev/mapper/mainvg-var vers 5074944 (4k) blocs. Le système de fichiers /dev/mapper/mainvg-var a maintenant une taille de 5074944 blocs. |
Vérifier l’espace disque, le point de montage /var a bien été augmenté de 15 GO
1 |
# df -h |
1 2 3 4 5 6 7 8 9 10 11 |
Filesystem Size Used Avail Use% Mounted on /dev/mapper/mainvg-root 7,6G 1,4G 5,8G 20% / tmpfs 9,8G 0 9,8G 0% /dev/shm /dev/vda1 248M 65M 171M 28% /boot /dev/mapper/mainvg-tmp 1,5G 3,1M 1,4G 1% /tmp /dev/mapper/mainvg-var 19G 1,8G 17G 10% /var /dev/mapper/mainvg-spool 144M 1,6M 135M 2% /var/spool |
La partition vdb est bien agrégé
1 |
# lsblk |
1 2 3 4 5 6 7 8 9 10 11 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 15G 0 disk ├─vda1 252:1 0 256M 0 part /boot └─vda2 252:2 0 14,8G 0 part ├─mainvg-swap (dm-0) 253:0 0 1G 0 lvm [SWAP] ├─mainvg-root (dm-1) 253:1 0 7,8G 0 lvm / ├─mainvg-tmp (dm-2) 253:2 0 1,5G 0 lvm /tmp ├─mainvg-var (dm-3) 253:3 0 19,4G 0 lvm /var └─mainvg-spool (dm-4) 253:4 0 152M 0 lvm /var/spool vdb 252:16 0 15G 0 disk └─mainvg-var (dm-3) 253:3 0 19,4G 0 lvm /var |
Quelques vérifications supplémentaires
1 |
# vgs |
1 2 |
VG #PV #LV #SN Attr VSize VFree mainvg 2 5 0 wz--n- 29,74g 0 |
1 |
# pvs |
1 2 3 |
PV VG Fmt Attr PSize PFree /dev/vda2 mainvg lvm2 a--u 14,75g 0 /dev/vdb mainvg lvm2 a--u 15,00g 0 |
Faq
Impossible de créé le disque
1 |
# pvcreate /dev/sdb |
1 2 |
File descriptor 63 (pipe:[81734327]) leaked on pvcreate invocation. Parent PID 714484: -bash Device /dev/sdb not found (or ignored by filtering). |
Cela a été dû à une table de partition existante qu’il faut supprimer avec la commande dd
1 |
# dd if=/dev/zero of=/dev/sdb bs=512 count=1 conv=notrunc |