Ajouter un disque "data" à une VM

Cette documentation utilise les variables ${VM} et ${HYP} qui représentent respectivement les noms de la VM et le nom de l'hyperviseur sur lesquels on travaille. Par exemple HYP=maine et VM=xmpp.

Sur l'hyperviseur de la VM concernée (maine ou coon) :

Avant de commencer, vérifions que la VM n'a pas déjà un disque vdb.

virsh domblklist ${VM}

Si c'est OK, on continue.

# Créer un nouveau disque
qemu-img create -f qcow2 /var/lib/libvirt/${HYP}/${VM}-data.qcow2 30G
# L'ajouter à chaud (--live) et de façon pérenne (--config) à la VM
virsh attach-disk ${VM} /var/lib/libvirt/${HYP}/${VM}-data.qcow2 vdb --subdriver qcow2 --live --config

Ensuite, sur la machine ${VM} :

# Constater que le nouveau disque est bien détecté et qu'il a la bonne taille
dmesg -T | grep vdb
lsblk

À partir de là, on peut imaginer différentes façons d'utiliser ce nouveau disque. On peut l'intégrer au VG déjà existant ou bien lui créer un VG distinct. C'est cette deuxième option qui est décrite dans l'exemple ci-après, où on souhaite créer une partition dédiée pour les données de postgresql.

# Créer un nouveau VG (sans partitionner le disque au préalable, c'est plus pratique pour agrandir plus tard)
pvcreate /dev/vdb
vgcreate vg_data /dev/vdb
# Créer une partition dédiée pour postgresql (par exemple)
lvcreate -n pgsql -L 5G vg_data
mkfs.ext4 -m 1 /dev/vg_data/pgsql
# TODO Ajouter cette partition au fstab, stopper le service pgsql, migrer les données, mounter la nouvelle partition, relancer le service