Disco VM pieno
Come identicare il problema
- Accedere al portale di Azure.
-
Selezionare un’istanza worker e accedere alla sua Serial Console.
-
Se tra i log della console, è presente spesso il seguente errore
Failed to open system journal: No space left on devicesignifica che, per quale che motivo, il disco della VM selezionata ha problemi di spazio.
- Lanciare quindi il seguente comando per visualizzare l’occupazione del disco:
df -ThIl comando tornerĂ la seguente tabella:
E’ evidente dalla tabella che il disco è pieno.
Come risolvere il problema
- Lanciare il seguente comando per capire quale sia la cartella piena:
sudo du -xh --max-depth=1 / 2>/dev/nullMolto probabilmente il grosso dell’occupazione sarà sotto la cartella /var, quindi rilancio lo stesso comando per verificare le sottocartelle di /var:
sudo du -xh --max-depth=1 /var- Procedo così fino a che non arrivo ad ottenere la sottocartella “incriminata”. L’ultimo comando lanciato dovrebbe essere simile a questo:
sudo du -h --max-depth=1 /var/lib/docker/overlay2/6572bb8dc7431040a376ccdb7e1f17beb96a7b604cd60318bed3a35182969e3d- Lanciare quindi questo ultimo comando per trovare il container “incriminato”:
docker ps -q | xargs docker inspect --format '{{.Name}} {{.GraphDriver.Data.UpperDir}}' | grep 6572bb8dc7431040a376ccdb7e1f17beb96a7b604cd60318bed3a35182969e3dIl comando tornerĂ ad esempio:
/clouderp_worker_emystore.1.zuz5csru7ja4hvc7bc3aam5lk /var/lib/docker/overlay2/2e1dade02bfab44ff22c44916ad3380af662dd5bed6706763906405ed6f0d0ec/diff-
Avendo trovato il servizio che sta riempiendo il disco, riavviarlo da Portainer.
-
Procedere quindi alla pulizia del disco, tramite il seguente comando (rispondendo “y” alla richiesta di proseguire):
docker system pruneIl comando tornerĂ lo spazio svuotato.
- Rilanciare il seguente comando per verificare che ora il disco risulta ripulito:
df -Th