1845119

Raid unter Linux nutzen

27.11.2013 | 11:08 Uhr |

Zwei SATA-Festplatten lassen sich in Linux per Software zu einem schnellen Raid-0-Verbund zusammenfassen. Das Einrichten ist im Grunde nicht mal besonders aufwendig.

SSDs sind unschlagbar schnell, aber aufgrund der vergleichsweise hohen Kosten pro Gigabyte, die aktuell bei 55 Cent (Euro-Cent) liegen, für große Datenmengen nicht attraktiv. Festplattenpreise haben sich dagegen nach dem verheerenden Hochwasser in Thailand im Oktober 2011, das zahlreiche Fertigungsstätten für Festplatten beeinträchtigte, wieder auf einem niedrigen Niveau normalisiert. Das Gigabyte ist hier wieder für etwa 0,4 Cent zu haben.

Eine Lösung, mehr Leistung aus herkömmlichen SATA-Festplatten heraus zu holen, bietet ein Datenträgerverbund nach Raid 0. Dieser Verbund teilt beide Festplatten in Blöcke (Stripes) auf, die abwechselnd beschrieben und gelesen werden. Alle Datenzugriffe teilt das Raid-0-System auf beide Platten auf: Lese- und Schreibzugriffe erfolgen parallel auf beiden Datenträgern. Im Idealfall halbiert sich damit die Zugriffszeit nahezu.

Die Lösung ist ideal, wenn es um große Datenmengen geht, die schnellverfügbar sein sollen, etwa bei Videoschnitt, virtuellen Gastsystemen oder riesigen Datenbanken. Der Preis ist, dass nur beide Festplatten zusammen einen Verbund-Datenträger ergeben. Bei Raid 0 geht es um Geschwindigkeit, nicht um Sicherheit. Fällt eine der beiden Festplatten aus, so sind auch die Daten nicht mehr komplett. Ein regelmäßiges und akribisches Backup der Daten aus dem Raid 0 gehört deshalb zum Pflichtprogramm.

Partitionieren: Auf beiden Festplatten erstellen Sie im verfügbaren Platz jeweils eine primäre Partition, die aber kein Dateisystem bekommt. In Gparted wählen Sie „Nicht formatiert“.
Vergrößern Partitionieren: Auf beiden Festplatten erstellen Sie im verfügbaren Platz jeweils eine primäre Partition, die aber kein Dateisystem bekommt. In Gparted wählen Sie „Nicht formatiert“.

Separates Raid 0

Unter Linux gelingt die Einrichtung eines Raid-0-Verbunds als Software-Raid schon mit zwei identischen SATA-Platten, denn der Kernel bietet die Unterstützung für „Multiple Devices“ (MD) schon seit Version 2.6, und die Mdadm-Tools (Multiple Disk Administration) helfen bei der Erstellung und Verwaltung eines Raids. Es handelt sich dabei um ein Software-Raid ohne eigenen Hardware-Controller. Dies ist einfach einzurichten, hat aber auch Nachteile: Die CPU muss sich um die Aufteilung der Daten und Checksummenberechnung kümmern, was zu einer leicht höheren Prozessorauslastung führt. Zudem gibt es im Notfall keine vom Betriebssystem unabhängigen Analyse- oder Recovery-Tools. Andererseits ist die Einrichtung von Raid 0 auf zwei nachträglich hinzugefügten Festplatten mit geringem Aufwand möglich, und auch das Linux-System selbst muss dazu nur marginal angepasst werden.

Anders verhält es sich bei der Installation von Linux auf einem Raid-Verbund: Dieser Weg ist deutlich aufwendiger und unterscheidet sich je nach verwendeter Distribution; bei einigen Systemen ist hier viel Handarbeit gefragt, bis ein neu installiertes System von einem Raid-Verbund bootet. Da das Betriebssystem selbst nur wenig von Raid 0 profitiert, ist der einfachere und hier beschriebene Weg, einen Raid-Verbund auf zusätzlich hinzugefügten SATA-Platten zu betreiben und Linux auf einer separaten Festplatte oder SSD zu installieren.

Darauf müssen Sie bei einem SSD-Raid achten

Beide Partitionen zu Raid 0 zusammenfassen: Das Tool mdadm kümmert sich um die Zusammenführung beider Geräte zu einem „Multiple Device“, das hier den neuen Gerätenamen „/dev/md0“ bekommt.
Vergrößern Beide Partitionen zu Raid 0 zusammenfassen: Das Tool mdadm kümmert sich um die Zusammenführung beider Geräte zu einem „Multiple Device“, das hier den neuen Gerätenamen „/dev/md0“ bekommt.

Festplatten vorbereiten

