Bonjour,
J’ai eu le même type de problèmatique pour des VM hyperV que j’ai adressé de la façon suivante (partitionnement GPT) :
- Je créé une nouvelle (4eme dans mon cas) partition type lvm (8e) avec tout l’espace disque supplémentaire (sgdisk --move-second-header --largest-new=4 --typecode=4:8E00 /dev/sda)
- Je mets à jour la table de partition (partprobe)
- Je crée un nouveau PV sur cette nouvelle partition (pvcreate /dev/sda4)
- J’ajoute ce nouveau PV dans mon VG (vgextend vg01 /dev/sda4)
- J’étends mon LV avec tout le nouvel espace disque de mon VG (racine / dans mon cas) (lvextend -l +100%FREE /dev/vg01/root)
- J’étends mon filesystem ext4 pour prendre en compte le nouvel espace disque de mon LV (resize2fs /dev/vg01/root)
Cette méthode fonctionne sans reboot
J’avais eu une autre approche pour ne pas à avoir à recréer un nouveau PV mais pas assez propre à mon goût et qui nécessitait un reboot. De souvenir plutôt que de recréer une nouvelle partition, je supprimais l’entrée de ma partition PV de ma table de partition pour la recréer avec le nouvel espace disque (nouveau dernier block), là c’était reboot obligatoire (partprobe pas suffisant car périph occupé forcément). Ensuite redimensionnement du PV (pvresize), puis lvextend et resize2fs.
Si jamais ça peut aider.
Laurent
De : FRsAG [mailto:frsag-bounces@frsag.org] De la part de Jean-Yves LENHOF Envoyé : jeudi 28 mai 2015 07:48 À : frsag@frsag.org Objet : Re: [FRsAG] Fwd: Agrandissement du disque dur d'une VM
Le 28/05/2015 05:53, Mrjk a écrit : Hello,
Je cherche à agrandir le disque dur de mes VMs à chaud, mais ça ne fonctionne pas. Pour rappel, la procédure consiste à: 1) Agrandir l'image disque de la VM depuis l'hyperviseur (du qcow2 ici) 2) Aller sur la VM, et vérifier que la VM a bien détecté le changement de taille 3) Supprimer la partition LVM, puis la recréer avec la nouvelle taille 4) Agrandir le PV 5) Jouer avec les LV ...
Jusque là, tout le monde est d'accord, sauf que je suis _systématiquement_ obligé de rebooter mes VMs, même après relecture de la table de partition. Le reboot fonctionne plutôt bien (quoique là j'ai un cas, même après reboot, il veut pas se mettre à jour) Évidement, le message qui revient tout le temps est le suivant (partprobe, sfdisk, blockdev, kpartx ...): BLKRRPART: Device or resource busy This disk is currently in use.
On voit bien que les nouvelles tailles sont prises en compte: root@vmdb:~#cat /proc/partitions major minor #blocks name
254 0 20971520 vda 254 1 195520 vda1 254 2 20775968 vda2 <== c'est lui 20775968 = 20Go, donc c'est bon 253 0 1048576 dm-0 ...
Mais LVM, ba ... il s'en fou:
lo,
Tu as bien fait un pvresize sur le device /dev/vda2 ici ? Ce serait peut-être bien si tu nous mettais l'ensemble des commandes tapées.
root@vmdb:~# pvs PV VG Fmt Attr PSize PFree /dev/vda2 systemvm lvm2 a-- 9.58g 416.00m <== et là, juste 9Go
Bon, reboot, et ça se règle, mais ça me gonfle ... Que faire pour que ça fonctionne à chaud ? Est-ce que vous avez le même problème? C'est aléatoire ? Faut modifier la conf de LVM ? Rajouter des arguments sur le kernel ... Je sais plus où chercher pour le coup ...
Plus d'infos sur ma config: ####################### Hyperviseur: - libvirt/qemu-kvm - Debian Wheezy
VM: - Debian Wheezy - Disques: # pvs PV VG Fmt Attr PSize PFree /dev/vda2 systemvm lvm2 a-- 9.58g 416.00m # lblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 254:0 0 20G 0 disk ├─vda1 254:1 0 191M 0 part /boot └─vda2 254:2 0 19.8G 0 part ├─systemvm-slash (dm-0) 253:0 0 1G 0 lvm / ├─systemvm-home (dm-1) 253:1 0 100M 0 lvm /home ├─systemvm-tmp (dm-2) 253:2 0 100M 0 lvm /tmp ├─systemvm-var (dm-3) 253:3 0 1G 0 lvm /var ├─systemvm-var_log (dm-4) 253:4 0 1000M 0 lvm /var/log ├─systemvm-swap (dm-5) 253:5 0 1G 0 lvm [SWAP] └─systemvm-var_lib_mysql (dm-6) 253:6 0 5G 0 lvm /var/lib/mysql
-- Robin Cordier
JYL