mdadm (multi disk administration) ist das Administrator-Werkzeug für alle Arbeiten an Software-RAIDs.
mdadm
- Durch die Angabe eines Schlüsselwortes wird ein bestimmter Modus eingeleitet, der für die ordnungsgemäße Verarbeitung der weiteren Optionen entscheidend ist.
- Eine komplette Beschreibung zu Modi und Optionen befindet sich in der Manpage zu mdadm.
Installation
- Folgendes Paket muss installiert werden, um ein Software-RAID erstellen zu können:
mdadm MODI
Syntax-Übersicht der Modi
Nr. |
Syntax |
Modus |
Kurzbeschreibung
|
1 |
--assemble MD-DEVICE OPTIONS DEVICES |
Assemble |
Startet ein bestimmtes Array mit den angegebenen Festplatten/Partitionen.
|
1.1 |
--assemble --scan MD-DEVICE OPTIONS |
Assemble |
Startet das angegebene Array; sucht dazu automatisch nach Superblöcken auf allen angeschlossenen Festplatten/Partitionen und verwendet diese, sofern der Array-Name in den gefundenen Metadaten übereinstimmt.
|
1.2 |
--assemble --scan OPTIONS |
Assemble |
Durchsucht alle angeschlossenen Festplatten/Partitionen nach Superblöcken und startet die gefundenen Arrays.
|
2. |
--create MD-DEVICE OPTIONS DEVICES |
Create |
Anlegen/Definieren eines neues Arrays.
|
3. |
--grow MD-DEVICE OPTIONS |
Grow |
Vergrößern/Verkleinern eines bestehenden Arrays.
|
4. |
--monitor MD-DEVICE OPTIONS DEVICES |
Monitor |
Monitoring von einem oder allen md-devices, inkl. Reaktion auf Status-Veränderungen.
|
5. |
MD-DEVICE OPTIONS DEVICES |
Manage |
Verwaltung eines RAIDs.
|
6. |
OPTIONS DEVICES |
Misc |
Sonstige Aufgaben
|
- MD-DEVICES sind die RAID-Arrays.
- DEVICES sind die am Array teilnehmenden Festplatten/Partitionen.
mdadm OPTIONEN
- Neben dem einzelnen Modus gibt es eine ganze Reihe von Optionen, die unterschiedliche Funktionen bei den einzelnen Modi haben.
- Eine komplette Beschreibung zu Modus und Optionen befindet sich in der Manpage zu mdadm.
- Auswahl einiger Optionen mit dem zugeordneten Modus, wie er in den Beispielen angewendet wird.
Option |
Beschreibung |
gültig bei Modi
|
--add |
Hinzufügen weiterer Festplatten/Partitionen |
1, 6
|
--backup-file=... |
Erzeugt eine Backup-Datei - darf nicht im Array liegen |
1, 3
|
--detail |
Details zu den Arrays ausgeben |
6
|
--fail |
Status eines Array verändern |
5
|
--force |
Erzwinge die Ausführung, auch wenn es unsinnig erscheint |
1, 2, 6
|
--help |
Ausgabe eines generellen Hilfetextes - hinter eine Option gestellt = spezielle Optionshilfe |
1, 2, 3, 4, 5, 6
|
--level=... |
Bezeichnet den RAID-Typ |
1, 2, 3
|
--query |
Überprüfen, ob das angegebene Device ein md-Device ist bzw. zu einem Array gehört(e) |
6
|
--raid-device=... |
Anzahl der aktiven am Array teilnehmenden Festplatten/Partitionen |
1, 2
|
--remove |
Festplatten/Partitionen die aus dem Array entnommen werden sollen |
5
|
--stop |
Stoppen eines Arrays |
4, 5, 6
|
--spare-device=... |
Anzahl der inaktiven (Ersatz-) Festplatten/Partitionen eines Arrays |
2, 3
|
--test |
Testen der angegebenen Optionen |
5, 6
|
--uuid=... |
Die UUID des Arrays |
1
|
--verbose |
Mehr Ausgabe-Informationen erzeugen - kann 2x gesetzt werden |
4, 5, 6
|
--zero-superblock |
Löschen des RAID-Superblocks |
6
|
mdadm.conf
- Alle Informationen zum RAID werden auf jeder verwendeten Partition in den sog. Superblock geschrieben (auch Metadaten genannt).
- Der Kernel sucht beim Starten automatisch nach diesen Superblöcken und startet alle voll funktionsfähigen RAIDs, ohne dass eine Konfigurationsdatei nötig ist.
- Trotzdem kann es sinnvoll sein, eine Konfigurationsdatei zu erstellen, z.B. wenn man über Ausfälle am RAID per E-Mail benachrichtigt werden möchte.
- Über die Konfigurationsdatei können sehr viele Details der RAIDs angepasst werden.
- Generell gilt bei neu aufgesetzten RAIDs allerdings: Je weniger, desto besser.
Anwendung
Software-RAID anlegen
# mdadm --create /Pfad_zum_RAID/Name_des_RAIDs --auto md --level=Angabe_des_RAID-Levels --raid-devices=Anzahl_der_Festplatten Angabe_der_Partitionen
Software-RAID 1 über zwei Partitionen, sda1 und sdc1:
# mdadm --create /dev/md0 --auto md --level=1 --raid-devices=4 /dev/sda1 /dev/sdc1
Software-RAID 6 über vier Partitionen:
# mdadm --create /dev/md0 --auto md --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
- Die Parameter nochmals im Einzelnen:
- --create /dev/md0 - Erzeugt ein neues Verbundgerät unter der Bezeichnung md0. Falls bereits Verbundgeräte vorhanden sind, muss ein anderer freier Bezeichner gewählt werden (md1,md2, etc.).
- --auto md - Erzeugt ein "klassisches" Verbundgerät ohne Vor-Partitionierung (diese können bei Bedarf ab Kernelversion 2.6.28 trotzdem partitioniert werden).
- --level= - Die Art des RAID-Verbundes. RAID 1 im ersten Beispiel, im zweiten RAID 5. Eine Übersicht über die möglichen RAID-Level gibt die Tabelle RAID-Level
- --raid-devices - Die Anzahl der Einzelgeräte, aus denen das RAID bestehen soll.
- /dev/sde1 /dev/sde2 ... - Die einzelnen Geräte, die zusammengefasst werden sollen.
- Die Reihenfolge der Bezeichner, bzw. idealerweise die der entsprechenden physischen Geräte sollte man sich aufschreiben, falls im Notfall das RAID von Hand neu zusammengesetzt werden muss.
- Die nötigen Initialisierungsmaßnahmen laufen nun selbstständig im Hintergrund ab.
- Das neu erstellte Blockgerät md0 kann jedoch sofort benutzt werden und das System darf auch währenddessen normal heruntergefahren oder neu gestartet werden.
Erstellen der mdadm.conf
- Die Konfigurationsdatei kann bequem mit einem Skript von mdadm erstellt werden und enthält dann direkt alle Definitionen aller momentan aktiven RAIDs:
# su -c "/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf"
Über Ausfälle am RAID per E-Mail benachrichtigt werden
- In der mdadm.conf muss dafür in der Zeile...
MAILADDR root
- ...root durch die gewünschte E-Mail-Adresse ersetzt werden.
MAILADDR xzy@abc.org
- Dafür muss der E-Mail-Versand durch das System eingerichtet sein, z.B. via Postfix als Satellitensystem.
Quellen
https://linux.die.net/man/8/mdadm
https://wiki.ubuntuusers.de/Software-RAID/