ZFS-Datenverlustszenarien

27

Ich freue mich darauf, einen größeren ZFS-Pool (über 150 TB) aufzubauen, und ich würde gerne Erfahrungen über Datenverlustszenarien aufgrund von Hardwareausfällen hören, insbesondere wenn zwischen Fällen unterschieden wird, in denen nur einige Daten verloren gehen, und dem gesamten Dateisystem ( ob es überhaupt eine solche Unterscheidung in ZFS gibt).

Beispiel: Angenommen, ein vdev geht aufgrund eines Fehlers verloren, z. B. wenn ein externes Laufwerksgehäuse die Stromversorgung verliert oder eine Controllerkarte ausfällt. Nach dem, was ich gelesen habe, sollte der Pool in einen fehlerhaften Modus wechseln, aber wenn der vdev zurückgegeben wird, sollte sich der Pool erholen? oder nicht? oder wenn der vdev teilweise beschädigt ist, verliert man den ganzen pool, einige dateien usw.?

Was passiert, wenn ein ZIL-Gerät ausfällt? Oder nur eine von mehreren ZILs?

Wirklich alle Anekdoten oder hypothetischen Szenarien, die durch tiefes technisches Wissen gestützt werden, werden geschätzt!

Vielen Dank!

Aktualisieren:

Wir machen das billig, da wir ein kleines Unternehmen sind (9 Leute oder so), aber wir generieren eine ganze Menge Bilddaten.

Die Daten sind größtenteils kleine Dateien, nach meiner Zählung etwa 500.000 Dateien pro TB.

Die Daten sind wichtig, aber nicht überkritisch. Wir planen, den ZFS-Pool zu verwenden, um 48 TB "Live" -Daten-Array zu spiegeln (in Verwendung für 3 Jahre oder so) und den Rest des Speichers für "archivierte" Daten zu verwenden.

Der Pool wird mithilfe von NFS gemeinsam genutzt.

Das Rack befindet sich angeblich auf einer Backup-Generator-Linie, und wir haben zwei APC-USVs, mit denen das Rack etwa 5 Minuten lang mit Volllast betrieben werden kann.

Zyklon
quelle
2
Wenn Sie noch nicht wissen, was Sie tun, holen Sie sich einen Berater und / oder machen Sie Kurse. Ich bezweifle, dass alle Einzelheiten, die Sie benötigen, in einer einfachen Antwort zusammengefasst werden können.
Lucas Kauffman
3
Sie planen also immer noch, billige 7.2-SATAs für Endverbraucher zu verwenden? Seufzer
Chopper3
@ Chopper3 Eigentlich habe ich das absichtlich nicht gesagt ... Ich denke ernsthaft darüber nach, 2-TB-SAS-Laufwerke anstelle von 3-TB-SATA-Laufwerken zu kaufen. Obwohl ich viele Leute gesehen habe, die sagen, dass sie SATA-Laufwerke verwendet haben, ist das in Ordnung ...
Cyclone
1
SATA-Festplatten für ZFS sind keine wirklich gute Mischung. Sie werden heutzutage nicht viele Leute finden, die dieses Setup empfehlen. Bei der Skala, von der Sie sprechen (150 TB), handelt es sich um einen teuren und unnötigen Fehler. Schauen Sie sich das an .
Ewwhite

Antworten:

22

Entwerfen Sie den richtigen Weg und minimieren Sie das Risiko eines Datenverlusts von ZFS. Sie haben jedoch nicht erklärt, was Sie im Pool aufbewahren. In meinen Anwendungen werden hauptsächlich VMWare-VMDKs bedient und zvols über iSCSI exportiert. 150 TB sind keine triviale Menge, daher würde ich mich auf einen Fachmann für Skalierungsratschläge stützen.

Ich habe noch nie Daten mit ZFS verloren.

Ich habe alles andere erlebt:

Trotzdem kam es nie zu einem nennenswerten Datenverlust. Nur Ausfallzeiten. Für die VMWare-VMDKs, die sich auf diesem Speicher befinden, war nach einem Ereignis häufig ein Fsck oder Neustart erforderlich, jedoch nicht schlimmer als bei jedem anderen Serverabsturz.

