Frage Best Practices für ZFS mit Hardware-RAID


Wenn eine Serverhardware zur Verfügung steht, ist es ratsam, ZFS zusätzlich zu einem hardwarebasierten RAID1 oder ähnlichem einzusetzen? Sollte man das hardwarebasierte RAID abschalten und ZFS auf einem laufen lassen mirror oder ein raidz  zpool stattdessen?

Sind hardware-RAID-basierte SATA2- und SAS-Controller mehr oder weniger wahrscheinlich, wenn die Hardware-RAID-Funktionalität ausgeschaltet ist, Lese- und Schreibfehler mehr als bei Nicht-Hardware-RAID-Controllern zu verbergen?

In Bezug auf nicht-anpassbare Server, wenn eine Situation vorliegt, in der ein Hardware-RAID-Controller effektiv kostenneutral ist (oder sogar die Kosten des vorgefertigten Serverangebots senkt, da seine Präsenz die Wahrscheinlichkeit der Bereitstellung von komplementärem IPMI durch das Hosting-Unternehmen verbessert Zugang), sollte es überhaupt vermieden werden? Aber sollte es gesucht werden?


25
2017-10-10 21:00


Ursprung


mögliches Duplikat von ZFS über Hardware Mirroring oder nur Spiegelung in ZFS? - Shane Madden♦
@ShaneMadden, die Fragen sind ähnlich, aber meine Frage kommt schon aus der Perspektive von Hardware Raid ist schlecht in Bezug auf ZFS, und ich frage, wie schlimm es ist; Bedenken Sie auch, dass die akzeptierte Antwort auf Ihre verknüpfte Frage meine Frage überhaupt nicht behandelt; meine Frage ist eher eine Nachfolgefrage zu der Frage, die Sie verknüpft haben. - cnst
"ZFS zusätzlich zu Hardware Mirroring oder nur Spiegelung in ZFS?" und diese Frage sind zwei verschiedene Themen. Dieses andere Thema ist enger als dieses Thema. - Stefan Lasiewski
@ewhite, hast du das nicht schon gefragt? - cnst
@cnst Nun, es gibt keine deutliche Antwort, und die Leute behalten Downvoting meine Antwort. Es wäre also schön, wenn die Frage ein wenig abgeschlossen wäre. (es ist die verantwortliche Sache zu tun) - ewwhite


Antworten:


Die Idee mit ZFS ist es, so viel wie möglich über die Funktionsweise von Festplatten zu informieren. Dann vom Schlimmsten zum Besseren:

  • Hardware Raid (ZFS hat absolut keine Ahnung von der realen Hardware),
  • JBOD-Modus (Das Problem ist mehr über jeden möglichen Expander: weniger Bandbreite),
  • HBA-Modus ist der ideale (ZFS alles über die Festplatten wissen)

Da ZFS bei der Hardware ziemlich paranoid ist, ist es um so besser, je weniger es sich versteckt. Und wie von SammitchWenn Sie einen irgendwie konfigurierten RAID-Controller haben, bedeutet das auch, dass Sie am selben Tag das gleiche Setup erhalten (Hardware und Konfiguration).

Über das Problem der standardisierten Hardware mit einigen Hardware-RAID-Controllern sollte man nur darauf achten, dass die Hardware-Controller einen echten Pass-Through- oder JBOD-Modus haben.


15
2017-10-10 21:31



Es ist auch erwähnenswert, dass, wenn Sie HW-RAID verwenden und Ihr Controller stirbt [es passiert mehr, als Sie denken würden], wenn Sie keinen Ersatz bekommen, der entweder identisch oder vollständig kompatibel ist, werden Sie angespornt. Auf der anderen Seite, wenn Sie die Raw-Disketten an ZFS übergeben, können Sie diese Disketten in einen beliebigen Controller auf einer beliebigen Maschine stecken, und ZFS kann das Array rekonstruieren und so weitermachen, als sei nichts passiert. - Sammitch
High-End-Server verfügen normalerweise über Onboard-RAID-Controller. Z.B. Ich musste nie einen Controller auf einem HP oder Dell System ersetzen. - ewwhite
Diese Antwort beantwortet nichts. Es drückt nur die voreingenommene Meinung aus, dass der Lieferant der Server-Hardware und der ZFS-Programmierer einen besseren Job gemacht haben als der Lieferant des RAID-Controllers und der Programmierer der RAID-Firmware. Die FreeNAS-Community ist voll von Leuten, die ihre Zpools mit fehlerhaftem Serverspeicher oder ungeeigneten Netzteilen getötet haben. Die Chance, dass etwas Großes scheitert, ist größer als etwas Kleines. - ceving


