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.

IT bleibt spannend!

Hannes Wilhelm
WorNet AG 2012

 

Quellen:

2 Gedanken zu „RAID50 vs. RAID10

  1. Pingback: Storage Benchmarking mit fio | Vernetzte Welt Cast

  2. Pingback: Deduplizierender Storage mit dem ZFS-Filesystem | Vernetzte Welt Cast

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s