Modification sur le disque d'une VM Linux
Publié le mardi 05 février 2013, 12:16 - modifié le 07/04/14 - Geekeries - Lien permanent
- Article
- |
- Commentaires (0)
- |
- Annexes (0)
A la création d'une VM, on décide souvent d'une taille de disques qu'on juge comme largement suffisant. Sauf que, peu importe la taille décidée, celle-ci n'est jamais suffisante, et on en vient à vouloir profiter des avantages conjoints de la virtualisation (je parle ici de VMWare mais ça devrait fonctionner avec n'importe lequel des concurrents) et de LVM. Le processus est simple : On arrête la VM, on agrandit le disque et on redémarre la VM et paf ! le physical disque est correctement redimensionné, agrandissant par la même occasion la taille disponible sur le volume group. Mais parfois, on veut agrandir le physical disk de la VM sans pour autant arrêter le service (dans le cas de serveur de prod, par exemple).
Voilà donc la marche à suivre
- Dans le programme de virtualisation Hôte (j'ai testé pour VMWare, mais normalement, c'est partout pareil... Quoi que VirtualBox...), modifier à la hausse la taille du disque désiré.
- Démonter tous les systèmes de fichiers qui sont montés sur ce disque. Si toi aussi, tu es un
warrior qui est ouf dans sa tête
, tu peux t'amuser à balancer un bonumount -a
- Dans le Linux guest, il faut saisir la commande
echo 1 > /sys/block/sdb/device/rescan
oùsdb
représente le disque concerné (ça peut être tout aussi biensda
, par exemple). /sys/block/sdb/device/rescan est un fichier spécial et l'appelle de celui-ci aura pour effet de rescanner le disque concerné, comme l'OS le fait au démarrage. Pratiquement :
root@linux-prod:~# fdisk -l /dev/sdb Disk /dev/sdb: 32.2 GB, 34574486733 bytes 64 heads, 32 sectors/track, 32768 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 root@linux-prod:~# echo 1 > /sys/block/sdb/device/rescan root@linux-prod:~# fdisk -l /dev/sdb Disk /dev/sdb: 34.4 GB, 36936718746 bytes 64 heads, 32 sectors/track, 32768 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
- Le changement de taille ayant été bien pris en compte, il ne reste plus qu'à redimensionner le physical disk (avec
pvresize
) et constater son augmentation de taille.
root@linux-prod:~# pvdisplay /dev/sdb --- Physical volume --- PV Name /dev/sdb VG Name data_vg PV Size 30.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7679 Free PE 179 Allocated PE 7500 PV UUID RioeiT-5HnL-eOhh-33xd-uiy2-FzjJ-puERws root@linux-prod:~# pvresize /dev/sdb root@linux-prod:~# pvdisplay /dev/sdb --- Physical volume --- PV Name /dev/sdb VG Name data_vg PV Size 32.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 8191 Free PE 691 Allocated PE 7500 PV UUID RioeiT-5HnL-eOhh-33xd-uiy2-FzjJ-puERws
- Le volume group ayant été étendu par la même occasion (du moins dans le cas de cas :
1 PV = 1 VG
, dans le cas contraire,vgextend
est ton ami...), il ne reste plus qu'à remonter tous les systèmes de fichiers et que même si t'es paswarrior qui est ouf dans sa tête
, tu peux faire unmount -a
, ça sera toujours plus rapide que de tout remonter à la main...