kvm – ajouter de l’espace disque à chaud

En train d’importer un blog avec 36000 entrées à partir d’un fichier de WRX de 54 Mo, je voyais l’espace disque se remplir à vue d’oeil ! à 92% munin commençait à m’envoyer des mails d’alerte.

Pas de panique, comme j’utilise kvm et lvm, l’ajout d’espace disque peut se faire à chaud. La difficulté était que je devais tout faire en shell distant.

J’ai ainsi réussi à sauver mon processus d’import en ajoutant un disque et augmenter le volume logique mais le disque virtuelle était au mauvais format: 20 Go virtuel et 20 Go sur l’hôte même si il était vide.

Finalement voici la méthode pour ajouter à chaud de l’espace que une VM en train de staurer.

Créer un nouveau disque

Se mettre sur l’hôte et en tant que root en remplaçant staging-2.qcow par c3 qu2 vous voulez:

qemu-img create -f qcow2 /var/lib/libvirt/images/staging-2.qcow2 20G

Ne pas utiliser les option de preallocation

Attacher le disque à la VM

C’est là que réside la subtilité pour que la VM croire avoir à faire à un disque de 20G même si le fichier ne fait que quelques centaines de kilos. La commande qemu-img info permet de voir les propriétés du disque virtuel.

/var/lib/libvirt/images# qemu-img info staging-2.qcow2
image: test.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false



On va attacher le disque à la VM en précisant bien le driver qcow2

# virsh attach-disk staging /var/lib/libvirt/images/staging-2.qcow2 vdb --driver qemu --subdriver qcow2 --targetbus virtio --persistent --config --live

Remplacer vdb par un identifiant de device disponible dans la VM qui s’appelle ici staging.

En tant que root sur le VM, vérifier la présence du disque et qu’il a la bonne taille

# fdisk -l

Disque /dev/vdb : 20 GiB, 21474836480 octets, 41943040 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets

Ajouter le disque /dev/vdb dans le volume group à étendre., ici staging-vg

# vgextend staging-vg /dev/vdb

Ajouter tout l’espace au volume logique, ici /dev/staging-vg/root

# lvm lvextend -l +100%FREE /dev/staging-vg/root

Redimensionner le système de fichier qui se trouve ici dans /dev/mapper/staging--vg-root

resize2fs -p /dev/mapper/staging--vg-root

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.