Software RAID MDADM

raid-featured

MDADM (multiple disk administration) steht unter der GNU General Public License (GPL) frei zur Verfügung und dient unter Linux zum Verwalten von Software-RAIDs. Es können damit RAID-Verbünde erstellt, konfiguriert, überwacht und gelöscht werden.

Mit dem Programm lassen sich multiple devices (MD) auf verschiedenen Block-Devices wie Festplatten, Partitionen oder USB-Sticks erstellen. Die damit erstellten RAIDS sind Hardware unabhängig und die Datensicherheit wird dadurch stark erhöht.

Installation mdadm

Sofern Sie das Programm mdadm auf Ihrem Linux-System noch nicht installiert haben, können Sie das Paket aus den Repositories installieren. Verwenden Sie dafür folgenden Befehl auf einer Linux-Konsole (Sie benötigen standardmäßig root-Rechte):

apt-get install mdadm

RAID - Erklärung

Mehrere physikalische Festplatten können mit einem RAID (Redundant Array of Independent Disks) zu einem oder mehreren logischen Laufwerken vereint werden. Damit können Sie einen schnelleren Datenzugriff und / oder auch eine erhöhte Verfügbarkeit des Systems erreichen. Es gibt Hardware-RAID-Controller, FakeRAID-Controller und Software-RAIDs. Hardware-RAID-Controller haben zwar im Gegensatz zu den anderen beiden Varianten einen batteriegepufferten Cache, der bei einem Stromausfall dafür sorgen kann, dass keine Daten verloren gehen. Aber dafür sind sie recht teuer. Für FakeRAID-Controller (z.B. Onboard-RAID-Controller) benötigen Sie bestimmte Kernelmodule / Treiber, die auch nur für bestimmte Kernelversionen zur Verfügung stehen. Unter Linux wird bei einem Stromausfall versucht, mit einem Journal den Datenverlust zu verhindern. Daher sind Software-RAIDS eine gute alternative, wenn Sie mit RAIDS arbeiten möchten.

Wenn Sie mit mdadm ein Software-RAID erstellen möchten, sollten Sie darauf achten, dass die Partitionen dafür auf verschiedenen Festplatten gleich groß sind.

Wichtig ist, dass Sie wissen, dass ein RAID niemals eine Datensicherung ersetzt. Es erhöht lediglich die Datensicherheit bei einem Festplattendefekt. Bei Datenverlust durch z.B. eines Fehlers im Dateisystem oder Verursacht durch ein verwendetes Programm oder Benutzer werden die Fehler automatisch auf alle Laufwerke synchronisiert.

Die unterstützten RAID-Level

Unter Linux unterstützt mdadm die RAID-Level RAID0, RAID1, RAID4, RAID5, RAID6 und RAID10.

Im Folgenden zeigen wir Ihnen, welches RAID-Level für was steht:

RAID-Level

Funktion

RAID0

Dies ist eigentlich kein RAID-Level, da die Redundanz fehlt. Sie benötigen dafür mindestens zwei Festplatten, die zu einem logischen Verbund (Stripeset) zusammengefasst werden.

Vorteile: Erhöhte Lese- und Schreibgeschwindigkeit, erhöhte Kapazität.

Nachteil: Wenn eine Partition ausfällt, führt dies bereits zu einem Datenverlust.

RAID1

Sie benötigen dafür mindestens zwei Festplatten, können auch mehr verwenden. Auf allen Festplatten werden dabei die gleichen Daten gespeichert (Spiegelung).

Vorteile: Erhöhte Lesegeschwindigkeit, Alle bis auf eine Festplatte dürfen ausfallen, Einfach.

Nachteil: Die verfügbare Gesamtkapazität ist nur von einer Festplatte einmal vorhanden.

RAID4

Dieser Raid-Level ist wie RAID0, aber mit einer zusätzlichen Festplatte, auf der alle Paritätsbits gespeichert werden.

Vorteile: Erhöhte Lese- und Schreibgeschwindigkeit, erhöhte Kapazität

Nachteil: Da sämtliche Paritätsbits auf einer einzigen Festplatte geschrieben werden, ist diese permanent ausgelastet und kann daher schneller ausfallen, was zu einem Datenverlust führt.

RAID5

Für ein RAID5 benötigen Sie mindestens drei Festplatten. Die Paritätsbits werden im Gegensatz zu RAID4 auf alle vorhandenen Festplatten verteilt gespeichert. Es darf maximal eine Festplatte ausfallen, bevor es zu einem Datenverlust kommt.

Vorteile: Erhöhte Lesegeschwindigkeit, erhöhte Datensicherheit, verteilte Paritätsbits

Nachteile: Langsamere Schreibgeschwindigkeit, Die Kapazität von einer Festplatte wird für Paritätsbits verwendet.

RAID6

Wie RAID5, aber Sie benötigen mindestens vier Festplatten. Auch hier werden die Paritätsbits verteilt auf alle vorhandenen Festplatten verteilt gespeichert, allerdings doppelt. Daher dürfen maximal zwei Festplatten ausfallen, bevor es zu einem Datenverlust kommt.

Vorteile: Erhöhte Lesegeschwindigkeit, erhöhte Datensicherheit, doppelt verteilte Paritätsbits

