
Software Raid unter Linux einrichten
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