PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RAID 5, RAID 1+0, RAID 10 oder sogar RAID 1+0 mit Hotspare bei vier Laufwerken?



Qeldroma
18.06.07, 12:33
Hallo zusammen,

wir setzen einen Rechner mit vier SATA-Platten und Software-RAID neu auf, der ein Nagios/MRTG-System beheimaten wird, also ein System in welchem sehr häufig kleine Datenmengen geschrieben und gelesen werden.

Ich vermute, daß bei dieser Konstellation ein RAID 5 nicht so schlau ist, weil immer auf allen Festplatten an verschiedenen Stellen geschrieben werden muß und das in wie gesagt sehr kleinen Mengen(Paritätsberechnungsoverhead als Nachteil).

Daher werde ich wohl RAID 10 oder 1+0 einsetzen. Aber welches?

Bei RAID 1+0 gefällt mir die Möglichkeit mit nur drei Festplatten dieses aufzubauen und dafür eine Platte als Hotspare bereit zu haben. Aber das klingt dann schon wieder ähnlich wie ein RAID 5, also mit dem Problem gleichzeitig auf verschiedene Art auf drei Platten zu arbeiten(korrigiert mich, fals ich daneben liege).

RAID 10 ist wohl die performanteste Lösung, auch wenn ich 1/6 weniger Plattenkapazität habe, als beim RAID 5. Da alle Platten gleichzeitig die gleiche Arbeit durchführen, können sich hier wohl die Prozesse am wenigsten gegenseitig ausbremsen im Gegensatz zu RAID 5 oder RAID 1+0?

Wie würdet Ihr entscheiden? Und vor allem: WARUM??

Grüße, Florian

marce
18.06.07, 12:38
(1) RAID 1+0 = RAID 10
(2) Wie kommst Du auf die Berechnung der Kapazität?
(3) Egal bei welchem Raid - es wird bei fast jedem immer überall geschrieben.

-> Was willst Du haben und welche Vorraussetzungen (HW, ...) hast Du?

Qeldroma
18.06.07, 13:20
(1) RAID 1+0 = RAID 10
Falsch. Sorry für die Direktheit ;)
Siehe z.B.
http://de.wikipedia.org/wiki/RAID#RAID_0.2B1
http://de.wikipedia.org/wiki/RAID#RAID-10-Verbund

(2) Wie kommst Du auf die Berechnung der Kapazität?
Stimmt, kleiner Denkfehler, es sind 75%, nicht 66% beim 5er:
RAID5: 75% der Gesammten
RAID 1+0/10: 50% der Gesammten
66% - 50% = 25% Differenz

(3) Egal bei welchem Raid - es wird bei fast jedem immer überall geschrieben.
Das ist klar, jedoch müssen bei den 1,0ern nicht Paritäten berechnet und weggeschrieben werden, was somit einen zusätzlichen Schreib- und Rechenvorgang pro Datenänderung einspart. Außerdem ist der Vorgang dann auf allen angeschlossenen Platten der gleiche (weil exakt gleiche Datenänderung), weshalb es bei gleichen Herstellern und Größen auch am effizientesten sein dürfte, so meine Vermutung..?

-> Was willst Du haben und welche Vorraussetzungen (HW, ...) hast Du?
Hardware ist neu, Quadcore+4x500GB-SATA Seagate+1GB RAM. Es wird ein vorhandener Rechner mit Gentoo migriert.

Platzmäßig langt ein Terra dicke, weshalb ich auch mit RAID 10 oder RAID 1+0 zufrieden wäre..

Wichtig ist wie gesagt das das Linux-Software-RAID anschließend den Ausfall einer Platte verkraftet UND mit vielen kleinen geschriebenen Datenmengen performant klar kommt...

Grüße, Florian

marce
18.06.07, 13:23
Falsch. Sorry für die Direktheit ;)
Siehe z.B.
http://de.wikipedia.org/wiki/RAID#RAID_0.2B1
http://de.wikipedia.org/wiki/RAID#RAID-10-Verbund

Genau:
RAID 1+0 = RAID 10
RAID 0+1 != RAID 1+0

Du bist dran. :-)

Qeldroma
18.06.07, 13:29
Oh ja, ok.

1+0 ... 0+1... 0+1 ist gemeint, wenn ich ein "Plus" verwende. Nun da wir die Kommunikation geeicht haben, was ist mit meinen Fragen?

