RAID50 vs. RAID10
Hallo Kollegen,
das Thema RAID ist wohl ein niemals endendes. Gerade jetzt, da in Zeiten vortgeschrittener Virtualisierungstechnik auch die Storage-Strategie angepasst werden muss und damit größere SAN-Systeme auch in kleines und mittleres Gewerbe Einzug erhalten, stellen viele Admins neue Überlegungen über ihren jeweils optimalen RAID-Verbund an. Im Unterschied zu früher sind die Arrays jetzt viel größer, dazu kommt die Problematik der schnellen Daten-Übertragung über das Netzwerk. Auf das Prinzip von dedizierten Storage-Netzwerken und parallelen Daten-Pfaden werden wir ein anderes mal eingehen.
Die Auswahl des RAID-Setups ist schon der erste magische Punkt, der sorgfältig vorbereitet werden sollte, weil nachträgliche Änderungen nur schwer möglich sind. Viele Storage-Systeme verfügen zwar über eine Funktion bestimmte RAID-Level in andere zu überführen, ohne dabei Datenbestände oder den Betrieb zu verlieren, in der Praxis ist jedoch oft die benötigte Kombinationnicht möglich oder die Live-Migration würde über Tage das gesamte System deutlich belasten, so, dass der tägliche Betrieb beeinträchtigt werden könnte. Die Auswahl des RAID-Levels sollte daher auf soliden Überlegungen beruhen.
Aber wie lässt sich von einer schwer voraussagbaren Anforderungen der eigenen Systeme auf das richtige RAID-Setup schließen?
Im Groben ist das ganz einfach:
Man untersucht die Anforderungen an Performance- und Platzbedarf und zirkelt dann mit Hilfe der folgenden und vermutlich jedermann halbwegs geläufigen Tabelle der wichtigsten RAID-Level, eine Entscheidung herbei.
RAID 0 | RAID 1 | RAID 5 | RAID 10 | RAID 50 | |
Prinzip | Stripes über 2 PLatten | Ein Platte gespiegelt | Verteilte Parität | Stripes über n Platten, gespiegelt | Stripes über n RAID5 |
Mindest Anz. Platten | 2 | 2 | 3 | 4 | 6 |
Datensicherheit | keine | 1 Ausfall | 1 Ausfall | 1 Ausfall pro Subarray | 1 Ausfall pro Subarray |
Kapazität | 100% | 50% | 67% – 94% | 50% | 67% – 94% |
Performance | schnell schreiben | schnell lesen | mittel | schnell | schnell bei großen Datenmengen |
Rebuild Performance | – | gut | mittel | sehr gut | mittel |
Vorteil | 100% Kapazität / Performance | Datensicherheit / Schreib-Performance | Datensicherheit /hohe Kapazität | Skalierbarkeit / Performance | Skalierbarkeit / Kapazität |
Große RAID-Setups
Das hat bisweilen ganz gut funktioniert in Zeiten der „Baremetal-Rechner“, die nur sich selbst mit Storage versorgen mussten. Gilt es jedoch beispielsweise einen VM-Ware-Cluster mit drei ESX-Servern und insgesamt 50 virtuellen Rechnern zu bedienen, dann ist diese Informationsbasis zu dürftig.
Wir nehmen hier vorweg, dass wir schnell zu dem Schluss gekommen sind, die RAID-Level 10 und 50 genauer zu untersuchen, da sie als einzige gleichzeitig hohe Performance, Ausfallsicherheit und Skalierbarkeit mitbringen.
Performance ist nicht gleich Performance
Storage-Performance nicht so einfach messen und durch einfache Zahlenangaben charakterisieren. In der Regel wird einfach eine mittelgroße Datenmenge sequenziell auf den zu testenden Store geschrieben bzw. gelesen. Das lässt sich zumeist recht einfach umsetzen und das Ergebnis sind dann Zahlen wie z.B. 73MB/s schreiben etc. . Werden beispielsweise große zusammenhängende Datenmengen bewegt, ist das schon einmal eine hilfreiche Information. Andere Fragen bleiben jedoch zunächst unbeantwortet. Welche Eigenschaften eines Storage-System lassen z.B.einen Windows Domain-Controller in Windeseile booten oder helfen eine relationale Datenbank zu beschleunigen? Ausschlaggebend dafür ist ein schwer zu messendes Kriterium, namens Transaktionen pro Sekunde (tps). Also die Anzahl der Schreib- bzw Lese-Zugriffe pro Zeiteinheit. Die tps eines Systems lassen sich nur durch ausgeklügelte Benchmarks ermitteln, da dazu ein Testumgebung nötig ist, die parallel extrem viele kleine und kleinste I/O-Requests starten kann. Der für das durchschnittliche Serversystem „natürlichen“ I/O-Last kommt das jedoch erheblich näher, als die übliche Lese- und Schreibrate sequenzieller Daten.
Geeignete Benchmarks lassen sich z.B. in der Opensource-Welt finden. Wir verwenden ein freies Tool namens FIO u.a. zur Ermittlung der TPS-Werte. Mit einem anderen Programm namens Bonni haben wir gute Erfahrungen auf kleineren Storage-Systemen gemacht. Für Tests an besonders schnellen Systeme, z.B. wenn SSD-Platten z.B. für Caches verwendet werden, mussten wir auf FIO umsatteln. Die genaue Funktionsweise von Benchmarkprogrammen, sowie die Interpretation der Resultate werden wir in einem eigenen Blogartikel genauer besprechen.
Welche Kriterien sind entscheidend für hohe TPS-Werte?
- Die Anzahl der verwendeten Festplatten.
Je mehr Festplatten (auch Spindeln genannt) gleichzeitig arbeiten, desto mehr Arbeit kann logischerweise auch verrichtet werden. Das trifft insbesondere auf TPS zu, da eine herkömmliche Festplatte bauartbedingt einige Zeit benötigt, um den Lesekopf neu zu positionieren. Bei vielen kleinen Zugriffen an „unterscheidlichen“ Stellen auf der Platte, entstehen so viele kleine Lese-Pausen, während sich der Kopf zum nächsten Ziel bewegt. - Das RAID-Setup.
Am RAID-Level hängt ab, welche Arbeit der Controller verrichten wird und in welcher Weise Festplatten parallel arbeiten können. Logisch betrachtet sind in einem RAID 50 Verbund an einem Schreibzugriff mehr Platten aktiv beteiligt, als z.B. in einem RAID10. Beim Letzteren sollte daraus einen Performace-Gewinn resultieren. - Performance und Drehgeschwindigkeit der eingesetzten Festplatten.
Je schneller sich die Datenscheibe der Festplatte dreht, desto weniger Zeit vergeht bis sich die „gesuchten Daten“ unter dem Lesekopf befinden. Insbesondere nach Repositionierungen des Kopfes muss dabei gewartet werden.
In der Praxis
Soweit die Theorie. Jetzt möchten wir wissen ob wir für unser VMWaren-Cluster besser RAID10 oder RAID50 einsetzten sollen und wie wir die Performance verbessern können.
Setup
- VM-Ware-Cluster mit drei ESX-Servern (je 96GB RAM) und insgesamt 50 virtuellen Rechnern
- Dell Equallogic PS4000 mit 12 Festplatten je 15.000 rpm
- Dell Equallogic PS4000 mit 16 Festplatten je 7.200 rpm
- Eine Linux-VM mit FIO-Benchmark Software.
Ergebisse (Ausschnitt)
EQL1 (10×15.000rpm) | EQL2 (14x7200rpm) | ||
RAID 10 | RAID 10 | RAID 50 | |
Lesen-TPS 4KB | 2161 tps | 1406 tps | 1390 tps |
Lesen / Schreiben – TPS 4KB | 1360 tps | 800 tps | 595 tps |
Im direkten Vergleich auf EQL2 stehen sich RAID10 und RAID50 auf der selben Hardware gegenüber.
Außerdem werden zwei RAID10 Setups auf sehr ähnlicher Hardware, jedoch mit unterschiedlichen Ferstplattenbestückungen gegenüber gestellt.
Fazit:
Erwartungsgemäß ist RAID10 als das „teuerste“ RAID auch bei TPS am schnellsten. Allerdings ist der Vorsprung nicht sehr groß (zwischen 5% und 25% schneller als RAID50) und es gibt eine weitere Überraschung.
Die Bauart der Festplatten, insbesondere die Drehgeschwindigkeit, scheint auch in großen Verbünden maßgeblichen für die Leistung am Ende des Tages ausschlaggebend zu sein. Unseren Ergebnissen zufolge, ist die Annahme naheliegend, dass eine Verdoppelung der Drehgeschwindigkeit auch in etwa die Anzahl der Transaktionen verdoppelt. (Wenn man die Anzahl der Festplatten hochrechnet und Unterschiede in der übrigen Hardware vernachlässigt).
RAID 10 | RAID 50 | ||
Vorteile | Beste TPS-Werte, schnelles Rebuild, wenig Performanceverlust bei degradeten Arrays, etwas bessere Redundanz | Beste Nutzung der Speicherkapazität (preisgünstiger), Ordentliche TPS-Werte, kleiner Vorteil beim lesen großen Datenmengen | |
Nachteile | Nur 50% der Speicher-Kapazität nutzbar (teurer) | Performanceverlust bei degradeten Arrays und während des Rebuilds, etwas weniger Redundanz | |
Einsatzzweck | Schnelle Datenbanken, Storage für (virtuelle und physische) Systeme mit maximalen Leistungsanforderungen | Große Datenbanken, Storage für (virtuelle und physische) Rechnersysteme mit normalen Anforderungen, Backup, Fileserver |
Aufgrund dieser Messergebnisse haben wir uns entschieden, zwei unterschiedliche Storage-Systeme für unser VMWare-Cluster zu betreiben. Ein Storagesystem mit viel Speicherkapazität auf Basis normal-schneller Platten und RAID50 und dazu ein etwas kleineres System mit RAID10 und schnellen Platten. So können wir jede virtuelle Maschine und alle anderen Systeme mit Speicherplatz-Bedarf, nach Anforderung sortiert auf den jeweils individuell passenden Storage umziehen.
Hannes Wilhelm
WorNet AG 2012
Quellen: