Welches Dateisystem für große LVM-Festplatten (8 TB)?

21

Ich habe einen Linux-Server mit vielen 2-TB-Festplatten, die sich alle derzeit in einem LVM befinden, was ungefähr 10 TB Speicherplatz ergibt. Ich benutze den gesamten Speicherplatz auf einer ext4-Partition und habe derzeit ca. 8,8 TB Daten.

Das Problem ist, ich bekomme oft Fehler auf meinen Festplatten, und selbst wenn ich sie ersetze (das heißt, ich kopiere die alte Festplatte mit dd auf eine neue, dann lege ich die neue in den Server), sobald Fehler auftreten, Ich bekomme oft ungefähr 100 MB beschädigter Daten darauf. Das macht e2fsck jedes Mal verrückt und es dauert oft eine Woche, bis das ext4-Dateisystem wieder in einem vernünftigen Zustand ist.

Die Frage ist also: Was würden Sie mir empfehlen, um als Dateisystem auf meinem LVM zu verwenden? Oder was würden Sie mir empfehlen, stattdessen zu tun (ich brauche das LVM nicht wirklich)?

Profil meines Dateisystems:

  • viele Ordner mit unterschiedlichen Gesamtgrößen (einige mit 2 TB, andere mit 100 MB)
  • Fast 200.000 Dateien mit unterschiedlichen Größen (3/4 von ihnen ca. 10 MB, 1/4 zwischen 100 MB und 4 GB; ich kann derzeit keine weiteren Statistiken zu Dateien abrufen, da meine ext4-Partition einige Tage lang völlig kaputt ist)
  • Viele lesen, aber wenige schreiben
  • und ich brauche Fehlertoleranz (Ich habe die Verwendung von mdadm RAID eingestellt, weil es nicht gefällt, EINEN Fehler auf der gesamten Festplatte zu haben, und ich habe manchmal fehlerhafte Festplatten, die ich ersetze, sobald ich kann, aber das bedeutet, dass ich beschädigte Daten auf bekommen kann mein Dateisystem)

Das Hauptproblem sind fehlerhafte Festplatten. Ich kann einige Dateien verlieren, aber ich kann es mir nicht leisten, alles gleichzeitig zu verlieren.

Wenn ich ext4 weiterhin verwende, sollte ich versuchen, kleinere Dateisysteme zu erstellen und sie irgendwie zusammenzuführen, aber ich weiß nicht wie.

Ich habe gehört, BTRFS wäre nett, aber ich kann keinen Hinweis darauf finden, wie es den Verlust eines Teils eines Datenträgers (oder eines gesamten Datenträgers) verwaltet, wenn Daten NICHT repliziert werden ( mkfs.btrfs -d single?).

Jeder Hinweis auf die Frage ist willkommen, vielen Dank im Voraus!

alphatiger
quelle
1
Genau die Festplattenfehler, die Sie bekommen. Das sollte einen Hinweis geben
Soham Chakraborty
Fehlerhafte
Das bedeutet, dass Ihre Festplatte fehlerhaft ist. Kaum etwas mit Dateisystem zu tun. Wenn die Festplatte defekt ist, ist es praktisch, egal welche fs Sie verwenden. Wie bereits erwähnt, entscheiden Sie sich für RAID-Festplatten und / oder kaufen Sie Enterprise-Festplatten. Suchen Sie auch nach Qualitätsprüfern.
Soham Chakraborty
Ja, ich weiß, deshalb ersetze ich Festplatten, die schlecht laufen. Entschuldigung, wenn meine Frage nicht klar war.
Trotzdem
Sie sollten wirklich wirklich die fehlerhaften Teile Ihrer Hardware ersetzen. Das ist, als würde man einen Crashtest-Dummy betrachten, nachdem ein Auto mit 200 km / h gegen die Wand gefahren wurde. "Oh schau! Sein linkes Bein ist fast in Ordnung! Der Test war erfolgreich!" ... kein Dateisystem kann Ihnen helfen, wenn die zugrunde liegende Hardware verrottet. XFS hat schnelleres fsck als ext *, und wenn genug Zeit vergangen ist und das Dateisystem ein bisschen reifer wird, würde vielleicht auch btrfs funktionieren. Dann gibt es ZFS, aber unter Linux ist sein Zustand ein bisschen traurig.
Janne Pikkarainen