Q. Wenn es eine Serverhardware gibt, ist es immer ratsam, ZFS zusätzlich zu einem hardwarebasierten RAID1 oder einem anderen zu verwenden?

A. Es ist sehr zu empfehlen, ZFS direkt auf die Festplatte zu laden und dazwischen keine Form von RAID zu verwenden. Unabhängig davon, ob ein System, das die RAID-Karte effektiv erfordert, nicht die Verwendung von ZFS ermöglicht, hat mehr mit den anderen Vorteilen von ZFS zu tun als mit der Datenausfallsicherheit. Wenn es eine zugrunde liegende RAID-Karte gibt, die für die Bereitstellung einer einzelnen LUN an ZFS verantwortlich ist, wird ZFS die Datenausfallsicherheit nicht verbessern. Wenn Ihr einziger Grund, mit ZFS zu arbeiten, in erster Linie die Verbesserung der Datensicherheit ist, haben Sie einfach alle Gründe für die Verwendung verloren. ZFS bietet jedoch auch ARC / L2ARC, Komprimierung, Snapshots, Clones und verschiedene andere Verbesserungen, die Sie vielleicht auch möchten, und in diesem Fall ist es vielleicht immer noch das Dateisystem Ihrer Wahl.

F. Sollte man das hardwarebasierte RAID ausschalten und stattdessen ZFS auf einem Mirror oder Raidz-Zpool ausführen?

A. Ja, wenn überhaupt möglich. Einige RAID-Karten erlauben den Pass-Through-Modus. Wenn es das hat, ist dies das Beste, was zu tun ist.

F. Sind Hardware-RAID-basierte SATA2- und SAS-Controller bei deaktivierter Hardware-RAID-Funktionalität mehr oder weniger wahrscheinlich Lese- und Schreibfehler als Nicht-Hardware-RAID-Controller?

A. Dies hängt vollständig von der betreffenden RAID-Karte ab. Sie müssen über das Handbuch gehen oder den Hersteller / Verkäufer der RAID-Karte kontaktieren, um herauszufinden. Manche tun das sehr, ja, vor allem, wenn das Ausschalten der RAID-Funktionalität das Gerät nicht komplett ausschaltet.

Q. In Bezug auf nicht anpassbare Server, wenn eine Situation vorliegt, in der ein Hardware-RAID-Controller effektiv kostenneutral ist (oder sogar die Kosten des vorgefertigten Serverangebots senkt, da seine Präsenz die Wahrscheinlichkeit der Bereitstellung des Hosting-Unternehmens verbessert ergänzender IPMI-Zugang), sollte es überhaupt vermieden werden? Aber sollte es gesucht werden?

A. Das ist die gleiche Frage wie die erste. Nochmals - wenn Sie nur ZFS verwenden möchten, um die Datenausfallsicherheit zu verbessern, und Ihre gewählte Hardwareplattform eine RAID-Karte benötigt, die ZFS (oder mehrere LUNs, aber ZFS-Stripe) eine einzige LUN bietet, dann tun Sie das Nichts, um die Datenausfallsicherheit zu verbessern, und daher ist Ihre Wahl von ZFS möglicherweise nicht angemessen. Wenn Sie jedoch eine der anderen ZFS-Funktionen als nützlich empfinden, kann dies immer noch der Fall sein.

Ich möchte noch ein weiteres Problem hinzufügen - die obigen Antworten beruhen auf der Idee, dass die Verwendung einer Hardware-RAID-Karte unter ZFS ZFS nichts anbelangt, abgesehen von der Beseitigung der Fähigkeit, die Datenausfallsicherheit zu verbessern. Die Wahrheit ist, dass das eher eine Grauzone ist. Innerhalb von ZFS gibt es verschiedene Tunesables und Annahmen, die nicht unbedingt so gut funktionieren, wenn LUNs mit mehreren Laufwerken anstelle von Raw-Laufwerken ausgegeben werden. Das meiste davon kann mit der richtigen Einstellung negiert werden, aber Sie sind nicht mehr so ​​effizient wie ZFS auf großen RAID-LUNs, als wären Sie auf einzelnen Spindeln.