;)

HEMIcuda
18.06.07, 13:34
Ich vermute, daß bei dieser Konstellation ein RAID 5 nicht so schlau ist, weil immer auf allen Festplatten an verschiedenen Stellen geschrieben werden muß und das in wie gesagt sehr kleinen Mengen(Paritätsberechnungsoverhead als Nachteil).

Watt?

'cuda

marce
18.06.07, 13:58
Ok...

0+1 mit drei Platten würde ich nicht machen - ist m.M.n. eine Bastellösung
0+1 / 1+0 mit vier Platten ist aus meiner Sicht würfeln, was man lieber hat.

5 mit Hotspare ist die sichere Lösung - beim konkreten Anwendungsfall sehe ich auch kein Durchsatz-Problem.

Im Endeffekt ist es glaube ich fast egal - den geringsten Last-Overhead hast Du mit 10 / 01, die größte Ausfallsicherheit wohl mit einem 5+Hotspare...

$kuLL
18.06.07, 14:17
Bei 4 Platten hast du mit RAID 6 die größte Ausfallsicherheit, aber auch die schlechteste Performance. Weiterhin sollte auf den Einsatz eines LVM über dem MD Layer verzichtet werden, sonst gibt es nochmals Performance-Einbußen. Um die Flexibilität nicht ganz zu verlieren, verwende stattdessen das aktuellste mdadm und einen 2.6.21er Kernel, um Features wie das Growing von RAID 5/6 zu nutzen.

Über Tuning der md Devices, wie z.B. stripe_cache_size und max_sectors_kb, kannst du auch noch etwas mehr Speed rausholen. Mehr dazu liest du am besten in der linux-raid Mailingliste.

Verwende auch ein schnelles Filesystem. XFS oder ReiserFS bieteten sich hier an, auch bzgl. der online Kapazitätserweiterung. Ich würde aber die Finger von RAID 5 lassen, wenn du wirklich Geschwindigkeit brauchst. Eine Kombination aus RAID 0 und 1 ist hier angebracht. Welche, ist imho egal :)

bla!zilla
18.06.07, 15:39
Um mal etwas Licht in die Dunkelheit zu bringen:

Die pauschale Aussage "RAID 5 ist langsamer als RAID 1+0 / 0+1" ist erstmal so nicht korrekt. Es kommt auf viel mehr Dinge an:

- konkrete Anwendung
- I/O Verhalten der Anwendung
- Dateisystem
- Chunksize
- Anzahl der Platten

Wenn ich von einem 4 Platten RAID 1+0 / 0+1 lese, lese ich (sofern der Controller clever ist) von 4 Platten. Wenn ich schreibe, habe ich aber nur die effektive Performance von zwei Platten. Bei einem vier Platten RAID 5 lese ich effektiv mit der Performance von 3 Platten. Beim Schreiben auch, dazu kommt die Write-Penalty. Nun stellt sich aber noch die Frage: Short oder Long Write. ;) Werden Die Chunks A, B und C geändert, kann der Controller die auf einmal runterschreiben und den Parityblock direkt mit. Ein logischer Write I/O endet also in vier physikalischen Write I/Os. Bei einem Short Write, wird nur einer der drei Blöcke geändert. In dem Fall muss er den zu ändernden Block lesen, den Parityblock, den neuen Block schreiben und den Parityblock berechnen und schreiben. Ein logischer Write I/O endet also physikalisch in zwei Read I/Os und zwei Write I/Os. Ein cleverer Controller kann die beiden Read I/Os vielleicht noch verhindern. Bei RAID 6 wird das noch schlimmer! Dazu kommt der verlust einer weiteren Platte, was sich auch beim Lesen auswirkt.

0+1 oder 1+0 funktionieren auch nur mit einer geraden Anzahl von Platten. Sollte ein Controller das mit einer ungeraden Anzahl platten unterstützen - Finger weg.

