Linux: Kein Speicherplatz mehr auf Gerätefehler mit 50% freiem Speicherplatz

8

Nachdem ich einen Tag damit verbracht hatte, meinen Kopf auf dem Schreibtisch zu zerquetschen, würde ich mich über Hilfe freuen.

Ich führe unter Fedora 14 einen Squid-Proxy aus. Selbst wenn ich es versuche, touch /tmp/foowird der Fehler "Kein Speicherplatz mehr auf dem Gerät" angezeigt. Ich bin schon gelaufen fsck. Wenn ich eine Datei mit beispielsweise 1 MB lösche, kann ich wieder 1 MB Daten speichern, aber nicht mehr. Bemerkenswert ist, dass ich viel freien Speicherplatz habe:

df Ausgabe:

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

Hat jemand eine Idee, was ich versuchen kann, um den freien Speicherplatz "zurückzugewinnen"?

Layticia
quelle

Antworten:

16

Vermutlich sind Ihnen eher Inodes als Festplattenblöcke ausgegangen - das heißt, Sie haben die Begrenzung für die Anzahl der Dateien, die das Dateisystem enthalten kann, und nicht die Begrenzung für die Gesamtdatenmenge.

Sie können dies verwenden df -i, um dies zu überprüfen.

TomH
quelle
Seltsam, dass ihm die Inodes bei einem schönen runden Speicherplatz von 50% ausgehen würden ... aber einen Blick wert; Squid erstellt viele Dateien.
LawrenceC
TomH du hast es geschafft. Genau das ist der Fall ... "iFree = 0" Vielen Dank für diesen Hinweis!
Layticia
@ultrasawblade Das Squid-Cache-Verzeichnis befindet sich auf einer anderen Festplatte (SDB). Das Problem befindet sich auf der Systemfestplatte (SDA). Ich generiere "Sarg" -Berichte und dies bedeutet viele Dateien aus den letzten 12 Monaten.
Layticia
B / c meine Festplatte ist voll .. und benötigt mehr Speicherplatz, es sieht aus wie forums.fedoraforum.org/showthread.php?t=246302 sagt, ich muss neu formatieren. Bei der Neuformatierung wird XFS ausgewählt - es sieht so aus, als würde ich damit skalieren.
jedierikb
0

Linux reserviert einen Prozentsatz der Blöcke für den Superuser. Es ist normalerweise auf 5% eingestellt. 50% ist ungewöhnlich hoch. Mit können tune2fs -mSie das ändern.

LawrenceC
quelle
0

Dies kann passieren, wenn Sie btrfs verwenden. In diesem Fall funktionieren diese Abhilfemaßnahmen nicht.

Nachdem ich vielen falschen Pfaden gefolgt war, war ich endlich auf dem richtigen Weg, nachdem ich mit der Suche begonnen hatte

btrfs nr

und bekam

btrfs kein Platz mehr auf dem Gerät

als erste Fertigstellung. Das führte zum BTRFS-Problem-Wiki. Es ist anscheinend ein häufiges Problem.

Aber selbst von dort aus war es nicht so einfach, mein Problem zu lösen. Ich konnte die richtigen Dienstprogramme ausführen, indem ich in den Wiederherstellungsmodus bootete, die Auswahl traf, die meine Dateisysteme bereitstellt, und dann zu root ging.

In dem Wiki-Artikel heißt es, btrfs balance ausführen, aber das würde nicht für alle Dateisysteme ausgeführt werden, und schließlich habe ich meinen Weg hierher gefunden (was auch das zweite Suchergebnis ist).

Wenn Ihr Dateisystem wirklich voll ist, wird nicht einmal das Gleichgewicht ausgeführt. Oder es wird nur für kleine Werte von -dusage ausgeführt.

Das Rezept ist in diesem Fall am Ende des Beitrags. Ich fand es verwirrend und lehnte es zunächst als Lösung ab, da das Poster Schnappschüsse entfernt, was ich für wesentlich hielt, und da ich keine Schnappschüsse machte, dachte ich, dass es nicht zutraf. Aber es tat es. Der Schnappschuss-Schritt mag für einige wichtig sein, war aber nicht für mich.

Das Mittel im Überblick ist:

  1. Erstellen Sie eine große Datei
  2. Machen Sie es zu einem Loop-Gerät
  3. Schließen Sie das Gerät an das fs an, das nicht balancieren kann
  4. Balance laufen lassen
  5. Nehmen Sie das Gerät ab
  6. Nuke die Datei, um diesen Speicherplatz zurückzubekommen

Der referenzierte Beitrag enthält die Befehlszeilenschritte.

WolfReporter
quelle