Nachdem Sie die zwei Festplatten für Raid 0 eingebaut und Linux gestartet haben, erstellen Sie auf den beiden noch nackten Datenträgern eine neue Partitionstabelle und jeweils eine primäre Partition über den gesamten Speicherplatz.

Am einfachsten gelingt dies mit Gparted, das bei allen populären Distributionen in den Standard-Paketquellen zu finden ist und einen grafischen Partitionierer bietet. Die Partitionstabelle bei Festplatten bis 2 TB ist vom Typ „msdos“, ab 2 TB ist aber „gpt“ (GUID Partition Table) Pflicht, damit der Platz initialisiert werden kann. Lassen Sie die Partitionen beim Erstellen unformatiert, indem Sie im Feld „Dateisystem“ den Eintrag „Nicht formatiert“ auswählen. Notieren Sie sich auch gleich die Gerätebezeichnung der neuen Partitionen auf den eingebauten Festplatten, beispielsweise „/dev/sdb1“ und „dev/sdc1“.

Raid 0 mit mdadm erstellen

Installieren Sie über den Paketmanager das Paket „mdadm“. Unter Debian fragt die Konfiguration nach, auf welcher Art von Gerät das Wurzeldateisystem liegt. Da dies in unserem Fall nicht auf dem Raid liegt, lassen Sie die Angabe hier leer und entfernen den Standard-Wert „all“. Die nächste Frage „Möchten Sie die Raid-Verbünde automatisch starten?“ beantworten Sie mit „Ja“.

Ist Einrichtung der Pakete abgeschlossen, erstellen Sie in der Kommandozeile mit root-Privilegien mittels mdadm

--create /dev/md0 --level=0 --Raid-devices=2 /dev/sdb1 /dev/ sdc1

den neuen Raid-Verbund als „Multiple Device“ namens „/dev/md0“. Dies ist künftig die Laufwerksbezeichnung für das Raid 0. Die anderen Parameter sind schnell erklärt: Den Raid-Level (hier „0“) gibt der Parameter „--level=0“ an. Die Anzahl der Datenträger im Verbund ist über „--Raid-devices=2“ definiert, und dahinter folgen die Gerätebezeichnungen der teilnehmenden Partitionen. Ob alles geklappt hat, überprüfen Sie mit diesem Befehl:

cat /proc/mdstat

Wenn in der Ausgabe der angelegte Raid-Bezeichnung „md0“ und „active“ erscheint, ist alles in Ordnung und das Raid einsatzbereit. Nun erstellen Sie auf dem Raid-Verbund ein Dateisystem, etwa Ext4. Dies gelingt mit diesem Kommando als root:

mkfs.ext4 /dev/md0

Beachten Sie, dass Sie das Dateisystem nicht etwa auf den einzelnen Partitionen erzeugen, sondern gleich auf dem „Multiple Device“ md0, das beide Partitionen im vorherigen Schritt bereits zu einem Raid 0 zusammengefasst hat. Danach können Sie den Raid-Verbund bereits nutzen und das Gerät „/dev/md0“ wie ein Laufwerk in einen Mount-Punkt einhängen und beschreiben.

SSD und klassische Festplatte im Vergleich

Dennoch fehlt aber noch etwas: Bisher ist das Raid 0 nur für das laufende System eingerichtet, und ab dem nächsten Start müssten Sie den Verbund erst wieder manuell aus den Partitionen zusammenbauen und einhängen. Deshalb müssen Sie noch eine Konfigurationsdatei für mdadm erzeugen, damit es dies beim Boot automatisch erledigt. Die Konfiguration wird als „/etc/ mdadm“ hinterlegt, damit der Raid-Verbund automatisch während des Systemstarts zusammengefügt wird. Die Datei müssen Sie nicht manuell schreiben. Wechseln Sie in der Shell stattdessen mit su oder sudo -s zum root-Konto, und geben Sie folgenden Befehl ein:

mdadm --detail --scan >> /etc/ mdadm/mdadm.conf

Jetzt bietet sich ein Neustart an, um die Konfiguration zu testen. Nach dem Start sollte das Gerät „/dev/md0“ wieder verfügbar und aktiv sein. Um das Raid 0 ab sofort immer in ein Verzeichnis einzuhängen, beispielsweise nach „/mnt/Raid“, müssen Sie die Datei „/ etc/fstab“ ergänzen. Tragen Sie dort als neue Zeile etwa

/dev/md0 /mnt/Raid ext4 defaults 0 0

ein, um den Raid-Verbund beim Start nach „/mnt/Raid“ einzuhängen; dieses Verzeichnis muss dazu bereits vorhanden sein. Testen Sie die neue fstab mit dem Befehl mount -a vor einem Neustart, um eventuelle Fehler zu finden. Damit ist Raid 0 einsatzbereit.

0 Kommentare zu diesem Artikel
1845119