Antworten:

22

Es handelt sich nicht um ein Dateisystemproblem, sondern um die physischen Einschränkungen der Festplatten. Hier sind einige Daten:

SATA-Laufwerke werden normalerweise mit einer nicht behebbaren Lesefehlerrate (URE) von 10 ^ 14 angegeben. Das bedeutet, dass 1 Byte pro 12 TB unwiederbringlich verloren gehen, selbst wenn die Festplatten einwandfrei funktionieren.

Dies bedeutet, dass Sie ohne RAID Daten verlieren, auch wenn kein Laufwerk ausfällt - RAID ist Ihre einzige Option.

Wenn Sie RAID5 wählen (Gesamtkapazität n-1, wobei n = Anzahl der Festplatten), reicht dies immer noch nicht aus. Mit 10 TB RAID5, bestehend aus 6 x 2 TB Festplatte, haben Sie eine 20% ige Chance auf einen Laufwerksausfall pro Jahr, und mit einem Ausfall einer einzelnen Festplatte haben Sie aufgrund von URE eine 50% ige Chance, RAID5 erfolgreich wiederherzustellen und 100% Ihrer Daten wiederherzustellen .

Grundsätzlich benötigt man bei der hohen Kapazität der Festplatten und der relativ hohen URE RAID6, um auch bei einem erneuten Ausfall einzelner Festplatten sicher zu sein.

Lesen Sie dies: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162

c2h5oh
quelle
3
Warten, URE bedeutet Unrecoverable lesen Fehler , aber das bedeutet nicht , dass die Scheibe tatsächlich HAS den Fehler. Das nächste Lesen kann (und wird wahrscheinlich) das richtige Bit zurückgeben. Das Betriebssystem wird wahrscheinlich nur den Sektor erneut lesen und die korrekten Daten erhalten. Sie haben auch vergessen, über SMART zu sprechen: Bevor ein Sektor dauerhaft beschädigt wird, versucht SMART, Daten von ihm zu lesen / darauf zu schreiben. Wenn zu viele Fehler erkannt werden, verschiebt SMART den Inhalt des Sektors einfach an eine andere Stelle und markiert den Sektor als BAD, und niemand kann erneut darauf schreiben.
Avio
Sie schlagen also einfach vor, Tonnen von Festplatten zu kaufen, ohne zu fragen, WARUM seine Festplatten so fehlerhaft sind. Es könnte ein Hitzeproblem sein, es könnte ein Problem mit einem fehlerhaften SATA-Controller sein, es könnte ein Problem mit fehlerhaften SATA-Anschlüssen usw. usw. usw. sein
Avio
@Avio Ich sage, dass bei 10 TB Daten aufgrund von Festplattenbeschränkungen Lesefehler auftreten, auch wenn alle Festplatten, SATA-Controller, SATA-Anschlüsse usw. in einwandfreiem Zustand sind und den Spezifikationen entsprechen. Ich sage auch, dass, selbst wenn Sie sich entscheiden, RAID zu verwenden, um zu entschärfen, dass Sie mit RAID6 gehen sollten, weil Festplattenkapazität + URE sogar RAID5 nicht zuverlässig genug machen. Selbst ein Ausfall eines einzelnen Laufwerks auf RAID5 hat eine hohe Datenverlustwahrscheinlichkeit (50% FFS!).
c2h5oh
1
@Avio U in URE steht für Nicht behebbar wie in für immer.
c2h5oh
Dies kann das Problem des Dateisystems sein. Wenn Sie eine Kopie eines Schreibdateisystems wie btrfs oder xfs verwenden, können Sie sehr wahrscheinlich eine frühere Version der Datei wiederherstellen, sodass nur die letzte Änderung an der Datei verloren geht. (falls es jemals geändert wurde)
Jens Timmerman
13

Tun Sie sich selbst einen Gefallen und verwenden Sie ein RAID für Ihre Festplatten, bei mdadm könnte es sich sogar um Software-RAID handeln. Denken Sie auch darüber nach, warum "häufig Fehler auf Ihren Festplatten auftreten" - dies ist nicht normal, es sei denn, Sie verwenden billige Desktop-SATA-Laufwerke anstelle von RAID-Festplatten.

Danach ist das Dateisystem nicht mehr so ​​wichtig - ext4, xfs sind beide gute Möglichkeiten.