Darüber hinaus gibt es einige Hinweise darauf, dass die sehr unterschiedliche Art und Weise, in der ZFS mit LUNs im Gegensatz zu herkömmlichen Dateisystemen kommuniziert, oft Codepfade im RAID-Controller und Workloads, die sie nicht gewohnt sind, verursacht, was zu Kuriositäten führen kann. Vor allem werden Sie wahrscheinlich einen Gefallen tun, indem Sie die ZIL-Funktionalität vollständig in jedem Pool deaktivieren, den Sie auf eine einzelne LUN legen, wenn Sie nicht auch ein separates Protokollgerät bereitstellen, obwohl ich Sie natürlich sehr empfehlen kann Stellen Sie dem Pool ein separates Raw-Log-Gerät zur Verfügung (das ist, wenn überhaupt, keine LUN von der RAID-Karte).


11
2017-10-11 18:12





Ich betreibe ZFS ziemlich oft auf HP ProLiant Smart Array RAID-Konfigurationen.

Warum?

  • Weil ich ZFS für Datenpartitionen mag, nicht Boot-Partitionen.
  • Denn Linux und ZFS-Boot ist jetzt wahrscheinlich nicht sicher genug für mich.
  • Weil HP RAID-Controller dies nicht zulassen Passthrough für RAW-Geräte. Konfigurieren mehrerer RAID 0-Volumes ist nicht identisch mit RAW-Festplatten.
  • Da Server-Backplanes typischerweise nicht flexibel genug sind, um Laufwerkseinschübe einem bestimmten Controller zuzuweisen oder Aufgaben zwischen zwei Controllern aufzuteilen. Heutzutage sieht man am häufigsten 8- und 16-Bay Setups. Nicht immer genug, um die Dinge so zu segmentieren.
  • Aber ich mag immer noch die Volume-Management-Funktionen von ZFS. Der zpool ermöglicht es mir, Dinge dynamisch zu bearbeiten und den verfügbaren Speicherplatz optimal zu nutzen.
  • Komprimierung, ARC und L2ARC sind Killer-Funktionen!
  • Ein ordnungsgemäß entwickeltes ZFS-Setup auf Hardware-RAID-Basis bietet weiterhin eine gute Warn- und Ausfallwarnung, übertrifft jedoch die reine Hardware-Lösung.

Ein Beispiel:

RAID-Controller-Konfiguration.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

Geräteliste blockieren

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

Zpool-Konfiguration

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

Zpool-Detail

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

zfs Dateisystemauflistung

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -

7
2017-10-10 21:36



Also, in Bezug auf die geschlossene Frage, die Sie verknüpft haben, ist es zu sagen, dass, wenn ich ZFS verwenden möchte, ich besser, zum Beispiel, Dell PERC H200 und HP P410 vermeiden? Haben sie immer noch keine Möglichkeit, den RAID-Modus der Hardware zu deaktivieren, sei es RAID0 oder RAID1? - cnst
So scheint es dell.com/learn/us/en/04/campaigns/dell-raid-controllers behauptet, dass H200 "unterstützt Non-RAID", obwohl h18004.www1.hp.com/products/servers/proliantstorage/... Es ist nicht ganz klar, ob die RAID-Funktionalität von P410 ausgeschaltet werden kann oder nicht. - cnst
@cnst Sie können die RAID-Funktionalität eines HP Smart Array P410 nicht deaktivieren. - ewwhite


In der Regel sollten Sie ZFS nicht auf Festplatten ausführen, die in einem RAID-Array konfiguriert sind. Beachten Sie, dass ZFS nicht im RAID-Modus ausgeführt werden muss. Sie können nur einzelne Festplatten verwenden. Jedoch verwenden fast 99% der Leute ZFS für den RAID-Teil davon. Sie können Ihre Festplatten einfach im Striping-Modus ausführen, aber das ist eine schlechte Verwendung von ZFS. Wie andere Poster gesagt haben, will ZFS viel über die Hardware wissen. ZFS sollte nur mit einer RAID-Karte verbunden sein, die auf den JBOD-Modus eingestellt oder vorzugsweise mit einem HBA verbunden werden kann. Gehe zum IRC Freenode-Kanal #openindiana; Jeder der ZFS-Experten im Kanal wird Ihnen dasselbe sagen. Bitten Sie Ihren Hosting-Provider, den JBOD-Modus bereitzustellen, wenn er keinen HBA bereitstellt.


