Passwort vergessen?

Benutzername vergessen?

Alles rund um IT, Web und Entwicklung.
Von Nutzern für Nutzer.

Ubuntu Software RAID 0, 1 und 5 einrichten



Mit einem RAID (=Redundant Array of Idependent Disks) ist es möglich mehrere Festplatten zu einer logischen Einheit zu verbinden.

Dabei gibt es verschiedene RAID Modi. Die gängigsten sind RAID 0 (Striping), RAID 1 (Spiegelung) und RAID 5 (Verteilte Parität).



In diesem Artikel wird beschrieben wie man die unterschiedlichen RAIDs ohne einen extra RAID Controller als Software RAID einrichtet.


Voraussetzungen


Die Festplatten des RAID Verbundes sollten gleich groß sein. Andernfalls wird Speicherplatz verschenkt, da die Kapazität der kleinsten Platte ausschlaggebend ist.

Weiterhin muss zunächst das Paket für die RAID Verwaltung installiert werden.

sudo apt-get install mdadm

Für Festplatten > 2 TB muss zusätzlich das Paket gfdisk installiert werden um diese nach dem neuen GPT Schema zu partitionieren. An dieser Stelle ein Danke an Jeykon, der mich auf den Punkt aufmerksam gemacht hat.


Festplatten formatieren


Zunächst werden die Festplatten für den RAID Verbund mit fdisk formatiert.

sudo fdisk -l

Mit diesem Befehl erhalten wir eine Übersicht über alle angeschlossenen Festplatten.




sudo fdisk /dev/sdb

Für Platten, die größer als 2 TB sind, muss gfdisk verwendet werden.

sudo gfdisk /dev/sdb


Partition anlegen


  • n - Neue Partition anlegen

  • p - Primäre Partition

  • 1 - Partitionsnummer 1

  • Erster Sektor - Nur Eingabetaste drücken

  • Letzter Sektor - Ebenfalls Eingabetaste drücken



Dateisystemtyp festlegen


  • t - Partition 1 wird automatisch ausgewählt

  • fd - Typ ist "Linux raid auto"

  • w - Änderungen schreiben und beenden



Diese Schritte sind für alle Platten zu wiederholen. Anschließend ist die Konfiguration der Platten abgeschlossen. Im nächsten Schritt werden wir diese nun in den RAID Verbund aufnehmen.




RAID 0

Das Erstellen eines RAID 0 Verbunden erfolgt in Ubuntu mit dem nachfolgenden Befehl:

sudo mdadm --create --verbose /dev/md0 --auto=yes --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

Die Option Level gibt hier den RAID Level an. Wichtig ist hier die Option raid-devices (Anzahl der Festplatten) entsprechend der eigenen Konfiguration anzupassen.

Das RAID Volume ist nun gestartet und fast einsatzbereit. Über fdisk können wir nun das neue virtuelle Gerät /dev/md0 sehen.




RAID 1


Die Erstellung eines RAID 1 Verbundes erfolgt über den gleichen Befehl. Es werden lediglich die Parameter angepasst.

sudo mdadm --create --verbose /dev/md0 --auto=yes --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Auch hier kann das Ergebnis wieder mit fdisk -l geprüft werden.


RAID 5


Ein RAID 5 Verbund wird über den nachfolgenden Befehl initialisiert:

sudo mdadm --create --verbose /dev/md0 --auto=yes --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Wichtig ist hier, dass gemäß der RAID 5 Spezifikation mindestens 3 Festplatten benötigt werden.



Dateisystem erstellen


Nachdem der eigentliche RAID Verbund initialisiert ist, kann ein Dateisystem auf dem neuen logischen Gerät /dev/md0 erstellt werden.

Auch hier nutzen wir für die Anpassung der Partitionstabelle wieder fdisk.

sudo fdisk /dev/md0

  • n - Neue Partition anlegen

  • p - Primäre Partition

  • 1 - Partitionsnummer 1

  • Erster Sektor - Nur Eingabetaste drücken

  • Letzter Sektor - Ebenfalls Eingabetaste drücken



Dateisystemtyp festlegen


  • t - Partition 1 wird automatisch ausgewählt

  • 83 - Typ ist "Linux"

  • w - Änderungen schreiben und beenden



Das Anlegen des Dateisystems erfolgt nun über das nachfolgende Kommando.

mkfs.ext4 /dev/md0


Dateisystem einbinden


Damit ist das Dateisystem fertig erstellt. Jetzt muss dieses noch auf einen Mountpunkt gemappt werden.

Zunächst erstellen wir einen neuen Ordner. Natürlich kann man das Laufwerk auch auf einen bestehenden Ordner verbinden.

sudo mkdir /mnt/raid


Dazu die /etc/fstab mit einem Editor und Root-Rechten öffnen und nachfolgende Zeile anfügen.

/dev/md0     /mnt/raid     ext4     defaults     0      0

Und einbinden:

sudo mount -all