Sven
quelle
1
Ich bin damit einverstanden, dass ich sollte;), aber ich verwende RAID aus vielen Gründen nicht. Das Wichtigste ist der Preis, da sie 2-3 mal teurer sind, und das kann ich mir nicht wirklich leisten. Der zweite Grund ist, dass ich bei der letzten Verwendung von RAID 5 das Glück hatte, zwei fehlerhafte Datenträger zu erhalten, bevor ich einen neuen anschließen und erneut synchronisieren konnte (ich hatte zu diesem Zeitpunkt keine Ersatzdatenträger, ich musste auf einen warten) Ich bin damit einverstanden, dass ich bei Festplatten der RAID-Klasse dieses Problem gehabt hätte. Der dritte Grund ist, dass ich mit zunehmender Anzahl der zu speichernden Daten nach und nach neue Festplatten mit größerer Größe hinzufüge, was mit einer RAID-Konfiguration nicht möglich ist.
Alphatiger
Ich versuche also herauszufinden, ob es ein Dateisystem gibt, dessen Verwendung mir jemand in einer Konfiguration empfehlen würde, in der ich mich nicht auf unverfälschte Daten verlassen kann. Trotzdem danke für deine Antwort!
Alphatiger
4
Sie sagen also, dass Ihre Daten die zusätzlichen Kosten nicht wert sind? Wenn Sie es sich nicht leisten können, mindestens zwei Kopien Ihrer Daten zu haben, sollten Sie diese als verloren betrachten. Sie haben Recht, dass RAID5 wahrscheinlich keine gute Wahl ist. Sie sollten sich wahrscheinlich RAID6 oder RAID10 ansehen.
Zoredache
@alphatiger: Die Discs sind nur zu teuer, wenn deine Zeit und deine Daten zu billig sind.
Setzen Sie Monica - M. Schröder
8

Ich hatte viel Glück mit ZFS. Sie können überprüfen, ob es in der von Ihnen verwendeten Distribution verfügbar ist. Faire Warnung, es wird wahrscheinlich bedeuten, dass Sie Ihr gesamtes System neu aufbauen, aber es bietet wirklich gute Leistung und Fehlertoleranz.

TMN
quelle
Ich verwende derzeit Debian GNU / Linux, es scheint eine FUSE-Implementierung zu geben, aber kein Paket (aufgrund von Lizenzproblemen). Ich werde es wahrscheinlich versuchen (nach dem Kompilieren aus Quellen, da es mit FUSE nicht sehr gut für hohe Ausgaben geeignet ist), ich mache mir keine Sorgen, mein gesamtes Dateisystem neu erstellen zu müssen. Vielen Dank !
Alphatiger
+1 für ZFS. Herkömmliches RAID beschädigt Daten unbemerkt, da es nicht intelligent genug ist, um zu wissen, wann Blöcke falsch sind oder wie sie repariert werden können. ZFS hingegen erkennt beschädigte Blöcke (über Prüfsummen) und repariert sie von bekannten guten Spiegelkopien. Das Ausführen von ZFS unter FUSE ist zwar nicht ideal, reicht jedoch für viele Workloads aus. Vor diesem Hintergrund sollten Sie Ihre Anwendung laden und testen, bevor Sie sie in einer Produktionsumgebung verwenden.
Bahamat
1
Ein weiteres +1 für ZFS. Auf so ziemlich allen Servern läuft Linux, und ich bin ein großer Fan davon, aber ZFS hat sich in den letzten über drei Jahren für mich als so nützlich erwiesen, dass ich mir die Mühe gemacht habe, FreeBSD unter Linux zu lernen und einzurichten große Speichermaschine, um ZFS ohne Lizenz- oder Leistungsprobleme nutzen zu können.
SSC
Ich verwende es unter Solaris auf meiner alten Sun-Workstation, und die Leistung ist angesichts der Hardware (Single-Core-Opteron bei 2,2 GHz mit 3G-Speicher und einem Paar 250 G SATA-Laufwerke) geradezu erstaunlich.
TMN
8

Ich füge nach und nach neue Festplatten größerer Größe hinzu