4
2017-12-12 02:44



Ja ich stimme zu. Aber es ist auch eine Frage dessen, was auf Lager ist mit der Konfiguration, die der Rechnung und der Spezifikation entspricht. Wenn ein Server über große CPU, viel ECC-RAM, große Bandbreite und eine Menge davon verfügt, aber über ein hardwarebasiertes RAID verfügen muss, ist es möglicherweise nicht kosteneffektiv, nach Alternativen zu suchen, die um ein Vielfaches teurer sein können. weil es in einer anderen Kategorie ist oder einige der Enterprise-Funktionen wie ECC RAM usw. fehlen. - cnst


Kurz gesagt: Mit RAID unter ZFS wird die Idee, ZFS zu verwenden, einfach umgangen. Warum? - Weil es für reine Festplatten und nicht für RAIDs entwickelt wurde.


2
2017-12-12 01:47



Nicht unbedingt. Was ist, wenn mir die Volume-Management-Flexibilität wichtiger ist als die Optimierung um den rohen Zugriff auf physische Geräte? ZFS funktioniert sehr gut für meinen Anwendungsfall. - ewwhite
@ewwhite, nun, jemand kann Fahrrad fahren in der Nähe fahren und sagen, dass er gerne spazieren geht und Fahrräder im Allgemeinen liebt, aber die Wahrheit ist, dass Fahrräder dafür gemacht sind, darauf geritten zu werden. ) - poige


Für alle von euch ... ZFS über jeden Raid ist ein totaler SCHMERZ und wird nur von MAD Leuten gemacht! ... wie ZFS mit nicht ECC Speicher zu benutzen.

Mit Proben werden Sie besser verstehen:

  • ZFS über Raid1, eine Festplatte hat sich ein wenig geändert, wenn sie nicht ausgeschaltet wurde ... alles was du weißt, ZFS wird Schaden sehen oder nicht abhängig davon, welche Festplatte gelesen wird (Raid Controller hat das Bit nicht verändert und denkt, dass beide Festplatten OK sind) ) ... wenn der Fehler im VDEV-Teil liegt ... der gesamte ZPOOL verliert für immer alle Daten.
  • ZFS über Raid0, eine Platte hat sich ein bisschen verändert, wenn sie nicht ausgeschaltet wurde ... heb alles was du weißt (Raid Controller hat das Bit nicht verändert und denkt, dass beide Festplatten in Ordnung sind) ... ZFS wird diesen Schaden sehen, aber wenn der Fail ist im VDEV-Teil ... der ganze ZPOOL verliert all seine Daten für immer.

Wo ZFS gut ist, erkennt man Bits, die sich geändert haben, wenn die Festplatte ohne Strom ist (RAID-Controller können das nicht), auch wenn sich etwas ändert, ohne gefragt zu werden usw.

Es ist das gleiche Problem, wenn sich ein Bit in einem RAM-Modul spontan ändert, ohne gefragt zu werden ... wenn Speicher ECC ist, korrigiert der Speicher es selbst; wenn nicht, haben sich diese Daten geändert, so dass die Daten an geänderte Platten gesendet werden; Vorsicht, diese Änderung ist nicht auf dem UDEV-Teil, wenn der Fehler im VDEV-Teil ist ... der ganze ZPOOL verliert alle seine Daten für immer.

Das ist eine Schwäche von ZFS ... VDEVs bedeutet, dass alle Daten für immer verloren gehen.

Hardware Raid und Software Raid können keine spontanen Bitänderungen erkennen, sie haben keine Prüfsummen, am schlechtesten auf Raid1 Levels (Spiegel), sie lesen nicht alle Teile und vergleichen sie, sie zeigen alle Teile haben immer die gleichen Daten, ALLWAYS (ich sage laut) Raid stellt Daten nicht durch andere Dinge / Wege geändert ... aber Festplatten (wie Speicher) neigen zu spontanen Bitänderungen.

Verwenden Sie niemals ein ZFS auf einem Nicht-ECC-RAM und niemals ZFS auf Razed Disks, lassen Sie ZFS alle Festplatten sehen, fügen Sie keine Ebene hinzu, die Ihr VDEV und POOL ruinieren kann.

