Gestione partizioni di macchine virtuali Xen

Da sia.
Vai alla navigazione Vai alla ricerca

I comandi fondamentali sono:

 xe host-vm-list

per ottenere l'uuid (cioè il nome interno) della macchina virtuale, noto il nome.

 find /dev -name \*UUID\*

(dove UUID è il valore trovato prima) per la lista dei block device della macchina virtuale.

Notare che la parte terminale del nome è il nome del disco all'interno di xen (xvda, xvdb, ...).

ATTENZIONE: questi device sono partizioni il cui contenuto è l'immagine di un disco! Questo vuol dire che il kernel dell'host li vede come partizioni, mentre il kernel del guest li vede come dischi. Quindi, per vedere le partizioni ed i filesystem di un disco virtuale sulla macchina host, bisogna prima caricare nel kernel host la tabella delle partizioni, in modo che crei i device per le partizioni, e poi accedere al filesystem attraverso i device delle partizioni appena creati.

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).

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.