Wann sollte ich ein Software-RAID bevorzugen?

d3p

Member
Hallo,

mich interessiert derzeit die Frage, wann ich ein Software-RAID gegenüber einem Hardware-RAID bevorzugen sollte.

Kann mir jemand diese Frage relativ präzise beantworten? :)

Danke,
 
Software Raid hat den schönen Vorteil, dass es unabhängig von einem bestimmten Controller funktioniert.
Dafür sprechen auch die sehr niedrigen Kosten, da man keinen dedizierten Raidcontroller benötigt.
 
Bei einem ordentlichen Hardware-RAID (mit eigener CPU) erzielt man besonders bei RAID-Leveln mit Parität (RAID5, RAID6) eine bessere Performance. Dafür kann es zu Problemen kommen, wenn der RAID-Controller kaputt geht und ersetzt werden muss. In diesem Fall benötigt man oftmals das gleiche Controller-Modell wie vorher eingebaut war. Je nach Hersteller muss der neue Controller zudem die gleiche Firmware einsetzen, wie der Alte. Das führt zu geringerer Unabhängigkeit, wie Orebor bereits angemerkt hat.
 
Last edited by a moderator:
Vorteil von einem Hardware-RAID-Controller (nicht die Fake-RAID-Dinger, die z.B. Intel in seine Chipsätze einbaut): Er ist betriebssystemunabhängig (sofern es für den Kontroller entsprechende Treiber gibt), was z.B. bei Dual-Boot-Systemen vor Vorteil ist - das RAID ist sowohl unter Windows als auch Linux nutzbar.
Die wichtigsten Punkte sind zusammengefasst:
Software-RAID:
+ kostengünstig (keine zus. Hardware notwendig)
+ hardwareunabhängig
- Betriebssystemabhängig
- nicht bei jedem System bootfähig
- belastet den Hauptprozessor

Hardware-RAID:
+ weitestgehen Betriebssystem unabhängig (Treiber!)
+ performanter
+ bootfähig
- mit zusätzlichen Kosten verbunden
- Bei Defekt des RAID-Controllers nur an baugleichen Kontrollern (bei einigen Herstellern aber auch an anderen des gleichen Herstellers) weiter nutzbar

Es kommt auch immer aufs Einsatzszenario an: Wenn das installierte System kein Software-RAID unterstützt (z.B. VMWare Hypervisor), dann geht nur Hardware-RAID
 
mich interessiert derzeit die Frage, wann ich ein Software-RAID gegenüber einem Hardware-RAID bevorzugen sollte.
Gar nicht. :)

Nein - das ist natürlich Quatsch. :) Im professionellen Hostingumfeld sollte allerdings meiner Meinung nach immer ein vernünftiges Hardware-RAID mit BBU zum Einsatz kommen. Ich persönlich bevorzuge Adaptec-Controller, da deren Bedienung recht intuitiv ist und sie (zumindest bei uns) bislang ohne Probleme laufen. Wir haben lediglich mal einen Controller per Firmware-Upgrade gegrillt, aber dann tauscht man ihn eben (geht bei den Adaptecs übrigens völlig problemlos).
 
Da muss ich Tim widersprechen :)

Also grundsätzlich ist ein Software RAID nicht schlecht. Es ist eine sehr günstige Alternative eine bestimmte Ausfallsicherheit zu erreichen. Wie The Busfreak aber schon sagte macht das bei größeren RAID Leveln also 5,6 keinen Sinn mehr, da es dann zu komplex wird und die Ressourcen des Servers selbst zu stark in Anspruch nimmt. Für ein RAID 1 ist das aber gleichermaßen nutzbar wie ein Hardware RAID.

Allgemein gelten folgende Punkte
Nachteile Software RAID:
- hohe Systembelastung wenn eine HDD defekt ist und ausgetauscht werden muss.
- größerer Installationsaufwand
- mehr administrativer Aufwand, da der RAID Verbund von Hand wiederhergestellt werden muss im Fehlerfall
- größeres Datenrisiko wenn z.B. eine HDD nur teilweise kaputt geht und der RAID Manager diese nicht aus den Verbund wirft. Hierbei können Schäden am Dateisystem entstehen.