Nachteile: Langsamere Schreingeschwindigkeit, Die Kapazität von zwei Festplatten werden für Paritätsbits verwendet.

RAID10

Ein RAID10 ist eine Kombination aus Raid1 und Raid0. Es ist ein Raid0, dass über mehrere RAID1 verteilt sind. Sie benötigen dafür mindestens vier Festplatten.

Vorteile: Erhöhte Lese- und Schreibgeschwindigkeit, erhöhte Datensicherheit.

Nachteile: Nur die Hälfte der gesamten Festplattenkapazität steht zur Verfügung.

Allgemeine Syntax

Die allgemeine Syntax von mdadm lautet folgendermaßen:

mdadm [Modus] [RAID-Device] [Optionen] [Component-Device(s)]

Mit dem Befehl sind, je nach gewähltem Modus verschiedene Aktionen, wie beispielsweise die Erstellung und Löschung von Software-RAIDs sowie das nachträgliche Hinzufügen von Geräten möglich. RAID-Devices bzw. -Geräte sind virtuelle Geräte, welche sich aus zwei oder mehr realen Block-Devices - in diesem Fall den Component-Devices - zusammensetzen.

Erstellung eines Software-RAID

Die Erstellung von Software-RAIDs (RAID-Devices) mit mdadm erfolgt mithilfe des Modus "Create" bzw. der Option --create. Dieser Option kann optional ein Parameter übergeben werden, welcher das Label des zu erstellenden RAID-Device spezifiziert. Weiterhin muss der gewünschte RAID-Level mit der Option --level und die Anzahl sowie die Gerätenamen der zu verwendenden physischen Partitionen (Component-Devices) mit der Option --raid-devices angegeben werden.

Die Syntax zur Erstellung eines neuen Software-RAID lautet dann folgendermaßen:

mdadm --create [Label / Gerätename] --level=[RAID-Level] --raid-devices=[Anzahl Partitionen] [Component-Devices]

Es folgen einige Beispiele zur Erstellung verschiedener Software-RAIDs.

Löschen eines Software-RAID

Ein Software-RAID (RAID-Device) muss vor dem Ausbinden zunächst ausgehängt werden. Dabei wird der Befehl umount eingesetzt, welcher in einem weiteren Beitrag beschrieben wird. Anschließend kann mdadm mit der Option --stop eingesetzt werden, um das Software-RAID zu deaktivieren und alle verwendeten Ressourcen freizugeben. Das Software-RAID bleibt dabei jedoch physisch weiterhin bestehen.

mdadm --stop [RAID-Device]

Die vollständige Entfernung des RAID wird durch Nullsetzen des Superblock, welcher die beteiligten Festplatten bzw. Partitionen als RAID-Device (Component-Device) festlegt, erreicht. Die Option --zero-superblock hilft dabei:

mdadm --zero-superblock [Component-Device]

Die Ausführung des Befehls muss für jedes beteiligte Component-Device wiederholt werden.

Hinzufügen von Geräten

Mit der Option --add können Geräte (Component-Devices) in einen bestehenden RAID-Verbund (RAID-Device) aufgenommen werden. Wenn das gewählte Gerät laut seiner Metadaten bereits Teil des Verbunds ist bzw. war, die von dem Gerät verwendete Position jedoch noch frei, wird es dem Verbund wieder an derselben Position hinzugefügt. Wenn dieser Vorgang scheitert, oder das gewählte Gerät nie Teil des Verbunds war, wird es stattdessen als Hot-Spare hinzugefügt. Ein Hot-Spare kommt zum Einsatz, wenn eine der aktiven Festplatten bzw. Partitionen des RAID-Verbunds einen Fehler aufweist oder defekt ist.

mdadm --add [RAID-Device] [Component-Device]

Tritt ein Fehler auf und ein Hot-Spare ist vorhanden, wird automatisch mit einem Rebuild auf dieses begonnen. Andernfalls muss der Rebuild manuell gestartet werden.

Entfernen von Geräten

Geräte (Component-Devices) können mithilfe des Befehls --remove wieder aus dem Verbund entfernt werden. Wichtig ist, dass die gewählten Geräte nicht aktiv sind, es sich also um einen Hot-Spare oder ein defektes Gerät handelt.

mdadm --remove [RAID-Device] [Component-Device]

Software-RAID auflisten

Zur Auflistung von RAID-Verbunden können die beiden Optionen --detail und --examine verwendet werden. Die Option --detail gibt dabei Informationen zu einem gesamten aktiven RAID-Verbund (RAID-Device) aus, während sich --examine auf ein bestimmtes enthaltenes Gerät (Component-Device) konzentriert.

Zur Verwendung der Option --detail wird lediglich der Gerätename des jeweiligen Software-RAID benötigt:

mdadm --detail [RAID-Device]

Der Option --examine wird stattdessen der Gerätename eines Component-Device eines Software-RAID übergeben:

mdadm --examine [Component-Device]

RAID-Status überprüfen

Der Status der konfigurierten RAID-Verbunde lässt sich unter /proc/mdstat auslesen. Auch der Fortschritt eines laufenden Rebuild sowie von Raid-Checks lässt sich hier verfolgen. Der folgende Befehl kann verwendet werden, um den aktuellen Status auszugeben:

cat /proc/mdstat

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Tristan Stanullo

Click Here to Leave a Comment Below

Leave a Comment: