Gestione partizioni di macchine virtuali Xen
I comandi fondamentali sono:
# Xen 3 xe host-vm-list find /dev -name \*UUID-della-vm\* # Xen 4 xe vm-disk-list --multiple find /dev -name \*UUID-del-VDI-del-disco\*
per la lista dei block device della macchina virtuale.
NB: per Xen 4 il VDI è quello immediatamente dopo il VDB col nome della macchina che si sta cercando nel campo vm-name-label.
NB: per Xen 3 notare che la parte terminale del nome è il nome del disco all'interno di xen (xvda, xvdb, ...).
ATTENZIONE: la tabella delle partizioni di questi dischi virtuali non viene caricata al boot dal kernel host. Quindi, per poter accedere alle singole partizioni, bisogna prima caricarne la tabella con il comando kpartx (vedi dopo) e poi ricordarsi di "scaricare" la tabella prima di far ripartire la macchina guest.
ATTENZIONE: assicurarsi di aver spento la macchina virtuale prima di fare qualsiasi modifica ai suoi dischi.
Per prima cosa occorre ridimensionare il disco da interfaccia grafica xenserver-client (altrimenti sarà necessario un lvresize ed il valore riportato dall'interfaccia grafica NON sarà aggiornato).
Su Xen 4 l'lvresize del volume non viene più fatto automaticamente dall'interfaccia grafica. È necessario, quindi, farlo a mano.
Esempi
Supponiamo che il nostro disco virtuale sia
/dev/VG_XenStorage-00cbc55d-7345-4a7d-83b9-ea2aef2f9dd7/LV-f5f903fc-869f-40ea-9249-52886d454f6d.xvdb
Per vederne le partizioni:
fdisk -l /dev/VG_XenStorage-00cbc55d-7345-4a7d-83b9-ea2aef2f9dd7/LV-f5f903fc-869f-40ea-9249-52886d454f6d.xvdb
Per modificarne o allargare le partizioni:
fdisk /dev/VG_XenStorage-00cbc55d-7345-4a7d-83b9-ea2aef2f9dd7/LV-f5f903fc-869f-40ea-9249-52886d454f6d.xvdb
Per accedere ad un filesystem di una partizione:
losetup /dev/loop0 /dev/VG_XenStorage-00cbc55d-7345-4a7d-83b9-ea2aef2f9dd7/LV-f5f903fc-869f-40ea-9249-52886d454f6d.xvdb
kpartx -a /dev/loop0
per fare l'e2fsck sul filesystem nella prima partizione:
e2fsck /dev/mapper/loop0p1
per fare il resize del filesystem nella prima partizione:
e2fsck -f /dev/mapper/loop0p1 resize2fs /dev/mapper/loop0p1
per montare il filesystem nella prima partizione:
mkdir a mount /dev/mapper/loop0p1 a ls a umount a rmdir a
ATTENZIONE: prima di riavviare la macchina virtuale è indispensabile fare umount, scaricare la tabella delle partizioni ed eliminare il loop device. I comandi sono:
umount a kpartx -d /dev/loop0 losetup -d /dev/loop0
e vanno eseguiti in questo ordine.