Linux: nessuno spazio lasciato sull'errore del dispositivo con il 50% di spazio libero


8

Dopo aver trascorso una giornata a schiacciare la testa sulla scrivania, sarei grato di aiuto.

Sto eseguendo un proxy di calamari su Fedora 14. Anche se provo a touch /tmp/fooricevere, verrà visualizzato l'errore "spazio vuoto sul dispositivo". Ho già corso fsck. Se elimino un file di diciamo, 1 MB, sono in grado di memorizzare nuovamente 1 MB di dati, ma non di più. Da notare che ho un sacco di spazio libero:

df produzione:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             16311208   7614872   7867768  50% /
tmpfs                  1028548         0   1028548   0% /dev/shm
/dev/sda1               198337     55345    132752  30% /boot
/dev/sdb1             25803036  19407324   5084996  80% /mnt/squid-cache

Qualcuno ha idea di cosa posso provare per "recuperare" lo spazio libero?

Risposte:


16

Probabilmente hai esaurito gli inode anziché i blocchi del disco, vale a dire che hai il limite sul numero di file che il filesystem può contenere piuttosto che il limite sulla quantità totale di dati.

Puoi usare df -iper controllare questo.


Strano che avrebbe finito gli inode in un bel giro del 50% di spazio su disco però ... ma vale la pena esaminarlo; Squid crea molti file.
LawrenceC,

TomH l'hai inchiodato. È esattamente il caso ... "iFree = 0" Grazie mille per questo suggerimento!
Layticia,

@ultrasawblade squid-cache-dir è su un altro disco (sdb) il problema è sul disco di sistema (sda). Sto generando rapporti "sarg" e questo significa molti file degli ultimi 12 mesi.
Layticia,

B / c il mio disco è pieno .. e ha bisogno di più spazio, sembra forums.fedoraforum.org/showthread.php?t=246302 dice che devo riformattare. Durante la riformattazione, scegli XFS - sembra che mi permetterà di ridimensionare.
jedierikb,


0

Linux riserva una percentuale di blocchi per il superutente. Normalmente è impostato al 5%. Il 50% è insolitamente alto. Con tune2fs -mte puoi cambiarlo.


0

Questo può accadere se si utilizza btrfs e, in tal caso, questi rimedi non funzioneranno.

Dopo aver seguito molti percorsi falsi, ho finalmente preso la strada giusta dopo aver iniziato la ricerca

btrfs no

e ottenuto

btrfs nessuno spazio lasciato sul dispositivo

come primo completamento. Ciò ha portato al wiki del problema BTRFS. Apparentemente è un problema comune.

Ma anche da lì non è stato facile risolvere il mio problema. Sono stato in grado di eseguire le giuste utility avviando in modalità di ripristino, prendendo la selezione che monta i miei file system e poi cadendo alla radice.

L'articolo della wiki dice che esegui btrfs balance, ma questo non funzionerebbe per tutti i file system, e alla fine ho trovato la mia strada qui (che è anche il secondo risultato di ricerca).

Se il tuo file system è veramente pieno, anche il bilanciamento non verrà eseguito. O verrà eseguito solo per piccoli valori di -dusage.

La ricetta in questo caso è in fondo al post. L'ho trovato confuso e inizialmente lo ho rifiutato come soluzione perché il poster rimuove le istantanee, cosa che ritengo essenziale, e poiché non stavo scattando istantanee, pensavo che non fosse applicabile. Ma lo ha fatto. Il passaggio dell'istantanea può essere importante per alcuni, ma non lo è stato per me.

Il rimedio, in sintesi, è:

  1. Crea un file di grandi dimensioni
  2. Trasformalo in un dispositivo loop
  3. Collega il dispositivo a fs che non è in grado di bilanciare
  4. Esegui l'equilibrio
  5. Stacca il dispositivo
  6. Nuke il file per recuperare quello spazio

Il post di riferimento fornisce i passaggi della riga di comando.

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.