Vorteile Software RAID:
- keine Kosten
- unter Umständen leichter zu retten im worse Case Fall.


Bei einem Hardware RAID musst du nicht zwangsweise die Premium RAID Controller mit BBU einsetzen. Für einen einfachen Hardware RAID Verbund reichen bereits Adaptec 6405E Hardware RAID Controller. Diese können bis zu 4 Festplatten im RAID 0,1 oder 10 Verbund betreiben. Kostenfaktor ca. 150 € netto. Wenn hier eine HDD defekt geht musst du im Optimalfall diese lediglich tauschen, der Controller erkennt die neue und fügt diese dann automatisch dem RAID Verbund hinzu und rebuilded diesen. Das klappt in 90 % der Fälle auch sehr gut, in 10 % der Fälle muss man über das RAID Bios die HDD dem Verbund zuweisen. Beim Rebuild wird lediglich die CPU des Controllers belastet.
 
- größeres Datenrisiko wenn z.B. eine HDD nur teilweise kaputt geht und der RAID Manager diese nicht aus den Verbund wirft. Hierbei können Schäden am Dateisystem entstehen.

Das kann dir aber auch mit einem Hardware-RAID-Controller passieren - habe ich vor ein paar Jahren mal bei einem DELL Server erlebt. Bis zum Neustart war alles OK, bei Neustart hat der Controller die defekte Platte wieder kannt und dabei das RAID erlegt. War dann ein außerplanmäßiger Restore-Test, weil der UPS-Mann mit der Ersatzplatte ein paar Minuten später in der Tür stand...
 
Das kann dir aber auch mit einem Hardware-RAID-Controller passieren - habe ich vor ein paar Jahren mal bei einem DELL Server erlebt. Bis zum Neustart war alles OK, bei Neustart hat der Controller die defekte Platte wieder kannt und dabei das RAID erlegt. War dann ein außerplanmäßiger Restore-Test, weil der UPS-Mann mit der Ersatzplatte ein paar Minuten später in der Tür stand...

Völlig richtig. Die Chance dass es passiert ist nur geringer, da der Controller weitere Werte prüft wie Aborted Commands oder Smart.
 
Da muss ich Tim widersprechen :)
Ich hab doch extra noch dazu geschrieben, dass das nicht ernst gemeint war... ;)

Wir betreuen auch viele (externe) Server mit Software-RAID und ich will das gar nicht grundsätzlich schlechtreden. Für mich gehört ein guter RAID-Controller trotzdem in ein professionell betriebenes Serversystem (Ausnahmen bestätigen die Regel), nicht zuletzt schätze ich auch den von Michael beschriebenen Komfort (Platte tauschen und den Rest macht der Controller) einfach sehr. Das relativiert auch ein bisschen die Kosten eines Controllers (wenn auch nur ein bisschen :)), da Arbeitszeit schließlich auch Geld kostet.
 
Wie verhält sich das mit SSDs, können die günstigen Controller mittlerweile TRIM?
Falls nicht, würde ich bei SSDs ein Softwareraid zu bevorzugen, mdraid kann das ja inzwischen.
 
Erstmal vielen Dank an alle! :)

Andere Frage.
Unter welcher Konstellation würde ihr ein SW-RAID einem HW-RAID vorziehen?
 
Kommt immer auf den einsatzzweck an. Mein Server daheim hat einen Adaptec 6405E drin, weil ich da vSphere Hypervisor drauf laufen habe - da geht es nicht anders.
Wenn du eine gute Festplattenperformace benötigst, bist du mit einem HW-RAID meist besser bedient, weil die oft auch noch zusätzlichen Cache drauf haben.
Als ich meinen Linux-Server daheim virtualisiert habe, fühlte er sich danach im Punkt HDD-Zugriffe deutlich besser an, also vorher per Software-RAID (bei den gleichen Festplatten wohlgemerkt).
 
Wenn du eine gute Festplattenperformace benötigst, bist du mit einem HW-RAID meist besser bedient...
Cloudflare behauptet genau das gegenteil. XD

