Die Grundlagen der RAID-Technologie

© Nasir Khan, 123RF

Abgesichert

Wie funktioniert eigentlich ein RAID? Welches Level eignet sich für welchen Einsatzfall, und was kann man tun, um gerade bei großen RAID-Sets das Risiko eines Datenverlusts zu minimieren? Dieser Grundlagenartikel gibt die Antworten.
RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Wo wären wir heute ohne RAID? Man kann das erahnen, wenn man auf die Zeit schaut, als es nur große Einzelplatten für Mainframes gab (sogenannte SLEDs, Single Large Expensive Disks): Mitte der 50er bis Ende der 80er-Jahre des letzten Jahrhunderts. Vielleicht würden wir mit der heutigen Speicherdichte ein paar Dutzend Terabyte auf die damals üblichen großen Scheiben schreiben können, aber die Probleme, die es schon vor einem Vierteljahrhundert damit gab, wären nach wie vor akut.

Denn die großen Riesenplatten waren zwar recht zuverlässig, dafür aber extrem teuer, und ihre I/O-Leistungen blieben deutlich hinter den Fortschritten bei der CPU- und Memory-Performance zurück. Als es später kleinere und billigere Laufwerke für die damals neuen PCs gab, konnte man die zunächst nur in schlichten Sammlungen (JBOD, "just a bunch of disks") einsetzen oder einfach hintereinander schalten (disk spanning). Das schloss aber die Schere bei der I/O-Performance nicht und bescherte stattdessen große Verwaltungsprobleme, wenn es um das Management des freien Platzes oder das Auffinden einzelner Files ging.

Deshalb machten sich 1988 drei Forscher der University of California (David A. Patterson, Garth Gibson, und Randy H. Katz) Gedanken über ein alternatives Konzept. Ihre Ergebnisse [1] versprachen eine um wenigstens eine Größenordnung bessere Performance und Zuverlässigkeit bei geringeren Kosten dank des von ihnen entwickelten neuen Arrays aus billigen, kleinen Platten, dem RAID (Redundant Array of Inexpensive Disks).

RAID 0 und 1

Die ursprüngliche Veröffentlichung beschrieb die RAID-Level 1 bis 5. Heute kennt man außerdem noch die Level RAID 0 und 6 und einige weitere. Das RAID Level 0, das einfache Striping, kennt aber keine Redundanz und widerspricht daher eigentlich dem eigenen Namen RAID (Redundant Array …). Beim Striping werden die Daten in Abschnitte aufgeteilt (Stripes), die wechselweise auf die beteiligten Platten geschrieben werden. So kann man im besten Fall auf alle Platten parallel zugreifen. Die Größe der Abschnitte (Chunk Size) ist konfigurierbar und steht in Beziehung zur vorherrschenden Dateigröße. Eine große Chunk Size bei kleinen Dateien würde eine geringere Verteilung über die Platten bewirken, damit auch weniger von der Parallelität der Zugriffe profitieren, dafür unter Umständen aber die Datensicherheit etwas erhöhen, weil jede verteilte Datei rettungslos verloren ist, sobald eine der beteiligten Platten ausfällt. Passt sie dagegen komplett in einen Stripe auf einer Platte, ist sie sicher, wenn eine andere Platte ausfällt. Wegen der Anfälligkeit für Datenverlust eignet sich reines Striping auch nur für Daten, auf die man notfalls verzichten könnte: Es bietet gute Perfomance auf Kosten der Sicherheit.

Sicher und teuer

Das Raid Level 1 steht für eine Spiegelung (Mirroring): Alle Daten werden parallel auf zwei Laufwerke geschrieben. Fällt eine Platte aus, kann mit der anderen ohne Verzögerung und Datenverlust weitergearbeitet werden. Unter der Voraussetzung, dass die beiden Spiegelhälften an verschiedene Kanäle des RAID-Controllers angeschlossen sind, kann sich die Lesegeschwindigkeit im Idealfall verdoppeln, das Schreiben ist höchstens so schnell wie auf eine einzelne Platte. Der größte Nachteil der Spiegelung besteht aber darin, dass sich die Kosten der Datenhaltung verdoppeln: Zum Preis von zwei Platten erhält man die Kapazität von einer. Damit eignet sich eine einfache Spiegelung vor allem für besonders schutzwürdige Daten, die hauptsächlich gelesen werden.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023