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.
quelle
Antworten:
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.
quelle
design the right way
Verbindung ist jetzt unterbrochen.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.
quelle