Ich denke es kommt einfach auf den einzelfall / die applikation an. Pauschal lässt sich das offensichtlich nicht sagen.
Zumindest solange keiner einen Referenztest macht mit SW vs HW Raid auf gleicher Plattform. Mit den aspekten Geschwindigkeit und Systembelastung.
 
Last edited by a moderator:
Kennt jemand mal aktuelle(!) Tests zu dem Thema?
ZFS ist ja das beste Beispiel, wo ein Software-RAID (und etwas mehr) sinnvoll ist.
Eine aktuelle CPU sollte damit soweit klarkommen, dass durch das RAID nur wenige % CPU-Last draufkommen.
 
Die Performancefrage ist so eine Sache. :) Dass ich ein "Hardware-RAID-Fan" bin, hat man wohl schon aus meinen vorherigen Beiträgen herauslesen können. Nichtsdestotrotz sind mir bei einem guten RAID-Controller der Komfort, die Robustheit und die einfache Verwaltung im Allgemeinen wichtiger als der Performancezuwachs.

Bei einem RAID-5 ist ein Hardware-RAID mit möglichst großem Schreibcache definitiv performanter (Stichwort Write Penalty), bei einem RAID-10 läuft es zumindest unseren Tests nach aber ebenfalls schneller. Gerade ein RAID-5 beim Schreiben macht ein Software-RAID wenig(er) Spaß, da wäre es dann auch für mich wieder eine Performancefrage.

Was die Belastung der Host-CPU angeht, möchte ich noch darauf hinweisen, dass die Chips auf den RAID-Controllern speziell für ihre Aufgabe konzipiert werden und daher einen gewissen Vorteil haben. Bei Routern z.B. verhält es sich ja genauso - "richtige" Router sind wesentlich performanter als ein zum Router umgebautes Linux-System.

=> https://de.wikipedia.org/wiki/Anwendungsspezifische_integrierte_Schaltung

Nebenbei: Spätestens beim RAID-Rebuild nach einem HDD-Tausch möchte ich kein Software-RAID mehr nutzen. So gut, wie der Controller die Rebuild-Leistung der Last anpassen kann, kriegt es das Linux-Software-RAID definitiv nicht hin. :) Beim regelmäßigen Konsistenzcheck ist es genauso - den sieht man in keiner Weise auf den Munin-Graphen in Form von höherer Latenz oder gestiegenem iowait.
 
Ein paar konkrete Werte :) Das Problem ist, ich weiß nicht wie die unterschiedlichen Systeme ausgelastet sind und es ist natürlich bei unterschiedlicher Hardware schwer einen Vergleich zu finden. Ich hoffe aber, dass ich dir damit dennoch weiterhelfen kann was die Entscheidungsfindung angeht.



Software RAID 1 - Kingston HyperX 240 GB SSDs - Filesystem ZFS:


Hardware
Intel® Core™ i7-4930K
32 GB DDR3 1333
2x 240 GB

Zeit, die die Festplatte benötigen um eine 10 GB große Datei zu schreiben:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240
10240+0 Datensätze ein
10240+0 Datensätze aus
10737418240 Bytes (11 GB) kopiert, 17,1052 s, 628 MB/s

real    0m17.107s
user    0m0.004s
sys     0m5.256s

Zeit, die die Festplatten benötigen um die 10 GB große Datei zu lesen:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240 conv=sync
10240+0 Datensätze ein
10240+0 Datensätze aus
10737418240 Bytes (11 GB) kopiert, 16,2187 s, 662 MB/s

real    0m17.063s
user    0m0.000s
sys     0m6.468s


Software RAID 1 - 1 TB WD Red - Filesystem ext3:


Hardware
Intel Core i5-3470S
16 GB RAM
2x 1 TB WD Red

Zeit, die die Festplatte benötigen um eine 10 GB große Datei zu schreiben:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 112.674 s, 95.3 MB/s

real    1m52.710s
user    0m0.000s
sys     0m11.000s

Zeit, die die Festplatten benötigen um die 10 GB große Datei zu lesen:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240 conv=sync
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 111.797 s, 96.0 MB/s

real    1m53.299s
user    0m0.008s
sys     0m11.636s


