e2fsck auf einem großen Dateisystem schlägt mit Fehler fehl: Speicherzuordnung fehlgeschlagen

7

Ich versuche, e2fsck für ein großes RAID-Array zu verwenden, das 2 TB groß ist und GPT für die Partitionierung verwendet (aufgrund der Größe).

Auf dem System ist nur 1 GB RAM installiert, und ich kann derzeit keine weiteren hinzufügen.

Das Problem ist, dass kurz nach dem Starten von fsck auf dem Gerät eine Fehlermeldung angezeigt wird, die besagt:

Error storing directory block information (inode=115343515, block=0, num=108120142): Memory allocation failed
e2fsck: aborted

Nach ein wenig Online-Suche und Recherche bin ich auf diesen Beitrag gestoßen:

Auf großen Dateisystemen läuft fsck nicht mehr aus

Ich habe den Rat befolgt, nachdem ich auf der MAN-Seite e2fsck.confnachgeschlagen habe, und im Grunde genommen eine /etc/e2fsck.conf-Datei erstellt, die wie folgt aussieht:

[scratch_files]
directory = /var/cache/e2fsck

und versuchte es erneut mit fsck, nachdem sichergestellt war, dass die /var/cache/e2fsckDirektive erstellt wurde. Nachdem ich den fsck erneut gestartet und den verfügbaren Speicher, die CPU-Auslastung und die Verzeichnisgröße von /var/cashe/e2fsck... überprüft habe, kann ich sagen, dass es definitiv sehr geholfen hat ... aber es ist schließlich immer noch nicht gelungen, den gleichen Fehler zu geben. Grundsätzlich hat es geholfen, den Speicherverbrauch zu verlangsamen, aber nicht alles zusammen negiert.

Also habe ich versucht, mit den Additionsflags für die e2fsck.confDatei zu spielen, indem ich :

dirinfo = false 

oder

dirinfo = true

und

icount = false

oder

icount = true

Keiner von beiden schien eine große Wirkung zu haben, da der gleiche Fehler nach kurzer Zeit auftritt.

Vermisse ich etwas Ich bin damit einverstanden, dass das fsck lange dauert ... Aber ich brauche es, um es tatsächlich zu vervollständigen, anstatt es zu verfälschen.

Jason
quelle

Antworten:

2

Wenn Sie können, fügen Sie dem System einen Swap-Bereich hinzu. Das fsck wird wahnsinnig lange dauern, aber es wird schließlich abgeschlossen sein. Zerhacken Sie das nächste Mal Ihr Dateisystem in kleinere Teile.

womble
quelle
Das Dateisystem wird für einen Sicherungsdienst verwendet, den wir ausführen. Daher ist ein großes kontinuierliches Laufwerk / eine Partition wünschenswert. Leider scheint es nicht viel Swap-Speicherplatz zu verbrauchen, bevor es fehlschlägt ... der aktuelle Swap-Speicherplatz beträgt ebenfalls 1 GB ... aber es füllt sich nur etwa 500 MB, bevor es ausfällt, da die Speichernutzung viel schneller aufgebraucht wird. Ich werde heute versuchen, den Server herunterzufahren und ein e2fsck von einer Live-CD auszuführen, und werde zurückmelden, wenn der Speicherverbrauch unterschiedlich ist ... Ich glaube nicht, dass es so sein wird, aber wir werden sehen.
Jason
Ich habe es ohne Glück von einer Boot-CD aus versucht ... es lief im Grunde so, als ob es sich innerhalb des Betriebssystems befand und nach ein paar Minuten mit dem Speicherzuordnungsfehler fehlerhaft war ... ich bin irgendwie ratlos über diese ... tut es Dies bedeutet, dass das Dateisystem so beschädigt ist, dass es unmöglich ist, es zu überprüfen. Ich möchte wirklich vermeiden, das Dateisystem auf diesem Laufwerk neu
Jason
1
MOAH SWAPZ! Das Ausführen von einer Live-CD verbraucht mehr Speicher als das lokale Ausführen (Ramdisks verwenden RAM ). Wenn ich mehr Swap sage, meine ich wirklich mehr Swap - 10, 20 GB. Ich verstehe nicht, warum "wir führen einen Sicherungsdienst aus" bedeutet "wir brauchen eine große Partition" ... machen Sie mehrere kleine und montieren Sie sie alle nebeneinander in separaten Buckets. Wenn Sie Ihre Daten nicht speichern, werden Sie Ihre Indizes ohnehin zu traurigen Pandas machen.
Womble
1
  1. Haben Sie diese Flags zum Abschnitt [Scratch_Files] hinzugefügt? Versuchen Sie außerdem, mit "numdirs_threshold" zu steuern, wann die Scratch-Dateien verwendet werden.
  2. Manchmal sind die e2fs-Dienstprogramme auf dem installierten System zu alt (wie Centos4). Sie können ein Rettungsimage mit der neueren Version der Kernel- und Dateisystem-Utils starten. Richten Sie die Datei e2fsck.conf ein und lassen Sie sie von e2fsck verwenden.

HTH.

AndreasM
quelle
0

Ist das Array interner oder externer Speicher? Wenn es sich um einen externen / angeschlossenen Speicher handelt, schließen Sie ihn an eine andere Box mit mehr RAM für den an fsck. Alternativ können Sie Ihr Setup neu partitionieren und in kleinere Teile aufteilen. Sie können mehrere Partitionen unter einer einzigen "Backup" -Dateisystemhierarchie bereitstellen. Ihre Clients und Sicherungssoftware müssen nicht wissen, dass sie mehrere oder separate Dateisysteme berühren.

Wenn dieser Speicher fsckerst später im Startvorgang gelöscht wird, stellen Sie sicher, dass Sie alle Anwendungen deaktivieren, die möglicherweise Ihren wertvollen Speicher verbrauchen, bis der Speicher fsckabgeschlossen ist.

Christopher Cashell
quelle