Errore server linux con plesk 11: “No space left on device”, colpa degli inodes?

Oggi analizzieremo un problema riscontrato sul mio server dedicato con sistema operativo linux centos 6 e con piattaforma plesk 11. Il mio server ha un hardisk di 2 TB ma dopo aver tentato di scaricare un grosso backup di 4 gb sul mio pc all’improvviso si è imputtanato tutto, non riuscivo più ad accedere in plesk, a nulla sono serviti i tentativi di riavviare la macchina. Il messaggio che appariva nei log di errore era questo: “No space left on device”, in realtà m sembrava strano che avevo consumato 2 TB di hardisk, infatti lo spazio occupato era circa 50 gb. Fortunatamente il mio sistemista ha risolto il problema in 10 minuti ed anche se non mi ha detto da cosa era causato chiedendo aiuto nel forum di plesk mi è stato detto che poteva trattarsi dell’esaurimento degli inodes.

Che cosa sono gli Inodes sul disco?

Un articolo completo lo trovate qui ma per semplificarvi la vita gli inodes sono il numero di identificazione di ogni file nel sistema Unix / Linux, contengono informazioni su utenti e gruppi proprietari, modalità di accesso e tipo di file. 2 file con informazioni differenti creeranno 2 inodes, maentre due file con le stesse informazioni creeranno solo 1 inodes.

Per essere certi che avete esaurito lo spazio inodes accedendo via SSH potete lanciare i seguenti comandi:

  • Per controllare l’utilizzo dello spazio sull’hardisk è possibile utilizzare il seguente comando sul server PBA-S:
    # df -h

Se il vostro hardisk non è pieno al 100% bisognerà controllare il numero di file inodes creati.

  • Per controllare gli inodes utilizzati (numero di file creati), è possibile utilizzare il seguente comando sul server PBA-S:
    # df -i

Se gli inodes sono in prossimità del 100% allora è stato individuato il problema.

Risoluzione

Si prega di utilizzare la seguente procedura per risolvere il problema:

  • Se il server di PBA-S è installato all’interno di un contenitore di Virtuozzo Containers Parallels con ID “99”, quindi aumentare lo spazio su disco per il contenitore dal nodo hardware:
    # vzquota stat 99 ## to check current limit
    # vzctl set 99 --save --diskspace NEW_LIMIT ## to increase it
  • Cancellare i vecchi registri sotto la directory  /var/log/hspc/  (file con estensione .log)
  • Diminuire il periodo in cui le segnalazioni dei problemi vengono conservate –  regolare il valore dei parametri REPORT_EXPIRES (in giorni) nel file di configurazione /etc/hspc/hspc.conf sul server PBA-S
  • Disattivare la registrazione binaria MySQL e cancellare i log binari di MySQL esistenti:
    • Eseguire l’utility mysqled eseguire il seguente comando:
      mysql> reset master;
    • Commentare l’opzione log-bin nel file di configurazione /etc/my.cnf  (le modifiche verranno applicate solo dopo il riavvio di MySQL)
  • Controllare se logrotate funziona correttamente, come descritto in questo articolo.