Mehr Ausfallsicherheit

Eine einfache Möglichkeit, die Ausfallsicherheit zu erhöhen, besteht im Spiegeln von Festplatten – RAID-1 genannt (siehe Kasten "Mirroring"). Eine ebenfalls gegen Datenverluste schützende RAID-Variante, RAID-5, benötigt mindestens drei Festplatten: Infolge dessen steigen die Kosten für Hardware. Aufgrund der niedrigen Preise für Speichermedien gehen drei Festplatten zu 500 GByte heute allerdings schon für unter 150 Euro über den Ladentisch. Die effektive Speicherkapazität errechnet sich nach der Formel: (Anzahl der Festplatten – 1) * (Größe der kleinsten Festplatte). Im Fall von drei Platten zu 500 GByte erhalten Sie insgesamt eine Kapazität von 1 TByte.

Zwar gehen bei RAID-5 (einfache Parität) durch den Defekt einer einzelnen Platte des Verbunds keine Daten verloren. Zudem lassen sich die auf der kaputten Platte gelagerten Daten auf ein Ersatzlaufwerk wiederherstellen. Fällt allerdings vor der Rekonstruktion ein weiteres Laufwerk aus, gehen alle auf dem Array gespeicherten Daten komplett verloren – hier gilt es also schnell zu handeln und für einen Ersatz der defekten Platte zu sorgen.

RAID-6 erhöht die Redundanz und Datensicherheit durch doppelte Parität nochmals: Der Defekt einer Platte bringt das System noch nicht ins Wanken, erst der Ausfall einer zweiten Disk versetzt das Array in einen unsicheren Zustand. RAID-6 benötigt mindestens vier Festplatten und fällt daher verhältnismäßig teuer aus – nicht zuletzt, da es die Kapazität zweier Platten für das Speichern der Paritätsdaten abzweigt.

Ähnlich wie beim Software-RAID unter Linux erlaubt ZFS RAID-Z und RAID-Z2, die ähnlich funktionieren wie RAID-5 beziehungsweise RAID-6. Sie arbeiten allerdings alle Schreibvorgänge so ab, dass Daten und Prüfsummen in einem Durchgang auf der Platte landen und daher das Dateisystem auch bei einem Stromausfall konsistent bleibt. Ein klarer Vorteil liegt im Verzicht auf einen teuren Hardware-RAID-Controller. Single- oder Dual-Core-CPUs kosten einen Bruchteil eines solchen Controllers und bringen heute genug Leistung mit, um dessen Aufgaben mit zu übernehmen.

Mirroring

Das Spiegeln von zwei Festplatten entspricht dem RAID-Level 1. Das System legt beim Schreiben die Daten stets auf beiden Platten ab, wodurch volle Redundanz entsteht. Der Ausfall eines Datenträgers zieht also keinen Datenverlust mit sich. Eine optionale Hot-Spare-Platte ersetzt im Falle eines Defekts das kaputte Laufwerk.

RAID einsetzen

Das folgende Beispiel demonstriert ein RAID-Z mit drei (virtuellen) Festplatten – RAID-Z2 funktioniert analog. Das Schlüsselwort lautet dabei »raidz2« statt »raidz« . Einen Pool mit RAID-Funktionalität erstellt die Befehlsfolge aus Listing 2

Listing 2

RAID-Platten anlegen

 

Allerdings erlaubt es ZFS es nicht ohne weiteres, den Speicherplatz in einem vorhandenen RAID-Z(2) zu erhöhen: So dürfen Sie beispielsweise keine neuen Platten zum RAID-Pool hinzufügen. Mit einem kleinen Trick umgehen Sie jedoch sich diese Beschränkung. Dazu ersetzen Sie, wie in Listing 3 zu sehen, die bereits vorhandenen Festplatten einfach durch drei größere.

Listing 3

Platten ersetzen

 

Alternativ erhöhen Sie nachträglich die Kapazität des Arrays, indem Sie Mirror- oder RAID-Z-Pools zum schon vorhandenen Pool »rpool« hinzuzufügen (Listing 4). Das ist insbesondere dann sinnvoll, wenn die neuen Festplatten dieselbe Größe haben wie die schon vorhandenen. RAID-Z wäre dem Mirror jedoch wegen der Ausfallsicherheit vorzuziehen, außer es stehen nur zwei Platten bereit.

Listing 4

Platten zum Pool hinzufügen

 

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
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 /2021