xen: no space left on device (invece no)


Sono un utilizzatore soddisfatto di macchine virtuali Xen. Uso la parola “utilizzatore”, per precisare che più di usarlo non faccio: non sono un esperto di virtualizzazione.

Così l’altro giorno quando mi sono imbattuto in un problema di “no space left on device” sulla macchina virtuale, non sapevo dove sbattere la testa.

Ovviamente df confermava che sulla macchina virtuale c’erano gigabyte di spazio libero, percui ho pensato a un problema legato a Xen.

Cercando con google ho scoperto che è un baco noto, con una soluzione nota:
sostanzialmente xenstore si incarta, e quello che si deve fare è – dopo aver fermato xen – cancellare il file /var/lib/xenstored/tdb, in modo che venga riscritto da xen alla ripartenza.

Ecco, a me questa soluzione non è stata sufficiente, anzi non ha risolto nulla.

Ho perso diverso tempo nel tentativo di capire cosa non funzionava, finché non mi sono accorto che mentre riuscivo a creare un file di certe dimensioni sulla macchina virtuale, non riuscivo a fare un svn update, che ottenevo il fatidico “no space left on device”.

Alché mi è venuto un dubbio e facendo un df -i, mi sono accorto che non avevo finito lo spazio sul disco virtuale, bensì gli inode.

Mannaggia o’ capitone!

Il fatto di stare su una macchina virtuale, mi aveva fatto pensare che l’errore fosse di Xen, invece non era così.

Come ho risolto?

Ho “ingrandito” l’immagine usata da Xen con:


dd if=/dev/zero of=tmpfile bs=1024 count=30000000

Dove 30000000 sono il numero di megabyte (bs=1024) che voglio aggiungere.


cat tmpfile >> disk.img


resize2fs -f disk.img

E voilà, ora la macchina virtuale è pronta per partire con 30Gb in più e qualche inode in più.

  1. No comments yet.
(will not be published)