Aber auch zwischen 1+0 und 0+1 gibt es kleine, aber feine Unterschiede. Bei einem RAID 1+0 muss ich beim Ausfall einer Platte nur einen Mirror wiederherstellen, also nur eine Platte. Bei einem RAID 0+1 beschäftige ich die Hälfte meiner Platten mit der Wiederherstellung. RAID 5 oder 6 mit einem Plattenausfall ist auch eine Katastrope, gerade beim Lesen, da die fehlenden Daten on-the-fly mittels XOR aus den beiden vorhandenen Chunks und dem Parityblock wiederhergestellt werden müssen. IMHO macht ein RAID 5 daher nur mit einer Hotspare Sinn. Dann habe ich schnell wieder meine gewünschte Performance.

Eine pauschale Aussage gibt es also nicht. Lösung: Testen, testen, testen.

Qeldroma
18.06.07, 17:48
Ok. Nun meine daraus folgenden Gedanken:

Das klingt jetzt für mich so, als ob ich mich zwischen RAID 1+0 und RAID 5 entscheiden sollte.
Für ersteres spricht der geringste Overhead, für zweiteres die Möglichkeit ein RAID 5 mit drei Platten plus Hotspare aufzubauen, ich habe also schon "Ersatz" parat.

IMHO habe ich sehr viele kleinste Schreibzugriffe und wenig Lesezugriffe. Das spricht wohl eher gegen das RAID 5, wenn auch dies nicht ganz so dramatisch sein soll wie ich vermutete...

Der Knackpunkt werden also diese Zugriffe sein:
Nun, was passiert auf der Platte?
- Nagios schreibt regelmäßig ca. 20 - 400 Byte große Daten in RRD-Datenbanken weg. Diese sind jedoch fix in der Größe, d.h. die Daten werden nur verändert.
- Desweiteren schreibt Nagios diese Informationen anhängend in mehrere Dateien weg. das entspricht dann ungefähr dem Vorgang eines gut frequentierten Log-Files...

Habe ich damit nun eine Belastung, die für ein RAID 5 "unglücklich" ist? Oder kann ich das mit Chunk-Größen, etc. so weit optimieren, daß ich in der Performance auf jeden Fall über einer einzelnen Platte liegen werde? Ich glaube ja...

Wie hoch ist dadurch der CPU-Impact? Wird das spürbar die CPU belasten? Im Rebuild-Falle: Logisch. Aber im Alltagsbetrieb?

Grüße und Danke, Florian

bla!zilla
18.06.07, 19:04
Ich glaube nicht das Nagios, oder der Server allgemein die vier Platten soweit belastet, das RAID 5 unglücklich wäre. Du musst dich erstmal fragen: Wieviele IOPS habe ich denn? Wenn du eine Anforderung von 1000 IOPS an dein Plattensystem hast, dann sind vier Platten sehr, sehr witzlos. Dann brauchst du dir auch keine Gedanken machen ob RAID 1+0 oder 5. ;)

BedriddenTech
19.06.07, 01:46
Darf ich mal die ganz blöde Frage einwerfen, warum der TE eigentlich nicht auch mit einem Mirror Raid zufrieden wäre? Ich kann mir nicht vorstellen, daß Nagios derart viel Arbeit erzeugt, daß man mit RAID-Trickserei die Geschwindigkeit erhöhen müßte.

bla!zilla
19.06.07, 16:04
Ich sagte ja bereits: Was für Anforderungen stellt der TE an das I/O System?

Qeldroma
19.06.07, 17:52
Ich sagte ja bereits: Was für Anforderungen stellt der TE an das I/O System?

Ich weiß nicht, was "TE" sein soll :ugly:, aber die Anforderungen definiere ich sozusagen selbst als einziger Admin...

Ich würde eine Platte maximal ausfallen lassen wollen, wobei danach dann immer noch der Betrieb des sehr prozesslastigen Nagios erhalten bleiben muß.

Da ich aber (hoffentlcih) davon ausgehen kann, daß ein RAID5-Rebuild immer noch genug Schreib-Geschwindigkeit haben sollte, um die Zugriffe zu bedienen, könnte ich sogar ein RAID 5 über alle Platten machen...

Naja, wie ihr seht schwimme ich da sehr, da irgendwie keine der Varianten die "optimale" Lösung ist.

Villeicht sollte ich erstmal herausfinden, wieviel Performance ein RAID 5 noch hat, wenn es eine von vier Platten neu aufbauen muß? Wenn das immer noch reichen sollte, spricht ja da nichts mehr dagegen, zumal ich damit die maximale Ausbeute an Kapazität bei hoher Sicherheit habe...