Software RAID 1 - 1 TB WD Red - Filesystem ext3:


Hardware
Intel Xeon E3-1270v2
32 GB DDR3 1333
2x 1 TB WD Red

Zeit, die die Festplatte benötigen um eine 10 GB große Datei zu schreiben:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 105.015 s, 102 MB/s

real    1m45.032s
user    0m0.000s
sys     0m9.396s

Zeit, die die Festplatten benötigen um die 10 GB große Datei zu lesen:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240 conv=sync
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 95.7131 s, 112 MB/s

real    1m36.717s
user    0m0.000s
sys     0m11.260s


Hardware RAID 10 -4x 1 TB WD SE - Adaptec 6805E - Filesystem ext3:


Hardware
Intel Xeon E5-2620v2
64 GB DDR3-1333 ECC Reg
4x 1 TB WD SE
Adaptec 6805E


Zeit, die die Festplatte benötigen um eine 10 GB große Datei zu schreiben:

Code:
root@s41:~# time dd if=/dev/zero of=datei bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 24.055 s, 446 MB/s

real    0m24.057s
user    0m0.006s
sys     0m14.761s

Zeit, die die Festplatten benötigen um die 10 GB große Datei zu lesen:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240 conv=sync
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 22.7622 s, 472 MB/s

real    0m30.045s
user    0m0.006s
sys     0m16.881s


Hardware RAID 1 -2x 1 TB WD SE - Adaptec 6805E - Filesystem ext3:


Hardware
Intel Core i3-3220T
16 GB DDR3-1333 ECC
2x 1 TB WD SE
Adaptec 6805E


Zeit, die die Festplatte benötigen um eine 10 GB große Datei zu schreiben:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 66.8348 s, 161 MB/s

real    1m7.811s
user    0m0.013s
sys     0m11.575s

Zeit, die die Festplatten benötigen um die 10 GB große Datei zu lesen:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240 conv=sync
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 63.2435 s, 170 MB/s

real    1m4.299s
user    0m0.018s
sys     0m12.447s


Hardware RAID 10 -4x 128 GB Samsung pro 850 - Adaptec 6405E - Filesystem ext3:


Hardware
Intel Xeon E5-1650v2
64 GB RAM
4x 128 GB Samsung Pro 850
Adaptec 6405E


Zeit, die die Festplatte benötigen um eine 10 GB große Datei zu schreiben:

Code:
root@:~# time dd if=/dev/zero of=datei bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 10.3766 s, 1.0 GB/s

real    0m10.378s
user    0m0.000s
sys     0m7.312s

Zeit, die die Festplatten benötigen um die 10 GB große Datei zu lesen:

Code:
root@~# time dd if=/dev/zero of=datei bs=1M count=10240 conv=sync
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 12.8562 s, 835 MB/s

real    0m38.769s
user    0m0.008s
sys     0m10.288s
 
Langfristig betrachtet wird sich der Einsatz von Softwarereplikation meiner Ansicht nach durchsetzen. Wenn man Konzepte von bspw. HDFS etc. betrachtet, ist dies auch einleuchtend. Appliances von EMC oder andern Storageherstellern fahren schon Jahre lang kein Raid mehr.

Oft wird gesagt, dass Raid (oder Replikation) kein Backup sei und das ist auch korrekt. Aber wenn in naher Zukunft Datenmengen > xx PB zusammen kommen, muss man ohnehin die Frage stellen, wie sich solch eine Menge backupen lässt.
 
Oft wird gesagt, dass Raid (oder Replikation) kein Backup sei und das ist auch korrekt. Aber wenn in naher Zukunft Datenmengen > xx PB zusammen kommen, muss man ohnehin die Frage stellen, wie sich solch eine Menge backupen lässt.

Ich würde sagen man teilt das Ganze in Häppchen und sichert diese inkrementell auf einen anderen Server der die Gleiche Storage Kapazität aufweist. z.B. trennt man Imageserver von der Webseite, CRM Systeme vom Shopsystem ... Denn auch Clustersysteme sind keine Backups. Jedes System wo Veränderungen am Datenbestand unwiderruflich zu einer Löschung führen sind keine Backup Systeme.
 
Back
Top