Wie man solche Fehler simuliert ... schalte den PC aus, nehme eine Platte von diesem Raid1 heraus und ändere nur ein Bit ... reconect und sieh dir an, wie der Raid-Controller nicht wissen kann, dass sich das geändert hat ... ZFS kann, weil alle Lesevorgänge getestet werden gegen die Prüfsumme und wenn nicht übereinstimmt, lesen Sie Formular aus einem anderen Teil ... Raid nie wieder gelesen, weil ein Fehler (außer Hardware unmöglich Lesen schlägt fehl) ... wenn Raid lesen kann, denkt, dass Daten in Ordnung ist (aber es ist nicht in solchen Fällen ) ... Raid nur versuchen, von einer anderen Festplatte zu lesen, wenn es liest "Hey, ich kann nicht lesen von dort, Hardware fehlschlagen" ... ZFS von einer anderen Festplatte gelesen, wenn die Prüfsumme nicht übereinstimmt, als ob, wo es liest sagt "Hey, ich kann nicht von dort lesen, Hardware scheitern".

Hoffe, ich lasse es sehr klar ... ZFS über jede Ebene von Raid ist ein Toal Schmerz und ein totales Risiko für Ihre Daten! sowie ZFS auf Nicht-ECC-Speicher.

Aber was niemand sagt (außer mir) ist:

  • Verwenden Sie keine Festplatten mit internem Cache (nicht nur SHDDs, auch solche mit 8Mib bis 32MiB Cache, usw.) ... einige von ihnen verwenden Nicht-ECC-Speicher für diesen Cache
  • Verwenden Sie nicht SATA NCQ (eine Möglichkeit, Schreibvorgänge in eine Warteschlange zu stellen), da dies ZFS bei Stromausfall ruinieren kann

Also welche Festplatten zu verwenden?

  • Jede Diskette mit internem Akku, die alle Warteschlangen sicherstellt, wird bei Stromausfall auf den Datenträger geschrieben und verwendet ECC-Speicher (Entschuldigung, es gibt sehr kleine und all das ist teuer).

Aber, hey, die meisten Leute wissen das alles nicht und hatten nie ein Problem ... ich sage zu ihnen: Wow, wie glücklich du bist, kaufe ein paar Lottoscheine, bevor das Glück weggeht.

Die Risiken sind da ... solche Fehler können vorkommen ... also ist die bessere Antwort:

  • Versuchen Sie, keine Ebene zwischen ZFS und wo Daten wirklich gespeichert werden (RAM, Raid, NCQ, interner Festplattencache, etc) zu speichern ... so viel wie Sie sich leisten können.

Was ich persönlich mache?

  • Legen Sie einige Schichten mehr ... Ich benutze jede 2,5 "SATA III 7200 U / min Disk auf einem USB 3.1 Gen2 Typ C Gehäuse, ich verbinde einige Gehäuse mit einem USB 3.1 Gen 2 Typ A Hub, den ich mit dem PC verbinde, andere mit einem anderen Hub dass ich mit einem anderen Root-Port auf dem PC verbinden, etc.
  • Für das System verwende ich interne SATA-Konnektoren auf einer ZFS (Raid0-Ebene), weil ich ein unveränderbares (Like a LiveCD) Linux-System benutze, jeden identischen Inhalt auf internen Festplatten bootet ... und ich habe ein Klon-Image des Systems, das ich wiederherstellen kann (weniger als 1GiB System) ... auch benutze ich den Trick, um das System in einer Datei enthalten und verwenden RAM-Mapped-Laufwerk, wo ich es beim Booten klonen, so nach dem Start läuft das ganze System im RAM ... setzen solche Datei auf eine DVD kann ich auch auf die gleiche Weise booten, so dass im Falle des Scheiterns der internen Festplatten, ich nur mit der DVD booten und das System ist wieder online ... ähnlicher Trick zu SystemRescueCD, aber ein bisschen komplexer, weil ISO-Datei auf dem sein kann interne ZFS oder einfach die echte DVD und ich will nicht zwei verschiedene Versionen.

Hoffe, ich könnte ein wenig Licht auf ZFS gegen Raid geben, es ist wirklich ein Schmerz, wenn Dinge schief gehen!


2
2018-05-11 12:42



Sie sagen also, dass ZFS so unzuverlässig ist, dass Sie, wenn sich ein einzelnes Bit ändert, das gesamte Dateisystem verlieren können? Wie verursacht SATA NCQ Datenverlust, wenn das Laufwerk den Host nur dann benachrichtigt, wenn die Sektoren erfolgreich geschrieben wurden (wenn auch in einer anderen Reihenfolge)? - Malvineous