Linux Software RAID

Last change on 2020-07-31 • Created on 2020-03-19 • ID: RO-DFF78

Einführung

Dieser Artikel Beschreibt die Nutzung eines Software-RAIDs, welches die Interaktion von mehreren Laufwerken in einem Linux-Betriebssystem organisiert, ohne dafür einen Hardware-RAID-Controller zu verwenden.

Von Hetzner mit einem Betriebssystem bereitgestellte Server, oder über den Robot installierte Systeme sind bei mehr als zwei Laufwerken bereits mit dem empfohlenen RAID-Level (1 oder 6) versehen. Weiterhin können Sie das Installimage-Script im Rescue-System verwenden, um angepasste Installationen durchzuführen, dabei unter anderem eine gewünschte Software-RAID-Konfiguration einzustellen und dieses auch mit LVM kombinieren.

Status des Software-RAID auslesen

Verwenden Sie dazu folgenden Befehl:

cat /proc/mdstat

Ausgabe für ein nicht vorhandenes RAID:

Personalities : [raid1]
unused devices: <none>

Ausgabe für ein RAID1:

Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
      234405504 blocks super 1.2 [2/2] [UU]
      bitmap: 0/2 pages [0KB], 65536KB chunk

md1 : active raid1 sda2[2] sdb2[1]
      523712 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[2] sdb1[1]
      33521664 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Ausgabe für ein RAID0 (Die /boot-Partition md0 muss immer als RAID1 eingerichtet sein, um davon booten zu können):

Personalities : [raid1] [raid0]
md2 : active raid0 sda3[0] sdb3[1]
      883956736 blocks super 1.2 512k chunks

md1 : active raid0 sda2[0] sdb2[1]
      52393984 blocks super 1.2 512k chunks

md0 : active raid1 sda1[0] sdb1[1]
      523264 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Wenn unter einer der Partitionen ein Fortschritts-Balken dargestellt wird, läuft derzeit ein RAID-Resync-Prozess:

md0 : active raid1 sdb1[0] sdc1[1]
     2095040 blocks super 1.2 [2/2] [UU]
     	[====>................]  resync = 32.7% (418656/2095040) finish=4.2min speed=131219K/sec

Hinzufügen eines Software-RAID-Arrays

In unserem Beispiel-Szenario sind die Laufwerke /dev/sda bereits /dev/sdb in RAID1-Arrays konfiguriert, welche das Betriebssystem enthalten:

cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
      234405504 blocks super 1.2 [2/2] [UU]
      bitmap: 0/2 pages [0KB], 65536KB chunk

md1 : active raid1 sda2[2] sdb2[1]
      523712 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[2] sdb1[1]
      33521664 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Es sind jedoch zwei weitere Laufwerke vorhanden (/dev/sdc und /dev/sdd), die wir als Daten-Laufwerk in einem RAID1-Array nutzen möchten. Dazu muss zuerst das RAID-Array hinzugefügt werden:

mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sdc /dev/sdd

Anschließend sollte die RAID-Konfiguration wie folgt aussehen:

cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdc1[0] sdd1[1]
     2095040 blocks super 1.2 [2/2] [UU]
     	[====>................]  resync = 32.7% (418656/2095040) finish=4.2min speed=131219K/sec

md2 : active raid1 sda3[2] sdb3[1]
      234405504 blocks super 1.2 [2/2] [UU]
      bitmap: 0/2 pages [0KB], 65536KB chunk

md1 : active raid1 sda2[2] sdb2[1]
      523712 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[2] sdb1[1]
      33521664 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Nun kann die neue Partition nach Belieben formatiert (hier EXT4) und eingehängt werden:

mkfs.ext4 /dev/md3
mount /dev/md3 /mnt

E-Mail-Benachrichtigung bei Ausfall einer Festplatte im Software-RAID

Voraussetzung: Ein Mailserver Ihrer Wahl (z.B. Sendmail) muss bereits installiert und konfiguriert sein.

Debian/Ubuntu/CentOS

Öffnen Sie /etc/mdadm/mdadm.conf bzw. /etc/mdadm.conf (CentOS) in einem Editor und passen Sie folgende Zeile an:

MAILADDR holu@example.com

Hier kann direkt eine Zieladresse angegeben werden. Alternativ bietet es sich an, alle an root gerichteten Emails via /etc/aliases an eine bestimmte Mailadresse weiterzuleiten.

Optional kann auch die Absenderadresse konfiguriert werden:

MAILFROM mdadm@example.com

Wichtig bei Debian und Ubuntu ist, dass AUTOCHECK in der Datei /etc/default/mdadm auf true gestellt ist:

# grep AUTOCHECK= /etc/default/mdadm
AUTOCHECK=true

openSUSE

Öffnen Sie /etc/sysconfig/mdadm in einem Editor und verändern Sie die Variable MDADM_MAIL auf die gewünschte Adresse, an die Benachrichtigungen gesendet werden sollen:

MDADM_MAIL="holu@example.com"

Konfiguration prüfen

Ihre Konfiguration lässt sich mittels folgendem Befehl verifizieren, welcher per mdadm eine Test-Mail generiert und an die angegebene Adresse versendet:

mdadm --monitor --test --oneshot /dev/md0

Weiterhin sollten Sie noch sicherstellen, dass die Datei /etc/cron.daily/mdadm folgende Zeile enthält, welche für das tägliche Monitoring des RAIDs zuständig ist:

exec --monitor --scan --oneshot

Software-RAID auflösen

Um ein Software-RAID aufzulösen können folgende Befehle verwendet werden. Falls es sich dabei um die System-Partitionen handelt, sollte dazu das Rescue-System gebootet werden.

mdadm --stop /dev/md0
mdadm --stop /dev/md1
mdadm --stop /dev/md2
mdadm --remove /dev/md0
mdadm --remove /dev/md1
mdadm --remove /dev/md2

Danach können die Laufwerke wieder normal formatiert werden (zb. mit ext4):

mkfs.ext4 /dev/sda
mkfs.ext4 /dev/sdb

Das Ergebnis kann mittels..

cat /proc/mdstat

...und...

fdisk -l

überprüft werden. Das Software-RAID sollte nun verschwunden sein.

Table of Contents