Redimensionner le disque dur d’une machine virtuelle tournant sous Xen

Dans le cas où le manque d’espace se fait sentir sur une des machines virtuelles hébergée par Xen, sachez qu’il est possible d’augmenter son espace disque facilement.

Disque dur avec « fichier loopback »

La technique donnée ici est dans le cas où vous avez des disques durs dits « fichier loopback »

Nous commençons par créer un fichier temporaire de 1 Gio qui nous servira à augmenter la taille de notre disque dur par la suite.
dd if=/dev/zero of=/tmp/xen_disk_temp bs=1024k count=1000

Si ce n’est déjà fait, il faut stopper la machine virtuelle.
xm shutdown nom-de-la-machine

Ensuite, à l’aide du fichier créé précédemment, nous allons augmenter la taille de notre disque virtuel. Ici il ne va gagner que 1 Gio d’espace, pour plus, exécuter à nouveau la commande.
cat /tmp/xen_disk_tem >> /home/xen/domains/nom-de-la-machine/disk.img

Il est possible de faire une boucle pour automatiser le traitement. Ici nous allons augmenter la taille de 10 x 1 Gio.
for i in $(seq 1 10); do cat /tmp/xen_disk_tem >> /home/xen/domains/nom-de-la-machine/disk.img; done

On étend la partition pour profiter de la nouvelle taille disponible.
resize2fs -f /home/xen/domains/nom-de-la-machine/disk.img

Il est possible de procéder à une vérification du fichier loopback.
fsck.ext4 disk.img

Tout ceci fait, on peut maintenant redémarrer la machine et constater l’augmentation de l’espace disque.
xm create nom-de-la-machine

Disque dur LVM

Quant à LVM, la procédure est plus simple, il suffit d’utiliser les outils LVM mis à disposition. Ces opérations sont à exécuter machine virtuelle stoppée.

On augmente de 10 Gio le volume logique. Il est possible de mettre des valeurs négatives pour diminuer la taille.
lvresize -L +10g /dev/nom_du_groupe/nom_du_volume

On vérifie le volume logique.
e2fsck -f /dev/groupe1/nom_du_groupe/nom_du_volume

On étend la partition pour profiter de la nouvelle taille disponible.
resize2fs /dev/groupe1/nom_du_groupe/nom_du_volume