Last Updated:

Software Raid unter Linux einrichten

Ralf Kirchner
Ralf Kirchner Raid

In diesem How-To-Guide erfahren Sie Schritt für Schritt, wie Sie ein Linux Software-RAID, auch als mdadm bekannt, einrichten können, um die Datensicherheit und Leistung Ihrer Speicherlösung zu verbessern.

Voraussetzungen

  • Ein installiertes Linux Betriebssystem
  • min. zwei freie Festplatten
  • Console oder SSH-Zugang mit Root-Rechten

Installation Softwarepakete

Für die erfolgreiche Einrichtung eines RAID müssen folgende Softwarepakete installiert werden:

sudo apt install mdadm parted

Einrichtung Software RAID

Eine schnelle Übersicht der im System verbauten Festplatten, kann man sich durch die Eingabe des Kommandos lsblk verschaffen.

root@virt01:~# lsblk                                                    
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT               
loop0                  7:0    0    15G  0 loop                          
sda                    8:0    0   1.8T  0 disk                          
sdb                    8:16   0   1.8T  0 disk                          
nvme0n1              259:0    0 232.9G  0 disk

In diesem Beispiel werden die Festplatten sda und sdb zu einem RAID (Level 1) verbunden.

Festplatten partitionieren

Eine neue, leere Partitionstabelle auf dem Laufwerken sda und sdb wie folgt erstellen:

Für PCs mit UEFI Bios oder Festplatten größer 2 TB:

sudo parted /dev/sda mklabel gpt
sudo parted /dev/sdb mklabel gpt

Für ältere PCs mit altem Bios oder Festplatten kleiner 2 TB:

sudo parted /dev/sda mklabel msdos
sudo parted /dev/sda mklabel msdos

Anschließend werden auf den Festplatten die Partitionen wie folgt angelegt:

sudo parted -a optimal -- /dev/sda mkpart primary 2048s -8192s
sudo parted -a optimal -- /dev/sdb mkpart primary 2048s -8192s

Im letzten Schritt werden die Partitionen als “RAID Partition” markiert:

sudo parted /dev/sda set 1 raid on
sudo parted /dev/sdb set 1 raid on

RAID erstellen

Für die eigentliche Erstellung des RAID, wird das Programm mdadm genutzt. Dieses bildet die Schnittstelle zu den RAID-Funktionen des Kernels.

Das RAID (Level 1) wird wie folgt angelegt:

sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

Abschließen einige Beispiele für das Erstellen anderer RAID-Level.

Software-RAID (Level 5) mit 3 Partitionen (sda1, sdb1, sdc1):
sudo mdadm --create /dev/md0 --auto md --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1

Software-RAID (Level 6) mit 4 Partitionen (sda1, sdb1, sdc1, sdd1):
sudo mdadm --create /dev/md0 --auto md --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Software-RAID (Level 10) mit 4 Partitionen (sda1, sdb1, sdc1, sdd1):
sudo mdadm --create /dev/md0 --auto md --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Der aktuelle Status der RAID Erstellung und Synchronisation kann mit folgendem Befehl abgefragt werden:

sudo cat /proc/mdstat

Die Ausgabe sieht dann beispielhaft wie folgt aus:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0]
      1953377344 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.9% (18000256/1953377344) finish=482.4min speed=66854K/sec
      bitmap: 15/15 pages [60KB], 65536KB chunk

unused devices: <none>

Dateisystem erstellen

Um den RAID-Verbund als normales Speicherlaufwerk nutzen zu können, muss noch ein Dateisystem erstellt und dieses in das System eingebunden werden.

Formatieren des RAID mit ext4 Dateisystem:

sudo mkfs.ext4 /dev/md0

Formatieren des RAID mit xfs Dateisystem:

sudo mkfs.xfs /dev/md0

Dateisystem mounten

Das RAID muss noch in die eingebunden werden. Dies geschieht einfach mittels mount, z.B. am Mountpunkt /mnt/data.

sudo mount /dev/md0 /mnt/data

Damit das System beim Start das Dateisystem selber einhängt, muss eine entsprechende Zeile in die Datei /etc/fstab eingetragen werden:

/dev/md0     /mnt/data      ext4      defaults 0 2

Bei dem Dateisystem xfs muss der Eintrag wie folgt aussehen:

/dev/md0     /mnt/data      xfs      defaults 0 2

Update mdadm.conf

In manchen Fällen kann es hilfreich sein, eine Konfigurationsdatei für mdadm anzulegen – beispielsweise, wenn Sie bei einem Ausfall eines RAID-Mitglieds per E-Mail benachrichtigt werden möchten. Diese Datei lässt sich bequem mit einem Skript erzeugen:

sudo su -c "/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf"

Damit die Konfiguration auch nach einem Neustart korrekt zur Verfügung steht, muss das Initial-RAM-Dateisystem (Initrd) aktualisiert werden:

sudo update-initramfs -u -k all

Austauschen def. Festplatte

Zuerst markieren Sie die betroffene Festplatte als fehlerhaft und entfernen sie anschließend aus dem RAID-Verbund:

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md0 --remove /dev/sdb1

Fahren Sie danach den Server herunter, tauschen Sie die Festplatte physisch aus und starten Sie den Server neu.

Partitionstabelle sichern und übertragen

Erstellen Sie ein Backup der Partitionstabellen beider Festplatten:

sgdisk --backup=/root/sda.partitiontable /dev/sda
sgdisk --backup=/root/sdb.partitiontable /dev/sdb

Kopieren Sie anschließend das Partitionsschema von /dev/sda auf die neue Festplatte /dev/sdb:

sgdisk -R /dev/sdb /dev/sda

Um sicherzustellen, dass jede Festplatte eine eigene eindeutige GUID besitzt, setzen Sie eine neue GUID auf der neuen Festplatte:

sgdisk -G /dev/sdb

Zur Kontrolle können Sie sich die Partitionstabellen beider Laufwerke anzeigen lassen:

sgdisk -p /dev/sda  
sgdisk -p /dev/sdb

um zu überprüfen, ob beide Festplatten jetzt die gleiche Partitionierung haben.

Neue Festplatte dem RAID wieder hinzufügen

Fügen Sie die neue Partition /dev/sdb1 wieder dem RAID-Verbund /dev/md0 hinzu:

mdadm --manage /dev/md0 --add /dev/sdb1

Synchronisierung überwachen

Der Wiederaufbau des RAID-Verbunds beginnt automatisch. Den Fortschritt der Synchronisierung können Sie mit folgendem Befehl beobachten:

cat /proc/mdstat

Damit ist das Tutorial zu “Software Raid unter einrichten” abgeschlossen. Wenn Sie Fragen haben, senden Sie eine Mail an ralf.kirchner@ksite.de

Quellen