Aggiornamento della dimensione libera del disco senza riavviare l'host


23

Uso RHEL4 con LVM2 su di esso. A volte anche dopo aver rimosso file di dimensioni superiori a un GB, la dimensione della partizione non viene aggiornata quando si utilizza il dfcomando.

-bash-3.00$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/sys-root  3.9G  1.4G  2.3G  39% /
/dev/cciss/c0d0p1     251M   19M  219M   8% /boot
/dev/mapper/sys-home  250G  125G  113G  53% /home
/dev/mapper/sys-tmp   3.9G   41M  3.7G   2% /tmp
/dev/mapper/sys-var   3.9G  3.6G   98M  98% /var

Ma quando controllo usando du mostra la dimensione corretta

-bash-3.00$ sudo du -sh /var/
 179M   /var/

puoi vedere che l'output di df mostra la partizione / var da 3.6Gb usata ma il du mostra che è solo 179Mb.

Ora il problema è che né sync né partprobe non stanno aggiornando le informazioni. Ma sicuramente il riavvio dell'host risolverà il problema. Ma poiché si tratta di un server di produzione, non è possibile riavviarlo. È possibile aggiornare manualmente le informazioni sul disco senza riavviare l'host?


1
Probabilmente hai file eliminati aperti (ovvero processi che si aggrappano ai file eliminati). Prova qualcosa di simile lsofa scoprirlo. Usato / dispari non è memorizzato nella tabella delle partizioni, partprobe (o qualsiasi tipo di rilettura della partizione) non sarà affatto d'aiuto.
Mat

Risposte:


28

Quando un file viene rimosso / eliminato / non collegato, se è ancora tenuto aperto da qualsiasi processo, viene cancellata solo la voce della directory per il file, non i dati del file. Quando il file è completamente chiuso da tutti i processi, i dati vengono restituiti al pool di spazi liberi. È una funzionalità poiché puoi avere file anonimi in questo modo.

Per vedere se hai un file cancellato aperto su un filesystem, esegui uno di questi comandi, dove si /mount/pointtrova il punto di montaggio ( /varnel tuo caso):

lsof +L1 /mount/point

Questo articolo su file aperti e non collegati dovrebbe aiutare a spiegarlo ancora.


2
Stavo eliminando i log ma dfnon ho mostrato spazio libero fino a quando non ho riavviato i processi del server. Grazie!
fet

Meglio chiamare lsof con 'lsof + L1' che mostra i file cancellati. Ha dato un suggerimento di modifica
Nuno Pereira,

Quindi come chiuderli?
faressoft,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.