Was den Verlust eines ZIL-Geräts angeht, hängt dies vom Design, den gespeicherten Daten sowie den E / A- und Schreibmustern ab. Die von mir verwendeten ZIL-Geräte sind relativ klein (4 GB bis 8 GB) und funktionieren wie ein Schreibcache. Einige Leute spiegeln ihre ZIL-Geräte. Durch die Verwendung der High-End-STEC-SSD-Geräte ist das Spiegeln kostengünstig. Ich verwende stattdessen einzelne DDRDrive PCIe-Karten. Planen Sie den Batterie- / USV-Schutz und verwenden Sie SSDs oder PCIe-Karten mit einer Superkondensatorsicherung (ähnlich wie bei BBWC- und FBWC-Implementierungen von RAID-Controllern ).

Der größte Teil meiner Erfahrung war auf der Seite von Solaris / OpenSolaris und NexentaStor . Ich weiß, dass Leute ZFS unter FreeBSD verwenden, aber ich bin mir nicht sicher, wie weit die zpool-Versionen und andere Funktionen zurückliegen. Für reine Speicherbereitstellungen würde ich empfehlen, Nexentastor zu wählen (und mit einem erfahrenen Partner zu sprechen ), da es sich um ein speziell entwickeltes Betriebssystem handelt und auf Solaris-Derivaten kritischere Bereitstellungen ausgeführt werden als auf FreeBSD.

ewwhite
quelle
Ich habe meine Frage mit einigen weiteren Informationen aktualisiert, bin aber besonders daran interessiert, mehr Details zu erfahren über: "Niemals einen nennenswerten Datenverlust" und was dies bedeutet / bedeutet. Außerdem interessiert es mich, mehr über die Wiederherstellung dieser fehlerhaften Zpools, den Umgang mit den fehlerhaften NICs und sogar die Probleme mit den SATA-Laufwerken und den Wechsel zu SAS zu erfahren auf Ihre Empfehlung).
Zyklon
Nicht nennenswerter Verlust == ein paar Sekunden Transaktionsdaten oder ein Absturz-konsistenter Zustand . Die fehlerhaften NICs wurden auf einem einzelnen VMWare-Host isoliert und führten zu Problemen auf VM-Ebene. Nicht der zugrunde liegende ZFS-Speicher.
Ewwhite
Die design the right wayVerbindung ist jetzt unterbrochen.
Saurabh Nanda
11

Ich habe versehentlich beide ZILs in der letzten Version von OpenSolaris überschrieben, wodurch der gesamte Pool unwiderruflich verloren ging. (Wirklich schlimmer Fehler meinerseits! Ich habe nicht verstanden, dass der Verlust der ZIL den Verlust des Pools bedeuten würde. Glücklicherweise hat sich das Backup mit Ausfallzeiten erholt.)

Seit Version 151a (weiß nicht sofort, was ZPool-Version bedeutet) wurde dieses Problem behoben. Und ich kann bezeugen, dass es funktioniert.

Abgesehen davon habe ich auf einem 20-TB-Server NULL-Daten verloren - auch aufgrund mehrerer weiterer Fälle von Benutzerfehlern, mehreren Stromausfällen, fehlerhafter Datenträgerverwaltung, fehlerhaften Konfigurationen, zahlreichen fehlerhaften Datenträgern usw. Obwohl die Verwaltung und Konfigurationsoberflächen unter Solaris ändern sich häufig und verrückt von Version zu Version und stellen ein signifikantes, sich ständig veränderndes Kompetenzziel dar. Es ist immer noch die beste Option für ZFS.

Ich habe nicht nur keine Daten auf ZFS verloren (nach meinem schrecklichen Fehler), sondern es schützt mich ständig. Ich habe keine Datenbeschädigung mehr - was mich in den letzten 20 Jahren auf einer beliebigen Anzahl von Servern und Workstations mit meiner Arbeit gequält hat. Stille (oder nur "ziemlich leise") Datenbeschädigung hat mich mehrmals getötet, als die Daten aus der Sicherungsrotation gerollt sind, aber tatsächlich auf der Festplatte beschädigt wurden. Oder andere Szenarien, in denen die Backups die beschädigten Versionen gesichert haben. Dies war ein weitaus größeres Problem, als Daten auf einmal in großem Umfang zu verlieren, was sowieso fast immer gesichert wird. Aus diesem Grund liebe ich ZFS einfach und kann nicht verstehen, warum Prüfsummen und automatische Korrekturen seit einem Jahrzehnt nicht mehr Standardfunktionen in Dateisystemen sind. (Zugegeben, echte Systeme für Leben oder Tod haben normalerweise andere Möglichkeiten, die Integrität zu gewährleisten.)