Aufgaben


Array stoppen / starten


Bevor das Array gestoppt werden kann, muss /dev/md0 entbunden werden:

sudo umount /dev/md0


Jetzt kann das RAID gestoppt werden. Auch hier verwenden wir wieder mdadm.

sudo mdadm --stop /dev/md0

Zum Starten einfach den Parameter --start verwenden.


Array löschen


Bevor ein Array gelöscht werden kann muss es deaktiviert werden. Siehe oben.
Anschließend wird alles gelöscht.

sudo mdadm --zero-superblock /dev/sdb1
sudo mdadm --zero-superblock /dev/sdc1
sudo mdadm --zero-superblock /dev/sdd1



Defekte Festplatte tauschen


Angenommen die Festplatte /dev/sdc ist defekt. Zuerst die Partition auf der Festplatte als defekt markieren

sudo mdadm /dev/md0 --fail /dev/sdc1

Nun kann die Partition komplett aus dem RAID entfernt werden:

sudo mdadm /dev/md0 --remove /dev/sdc1

Sobald die Platte getauscht ist und wieder eine RAID Partition auf dieser erstellt wurde, wird diese dem Array wieder hinzugefügt.

sudo mdadm /dev/md0 --add /dev/sdc1


Fazit


Die Performance eines Software RAIDs ist natürlich etwas geringer als die eines echten Hardware RAIDs. Dennoch ist die Konfiguration unter Ubuntu recht übersichtlich und logisch.

Für den professionellen Einsatz im Rechenzentrum ist an Hardware RAID dennoch die bessere Wahl.

Quellen: Ubuntu Logo

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit
DataCloud

Hinterlasse einen Kommentar

Ich habe die Datenschutzerklärung zur Kenntnis genommen und stimme einer elektronischen Speicherung und Verarbeitung meiner eingegebenen Daten zur Beantwortung der Anfrage zu.

Michael Kostka

08.08.2015 12:43

Hallo Mike,

vermutlich stimmen nur die Berechtigungen nicht. Hast du mal als Root versucht diese anzupassen:

sudo chmod 666 -R /mnt/raid

Ansonsten wäre eine Ausgabe deiner /etc/fstab evtl. hilfreich.

Viele Grüße
Michael

Mike

28.05.2015 04:08

Guten Tag Michael
Ersteinmal vielen Dank für deine Anleitung, da ich Neuling bin und gerade erst seit zwei Wochen angefangen habe mit Linux (Ubuntu 14.04 LTS Desktop) bekomme ich es einfach nicht hin. Es wäre wirklich sehr klasse, wenn du mir hier helfen könntest.

Ich habe eine 250GB SSD wo das Ubuntu drauf installiert ist und 2x2 TB Western Digital Team Red Festplatten und würde diese gerne als Datenplatte wo ich meine Musik, Filme usw. darauf speichern würde als RAID 1 laufen lassen, soweit so gut.

Ich bin auch alle Punkte durchgegangen wie du beschrieben hast. Bei Punkt 6 habe ich die Datei mit vim eingefügt und als ext4 anstatt wie bei dir ext3 gespeichert. Mein RAID 1 Laufwerk wird auch angezeigt, mit 2TB Speicher. Jedoch habe ich kein Zugriff darauf und kann dort nichts drauf kopieren, was mache ich falsch? Ich würde gerne das laufwerk sichtbar haben und Zugriff darauf bekommen.

Ich hoffe, dass du mir ein wenig helfen könntest, da ich jetzt fast seit 2 wochen an diesem Raid 1 fehlschlage.

Mit freundlichen Grüßen
Mike

Jeykon

13.05.2015 01:02

Hallo,

erstmal super Artikel. Alles sehr ausführlich beschrieben.
Ich bin allerdings auf Hindernis gestoßen.
Bei fdisk gibt es eine Größenbegrenzung von 2TB für Partitionen.
Es wird also immer nur ein 2TB raid geladen.

Ich habe statt fdisk, gdisk genutzt und die 3TB Partition wurde problemlos erstellt.

Nur so als kleiner Hinweis weil viele ja heute auch größere Platten haben.

Schönen Gruß

Dieter Kiesel

06.09.2014 19:30

Hi Michael,

Vielen Dank :)

VG,
Dieter

Michael Kostka

17.07.2014 08:43

Hallo Dieter,

das RAID kannst du in jedem anderen Linux System wieder einbinden.

Die hierzu notwendigen Informationen sind in den Superblocks der Festplatten gespeichert.

Um das RAID wiederherzustellen ist folgender Befehl notwendig:

sudo mdadm --assemble --scan

oder gezielt: sudo mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1

Viele Grüße
Michael

Dieter Kiesel

29.06.2014 15:35

Hi, super Anleitung - danke!

Eine Frage hätte ich noch: kann man das bestehende Raid wieder einbinden, wenn der server neu aufgesetzt wird? Wenn ja, wie geht das?