Da Sie an der Verwendung von LVM interessiert sind und mehrere Laufwerke verwalten möchten, besteht die einfache Antwort darin, nur die Spiegelfunktion zu verwenden, die Teil von LVM ist. Fügen Sie einfach alle physischen Volumes zu Ihrem LVM hinzu. Wenn Sie ein logisches Volume erstellen, übergeben Sie die --mirrorsOption. Dies dupliziert Ihre Daten.

Eine andere Möglichkeit könnte darin bestehen, nur mehrere RAID1-Paare einzurichten. Fügen Sie dann alle RAID1-Volumes als PVs zu Ihrer VG hinzu. Wenn Sie dann Ihren Speicher erweitern möchten, kaufen Sie einfach ein Paar Festplatten.

Zoredache
quelle
7

Sie sollten wirklich ein RAID 5, 6, 10, 50 oder 60 verwenden. Hier einige Ressourcen für den Einstieg:

Hintergrundinformationen zu RAIDs

Howto's & Setup

Überprüfen Sie meine köstlichen Links auf zusätzliche RAID-Links: http://delicious.com/slmingol/raid

slm
quelle
Sehen Sie sich meine Kommentare zu SvenWs Antwort an, um zu sehen, warum ich RAID nicht wirklich will. (Tatsächlich habe ich bereits mehrere Software-RAIDs in einem Unternehmen eingerichtet, das sich das leisten konnte ...) Trotzdem vielen Dank!
Alphatiger
Ich habe immer Standardlaufwerke für RAIDs verwendet, nie solche, die für RAID-Verwendung bewertet wurden, und habe auch nie Probleme damit gehabt, solange Sie ein RAID ausgewählt haben, das über genügend Redundanz verfügt (RAID 6 oder RAID 60). Bei Verwendung eines RAID 6 benötigen Sie eine gerade Zahl. Sie können RAIDs relativ einfach erweitern, indem Sie vorhandene Mitglieder durch größere Festplatten ersetzen und dann in den Speicherplatz der neueren Festplatten hineinwachsen.
Slm
4

Wenn Sie sich wirklich Sorgen über Datenbeschädigungen machen, würde ich ein Dateisystem mit Prüfsummen wie zfs und btrfs empfehlen. Beachten Sie jedoch, dass btrfs immer noch als in der Entwicklung befindlich und nicht produktionsbereit gilt.

Es gibt keine Garantie dafür, dass die von einer Festplatte gelesenen (auch erfolgreich gelesenen) Daten korrekt sind. Blöcke haben Prüfsummen, aber sie sind einfache Prüfsummen, die nicht immer Fehler erkennen. Neuere Dateisysteme wie ZFS verknüpfen Dateien mit leistungsfähigeren Prüfsummen und können Datenfehler abfangen und reparieren, die von der Festplatte oder dem RAID-Controller nicht bemerkt werden.

tylerl
quelle
1

Wie @ c2h5oh sagt , ist Unrecoverable kritisch - dies bedeutet, dass die Festplatte bereits versucht hat, den Sektor erneut zu lesen, und dies fehlgeschlagen ist.

Nach meiner Erfahrung gehen einige Daten für immer verloren, sobald eine Festplatte nicht behebbare Lesefehler (UREs) erzeugt. Sie können nur mit GNU ddrescue alle Daten sofort sichern , um die fehlerhaften Sektoren erneut zu versuchen und nicht behebbare Sektoren zu überspringen.

Angenommen, Sie haben Sicherungen, die möglicherweise aufgrund der UREs fehlgeschlagen sind und mit Sicherheit einige beschädigte Dateien enthalten. Daher müssen Sie einen vollständigen Satz von Daten aus verschiedenen Sicherungen desselben Dateisystems zusammensetzen.

Die anderen Antworten, die ZFS empfehlen, sind lesenswert, da die fortlaufende Datenbereinigung und die RAID-Funktionen dazu beitragen, dass Ihre Daten auch in Zukunft sicherer werden - obwohl sie immer noch kein Ersatz für Sicherungen sind, die auch vor Benutzer- und Administratorfehlern schützen.

Ich würde LVM nur verwenden, wenn Sie keine Snapshots benötigen - es lässt sich nicht so gut in RAID integrieren, enthält keine Datenbereinigungs- / Datenprüfsummen und Sie benötigen immer noch Sicherungen, daher ist ZFS wahrscheinlich die bessere Option. Weitere Informationen finden Sie in dieser Antwort zu LVM-Problemen und -Risiken .

RichVel
quelle