Grundlagen
mdadm (Administrator mehrerer Geräte) ist ein äußerst nützliches Tool zum Ausführen von RAID-Systemen. Es ist ein Tool zum Erstellen, Verwalten und Überwachen von RAID-Geräten mit dem md-Treiber. Es kann als Ersatz für die Raidtools oder als Ergänzung verwendet werden. Sie können ganze Laufwerke (/dev/sdb, /dev/sdc) oder einzelne Partitionen (/dev/sdb1, /dev/sdc1) als Komponente eines Arrays verwenden.
Die Vorteile der Verwendung von mdadm sind:
1. mdadm kann Ihre Arrays diagnostizieren, überwachen und detaillierte Informationen darüber sammeln.
2. mdadm ist ein einzelnes zentralisiertes Programm und keine Sammlung verstreuter Programme, daher gibt es eine gemeinsame Syntax für jeden RAID-Verwaltungsbefehl.
3. mdadm kann fast alle seine Funktionen ausführen, ohne eine Konfigurationsdatei zu haben und verwendet standardmäßig keine.
mdadm-Softwaretools funktionieren für alle Linux-Distributionen mit derselben Syntax.
mdadm installieren
Stellen Sie sicher, dass Sie ein System-Update durchführen und installieren Sie dann das neueste mdadm-Programm auf Ihrem System:
# yum clean all # yum update # yum install mdadm -y
Die Konfigurationsdatei
– Die Datei /etc/mdadm.conf wird verwendet, um zu identifizieren, welche Geräte RAID-Geräte sind und zu welchem Array ein bestimmtes Gerät gehört. Dies ist erforderlich, um Ihre RAID-Geräte beim Booten automatisch zu erstellen.
– Diese Datei ist standardmäßig nicht verfügbar und muss manuell erstellt werden.
– Nachdem Sie die RAID-Geräte erstellt haben, können Sie dies tun Erstellen Sie einfach die Datei mdadm.conf, indem Sie die Ausgabe des Befehls :
# mdadm --detail -scan ARRAY /dev/md0 level=linear num-devices=2 metadata=1.2 name=localhost.localdomain:0 UUID=a50ac9f2:62646d92:725255bd:7f9d30e3 devices=/dev/sdb,/dev/sdc
Wie in der obigen Ausgabe zu sehen ist, habe ich ein lineares Array md0 mit 2 Geräten /dev/sdb und /dev/sdc.
# mdadm --verbose --detail -scan > /etc/mdadm.conf
Erstellen der RAID-Geräte
Um die Optionen zum Erstellen eines RAID-Geräts mit mdadm aufzulisten, verwenden Sie die Option –help. Beim Erstellen von RAID mit mdadm gibt es mehrere Optionen. Ich werde einige wichtige auflisten.
# mdadm --create --help -C | --create /dev/mdn -l | --level 0|1|4|5 -n | --raid-devices device [..] -x | --spare-devices device [..]
Linearer Modus
– Zwei oder mehr Laufwerke werden zu einem physischen Gerät kombiniert.
– Die Laufwerke werden aneinander „angehängt“, sodass das lineare Schreiben auf das RAID-Gerät zuerst Laufwerk 0 füllt, dann Laufwerk 1 und so weiter on.
– Die Festplatten müssen nicht gleich groß sein.
– Auf dieser Ebene gibt es keine Redundanz.
– Die Lese- und Schreibleistung wird bei einzelnen Lese-/Schreibvorgängen nicht erhöht . Aber wenn mehrere Benutzer das Gerät verwenden, mehrere Benutzer gleichzeitig verschiedene Festplatten verwenden, werden Sie einen Leistungsgewinn feststellen.
Um zwei Festplatten im linearen Modus mit mdadm zu erstellen, geben Sie einfach eine einzige Befehlszeile ein:
# mdadm --create --verbose /dev/md0 --level=linear --raid-devices=2 /dev/sdb /dev/sdc mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
Derselbe Befehl kann mit der kürzeren Version der Optionen ausgeführt werden:
# mdadm --Cv /dev/md0 --l linear -n2 /dev/sdb /dev/sdc
RAID 0
– Auch „Stripe“-Modus genannt.
– Die Geräte sollten die gleiche Größe haben.
– Auch in dieser Ebene gibt es keine Redundanz. Bei Ausfall eines Laufwerks ist keine Datenrettung möglich.
– Die Lese- und Schreibleistung wird erhöht, da auf den Geräten parallel gelesen und geschrieben wird.
So erstellen Sie zwei Laufwerke im RAID 0-Modus:
# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
RAID 1
– Diese Ebene ist redundant.
– RAID-1 kann auf zwei oder mehr Festplatten mit null oder mehr Ersatzfestplatten verwendet werden.
– Dieser Modus behält eine exakte Spiegelung der Informationen auf einer bei Festplatte auf die andere(n) Festplatte(n).
– Natürlich müssen die Festplatten gleich groß sein.
– Wenn eine Festplatte größer als die andere ist, hat Ihr RAID-Gerät die Größe der kleinsten Festplatte.
– Wenn bis zu N-1 Festplatten entfernt werden (oder abstürzen), sind alle Daten noch intakt. Wenn Ersatzfestplatten verfügbar sind und das System den Absturz überstanden hat, beginnt die Rekonstruktion der Spiegelung sofort auf einer der Ersatzfestplatten, nachdem der Laufwerksfehler erkannt wurde.
– Die Schreibleistung ist oft schlechter als auf einer einzelnen Gerät, da dieselben Daten gleichzeitig auf 2 oder mehr Geräte geschrieben werden müssen.
Sie können RAID 1 mit zwei Festplatten und einer Ersatzfestplatte einrichten:
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=/dev/sdd
RAID 4
– Dieses RAID-Level wird nicht sehr oft verwendet.
– Es kann auf drei oder mehr Laufwerken verwendet werden.
– Anstatt die Informationen vollständig zu spiegeln, behält es die Paritätsinformationen auf einem Laufwerk und schreibt Daten auf RAID-0-ähnliche Weise auf die anderen Festplatten.
– Da eine Festplatte für Paritätsinformationen reserviert ist, beträgt die Größe des Arrays (N-1)*S, wobei S die Größe von ist kleinstes Laufwerk im Array.
– Wenn ein Laufwerk ausfällt, können die Paritätsinformationen verwendet werden, um alle Daten zu rekonstruieren. Wenn zwei Laufwerke ausfallen, gehen alle Daten verloren.
So richten Sie RAID 4 mit 4 Festplatten und einer Ersatzfestplatte ein:
# mdadm --create --verbose /dev/md0 --level=4 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde spare-devices=/dev/sdf
RAID 5
– RAID-5 kann auf drei oder mehr Festplatten mit null oder mehr Ersatzfestplatten verwendet werden.
– Die resultierende RAID-5-Gerätegröße beträgt (N-1)*S, genau wie RAID -4.
– Der große Unterschied zwischen RAID-5 und -4 besteht darin, dass die Paritätsinformationen gleichmäßig auf die beteiligten Laufwerke verteilt werden, wodurch das Engpassproblem bei RAID-4 vermieden wird.
– Wenn einer der Festplatten ausfallen, alle Daten sind dank der Paritätsinformationen noch intakt. Wenn Ersatzfestplatten verfügbar sind, beginnt die Rekonstruktion sofort nach dem Geräteausfall. Wenn zwei Festplatten gleichzeitig ausfallen, gehen alle Daten verloren. RAID-5 kann einen Festplattenausfall überstehen, aber nicht zwei oder mehr.
– Lesevorgänge ähneln RAID-0-Lesevorgängen, Schreibvorgänge sind im Allgemeinen teuer, da die Parität geschrieben werden muss, was zum Overhead wird.
So richten Sie RAID 5 mit 3 Festplatten und 1 Ersatzfestplatte mit mdadm ein:
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=/dev/sde
Dateisystem auf RAID-Geräten erstellen
So erstellen Sie ein ext4-Dateisystem auf dem RAID-Gerät und hängen es ein:
# mkfs.ext4 /dev/md0 # mkdir /data01 # mount /dev/md0 /data01
Stellen Sie sicher, dass Sie einen Eintrag in /etc/fstab machen, damit er über Neustarts hinweg bestehen bleibt.
# vi /etc/fstab /dev/md0 /data01 ext4 defaults 0 0
Überprüfen der Konfiguration
/proc/mdstat ist eine vom Kernel verwaltete Datei, die Echtzeitinformationen über die RAID-Arrays und -Geräte enthält.
# cat /proc/mdstat Personalities : [linear] md0 : active linear sdc[1] sdb[0] 4194288 blocks super 1.2 0k rounding unused devices: [none]
Um detaillierte Informationen zu einem bestimmten Array zu erhalten, verwenden Sie :
# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Mon Nov 3 06:03:03 2014 Raid Level : linear Array Size : 4194288 (4.00 GiB 4.29 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Mon Nov 3 06:03:03 2014 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Rounding : 0K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : a50ac9f2:62646d92:725255bd:7f9d30e3 Events : 0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc
Stop/Start (zusammenbauen) und RAID-Array entfernen
So stoppen Sie ein vorhandenes Array und entfernen es vollständig aus dem System:
# mdadm --stop /dev/md0 # mdadm --remove /dev/md0
So starten (assemblieren) Sie ein gestopptes Array:
# mdadm --asemble /dev/md0HINWEIS :Der Assemble-Befehl liest die Datei /etc/mdadm.conf, um das Array zu starten. Falls Sie Ihre Konfiguration vor dem Stoppen des Arrays nicht in mdadm.conf gespeichert haben, würde dieser Befehl fehlschlagen. Sie können den folgenden Befehl verwenden, um die Datei mdadm.conf neu zu erstellen:
# mdadm –examine –scan> /etc/mdadm.conf
Geräte im Array verwalten
Hinzufügen eines Geräts
So fügen Sie dem Array ein neues Gerät hinzu:
# mdadm --add /dev/md0 /dev/sdd
Entfernen eines Geräts
Wir können ein Gerät (-f) aus einem Array fehlschlagen lassen und es dann entfernen (-r):
# mdadm --manage /dev/md0 -f /dev/sdd # mdadm --manage /dev/mdadm -r /dev/sddErsetzen einer ausgefallenen Spiegelfestplatte in einem Software-RAID-Array (mdadm)