Kurz gesagt: Wenn Sie eine Low-End-RAID-Karte (ohne Cache) verwenden, tun Sie sich einen Gefallen und wechseln Sie zu Software-RAID. Wenn Sie eine Mid-to-High-End-Karte (mit BBU oder NVRAM) verwenden, ist Hardware häufig (aber nicht immer! Siehe unten) eine gute Wahl.
Lange Antwort: Als die Rechenleistung begrenzt war, hatten Hardware-RAID-Karten den entscheidenden Vorteil, die Paritäts- / Syndromberechnung für RAID-Schemata, an denen sie beteiligt waren (RAID 3/4/5, RAID6, ecc), auszulagern.
Mit der ständig steigenden CPU-Leistung verschwand dieser Vorteil jedoch im Grunde: Selbst die alte CPU meines Laptops (Core i5 M 520, Westmere-Generation) weist eine XOR-Leistung von über 4 GB / s und eine RAID-6-Syndrom-Leistung von über 3 GB / s auf Single Execution Core .
Der Vorteil, den Hardware-RAID heutzutage bietet, ist das Vorhandensein eines durch Stromausfall geschützten DRAM-Caches in Form von BBU oder NVRAM. Dieser geschützte Cache bietet eine sehr geringe Latenz für den wahlfreien Schreibzugriff (und das Lesen der Treffer) und wandelt im Grunde zufällige Schreibvorgänge in sequenzielle Schreibvorgänge um. Ein RAID-Controller ohne einen solchen Cache ist nahezu unbrauchbar . Darüber hinaus werden einige Low-End-RAID-Controller nicht nur ohne Cache ausgeliefert, sondern deaktivieren auch den privaten DRAM-Cache der Festplatte. Dies führt zu einer geringeren Leistung als ohne RAID-Karte. Ein Beispiel sind die PERC H200- und H300-Karten von DELL: Wenn die neuere Firmware dies nicht geändert hat, wird der private Cache der Festplatte vollständig deaktiviert (und kann nicht erneut aktiviert werden, solange die Festplatten mit dem RAID-Controller verbunden sind). Tu dir selbst einen Gefallen und tu esKaufen Sie niemals solche Steuerungen. Selbst High-End-Controller deaktivieren häufig den privaten Cache der Festplatte, haben jedoch zumindest einen eigenen geschützten Cache, wodurch der private Cache der Festplatte (aber nicht der SSD!) Etwas redundant wird.
Dies ist jedoch nicht das Ende. Selbst leistungsfähige Controller (mit BBU- oder NVRAM-Cache) können bei Verwendung mit SSD inkonsistente Ergebnisse liefern, da SSDs einen schnellen privaten Cache für eine effiziente Programmierung / Löschung von FLASH-Seiten benötigen . Bei einigen (den meisten?) Controllern können Sie den privaten Cache der Festplatte erneut aktivieren (z. B .: PERC H700 / 710 / 710P kann der Benutzer ihn erneut aktivieren). Wenn dieser private Cache nicht schreibgeschützt ist, besteht die Gefahr, dass Daten verloren gehen von Leistungsverlust. Das genaue Verhalten ist abhängig von Controller und Firmware (z. B. bei einem DELL S6 / i mit 256 MB WB-Cache und aktiviertem Festplatten-Cache gab es bei mehreren geplanten Stromausfalltests keine Verluste), was zu Unsicherheit und großer Besorgnis führte.
Open-Source-Software-RAIDs hingegen sind viel besser kontrollierbare Bestien - ihre Software ist nicht in einer proprietären Firmware enthalten und verfügt über gut definierte Metadatenmuster und -verhalten. Software-RAID geht (richtig) davon aus, dass der private DRAM-Cache des Datenträgers nicht geschützt ist, dies jedoch für eine akzeptable Leistung von entscheidender Bedeutung ist. Daher wird er normalerweise nicht deaktiviert, sondern es werden ATA FLUSH / FUA-Befehle verwendet, um sicherzustellen, dass dies kritisch ist Daten landen auf stabilem Speicher. Da sie häufig über die am Chipsatz SB angeschlossenen SATA-Ports ausgeführt werden, ist ihre Bandbreite sehr gut und die Treiberunterstützung hervorragend.
Bei Verwendung mit mechanischen Festplatten leiden jedoch synchronisierte, zufällige Schreibzugriffsmuster (z. B. Datenbanken, virtuelle Maschinen) erheblich unter einem Hardware-RAID-Controller mit WB-Cache. Bei Verwendung mit Enterprise-SSDs (z. B. mit einem durch Stromausfall geschützten Schreibcache) ist Software-RAID häufig besser und liefert sogar noch bessere Ergebnisse als Hardware-RAID-Karten. Das heißt, Sie müssen sich daran erinnern, dass Consumer-SSDs (gelesen: mit nicht geschütztem Rückschreib-Cache), obwohl sie sehr gut lesen und asynchron schreiben können, in synchronisierten Schreib-Workloads sehr niedrige IOPS liefern.
Beachten Sie auch, dass Software-RAIDs nicht alle gleich erstellt werden. Windows-Software-RAID hat einen schlechten Ruf, was die Leistung angeht, und auch der Speicherplatz scheint nicht zu unterschiedlich zu sein. Linux MD Raid ist außergewöhnlich schnell und vielseitig, aber der Linux-E / A-Stapel besteht aus mehreren unabhängigen Elementen, die Sie sorgfältig verstehen müssen, um die maximale Leistung zu erzielen. ZFS-Paritäts-RAID (ZRAID) ist weit fortgeschritten, kann jedoch bei falscher Konfiguration zu sehr schlechten IOPs führen. Mirroring + Striping hingegen funktioniert recht gut. Auf jeden Fall benötigt es ein schnelles SLOG-Gerät für das synchrone Write Handling (ZIL).
Endeffekt:
- Wenn Ihre Workloads nicht für zufällige Schreibvorgänge synchronisiert sind, benötigen Sie keine RAID-Karte
- Wenn Sie eine RAID-Karte benötigen , kaufen Sie keinen RAID-Controller ohne WB-Cache
- Wenn Sie vorhaben, SSD-Software zu verwenden, wird RAID bevorzugt. Beachten Sie jedoch, dass Sie für hochsynchronisierte zufällige Schreibvorgänge eine verlustgeschützte SSD benötigen (z. B. Intel S4600, Samsung PM / SM863 usw.). Für reine Leistung ist Linux MD Raid wahrscheinlich die beste Wahl, aber heutzutage verwende ich im Allgemeinen gestreifte ZFS-Spiegel. Wenn Sie sich nicht leisten können , die Hälfte des Platzes aufgrund Spiegel zu verlieren und Sie benötigt ZFS erweiterte Funktionen, gehen mit ZRAID aber sorgfältig über Ihre VDEVs Setup denken.
- Wenn Sie selbst bei Verwendung einer SSD eine Hardware-RAID-Karte benötigen, verwenden Sie SSDs mit schreibgeschützten Caches (Micron M500 / 550/600 ist teilweise geschützt - nicht wirklich ausreichend, aber besser als nichts), während die Intel DC- und S-Serien über einen vollständigen Stromausfall verfügen Schutz, und das gleiche gilt für Unternehmen Samsung SSDs)
- Wenn Sie RAID6 benötigen und normale, mechanische Festplatten verwenden, sollten Sie eine schnelle RAID-Karte mit 512 MB (oder mehr) WB-Cache kaufen. RAID6 weist eine hohe Schreibleistung auf, und ein WB-Cache mit geeigneter Größe kann zumindest einen schnellen Zwischenspeicher für kleine synchrone Schreibvorgänge bereitstellen (z. B. Dateisystemjournal).
- Wenn Sie RAID6 mit Festplatten benötigen, aber keine Hardware-RAID-Karte kaufen können / möchten, denken Sie sorgfältig über Ihr Software-RAID-Setup nach. Eine mögliche Lösung für Linux MD Raid besteht beispielsweise darin, zwei Arrays zu verwenden: Ein kleines RAID10-Array für Journal-Schreib- / DB-Protokolle und ein RAID6-Array für Raw-Speicher (als Dateiserver). Andererseits ist Software-RAID5 / 6 mit SSDs sehr schnell, sodass Sie wahrscheinlich keine RAID-Karte für eine reine SSD-Einrichtung benötigen.