Wenn Sie nicht in die ACL-Hölle einsteigen möchten, sollten Sie den in ZFS integrierten CIFS-Server nicht verwenden. Benutze Samba. (Sie sagten, Sie verwenden NFS.)

Ich bin mit dem Argument SAS vs. SATA nicht einverstanden, zumindest mit dem Vorschlag, dass SAS für ZFS immer SATA vorgezogen wird. Ich weiß nicht, ob sich dieser Kommentar auf die Plattendrehzahl, die vermutete Zuverlässigkeit, die Schnittstellengeschwindigkeit oder andere Attribute bezog. (Oder vielleicht nur "sie kosten mehr und werden im Allgemeinen nicht von Verbrauchern verwendet, deshalb sind sie überlegen.") Eine kürzlich veröffentlichte Branchenumfrage (immer noch in den Nachrichten, da bin ich mir sicher) ergab, dass SATA SAS im Durchschnitt sogar überlebt, zumindest mit Ich kann mich nicht erinnern, ob es sich um "Enterprise" -Versionen von SATA oder Consumer handelte oder welche Geschwindigkeiten - aber nach meiner Erfahrung scheitern Enterprise- und Consumer-Modelle gleichermaßen statistisch signifikante Raten. (Es gibt das Problem, dass Consumer-Laufwerke beim Ausfall zu lange dauern, was im Unternehmen definitiv wichtig ist - aber das hat mich nicht gebissen, und ich denke, dass es für Hardware-Controller relevanter ist, die das Ganze in Anspruch nehmen könnten In solchen Fällen ist das Volumen offline. Aber das ist kein Problem zwischen SAS und SATA, und ZFS hat mich nie enttäuscht. Aufgrund dieser Erfahrung verwende ich jetzt eine Mischung aus 1/3 Enterprise- und 2/3 Consumer-SATA-Laufwerken .) Außerdem habe ich bei dieser SATA-Mischung bei richtiger Konfiguration (z. B. einem Streifen Drei-Wege-Spiegel) keine nennenswerten Leistungseinbußen festgestellt, aber andererseits habe ich einen geringen IOPS-Bedarf, je nachdem, wie groß Ihr Shop ist und typische Anwendungsfälle, YMMV. Mir ist auf jeden Fall aufgefallen, dass die festplattenspezifische Cache-Größe in meinen Anwendungsfällen mehr für Latenzprobleme als für die Plattendrehzahl von Bedeutung ist.

Mit anderen Worten, es handelt sich um einen Umschlag mit mehreren Parametern: Kosten, Durchsatz, IOPS, Datentyp, Anzahl der Benutzer, administrative Bandbreite und allgemeine Anwendungsfälle. Zu sagen, dass SAS immer die richtige Lösung ist, bedeutet, ein großes Universum von Permutationen dieser Faktoren zu ignorieren.

Aber wie auch immer, ZFS rockt absolut.

Blasen
quelle
3
Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten. Ihre Erfahrungen mit ZFS stimmen mit meinen überein. Meine Kommentare zur Laufwerksauswahl betrafen speziell Nearline-SAS-Festplatten im Vergleich zu SATA-Festplatten. Der Hauptunterschied ist die Schnittstelle. Sie sind mechanisch gleichwertig. Die Best Practice in ZFS-Land besteht nun darin, SATA zu vermeiden, da Dual-Port-Schnittstellen, eine bessere Fehlerkorrektur und verwaltbare Zeitüberschreitungen von SAS erforderlich sind.
Ewwhite
Am Ende hatte ich 3 TB SAS-Festplatten, aber zuvor habe ich 30 gemischte Festplatten (5 400 GB SATA, 12 750 GB SATS, 14 1 TB SAS) zusammengeschustert, die ich in dasselbe SAS-Erweiterungsgehäuse gesteckt habe. Wirklich ein Worst-Case-Szenario. Diese Laufwerke hatten auch bereits ~ 2-3 Jahre Laufzeit. Ich schrieb dann ein Programm, das 8 Threads laufen ließ, die zufällig das Schreiben und das Löschen von Dateien in den Pool lesen. Ich habe das über eine Woche lang gemacht. Lesen und schreiben> 100 TB in den Pool ... keine Probleme. AVG R / W 100-400 MB / Sek. Ich vermute, dass die SATA-über-SAS-Warnungen jetzt alte Nachrichten sind.
Zyklon