Ich danke euch für euren Input, ihr habt mir auf jeden Fall geholfen, die richtigen Blickwinkel zu erkennen und das Thema neu zu betrachten.

Grüße, Florian

BedriddenTech
19.06.07, 17:55
TE heißt "ThemenErsteller".

Du hast eine sehr wichtige Frage nicht beantwortet: Wieviele IOPS produziert dein Nagios denn? Ich kann mir immer noch nicht vorstellen, daß ein 2-Platten-Spiegel-RAID da Einbußen bringen würde. Aber ohne Angaben zum Datenverkehr, den du protokollierst, usw., läßt sich das schwer sagen.

Qeldroma
19.06.07, 18:02
IOPS?
Ich bin zwar schon lange Admin, aber heute lerne ich ein Wort um's andere hinzu?!

IO-oPerationS?

Sag mir, was ihr wie gemessen haben wollt und ich tue es ;)

GRüße, Florian

$kuLL
19.06.07, 18:24
Ich kann mir immer noch nicht vorstellen, daß ein 2-Platten-Spiegel-RAID da Einbußen bringen würde.
Das tut es auch nicht. Im Gegenteil, es ist von der Performance her geeigneter als RAID 5. Gerade auch im degraded Mode, sprich wenn eine Platte ausgefallen ist. Der einzige Nachteil sind nur die konstanten 50% Kapazitätsverlust.

bla!zilla
19.06.07, 19:02
IOPS?
Ich bin zwar schon lange Admin, aber heute lerne ich ein Wort um's andere hinzu?!

IO-oPerationS?

I/Os per Second.



Sag mir, was ihr wie gemessen haben wollt und ich tue es ;)



Da bietet sich Bonnie++ an.

Qeldroma
20.06.07, 10:56
Ok, aber mit bonnie messe ich ja die Fähigkeiten eines Systems, nicht die tatsächliche Auslastung, oder?

Ich logge jetzt mal einen halben Tag lang die /proc/diskstats und werte das mal aus. Dann kann ich konkrete Nutzlast-Zahlen liefern...

Dann melde ich wieder...

marce
20.06.07, 10:58
Anders gefragt: wieviele Systeme / Services monitorst Du denn mit Nagios?

psych
20.06.07, 12:14
Ich würde ein Raid 10 mit vier Platten nehmen und zwar aus folgenden Gründen:

Die Schreib Performance ist höher als beim Raid 5.
Die Lese/Schreib Perfomance beim Ausfall einer Platte ist höher.
Die Prozessor Last bei hohem I/O ist deutlich geringer.

Gruß
Psych

Qeldroma
21.06.07, 10:20
Anders gefragt: wieviele Systeme / Services monitorst Du denn mit Nagios?
Über 1000 Dienste. Davon ein viertel minütlich.

Außerdem halten wir zu allen Diensten die Charts/RRDs vor, was ein nicht unwesentlicher Teil der Auslastung ist ;)

@Psych: Danke, so sehe ich das inzwischen auch, nur habe ich das noch nicht so klar auf den Punkt gebracht ;)

Wir sind inzwischen so weit, daß wir zwei Maschinen kaufen werden, beide mit vier Platten und dem angesprochenen RAID 10.

Diese werden dann per DRBD/Heartbeat ge'sync't...

Das sollte redundant/performant genug sein für die nächsten 3 Jahre (hoffe ich :eek: )

Grüße, Florian

bla!zilla
21.06.07, 18:50
1000, davon 250 jede Minute. Na ja, ich glaube irgendwie nicht das diese Konfiguration auch nur eine Platte zum schwitzen bringt. Sind halt viele kleine I/Os, also nicht wenig MB/s.

Qeldroma
22.06.07, 10:00
@bla!zilla: Sagenw ir mal so, wir wollen keine IOWAIT mehr ;)

Haben uns nochmal reduziert auf jeweils RAID0 und dann DRBD oben drauf, sollte reichen. Und statt Quad reicht sicherlich auch ein Dual...

Ich teste mich jetzt erstmal durch DRBD/Heartbeat durch....

Grüße, Florian

Qeldroma
22.06.07, 11:36
Ich denke, dies ist jetzt [SOLVED]

Zu drbd habe ich eine neue Frage eröffnet ;)

Grüße und nochmal vielmals Danke, Florian