mdadm
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
Nr. | Syntax | Modus | Beschreibung |
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.
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 angewandt 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.
- Mehr Info: Manpage von mdadm.conf.
Anwendung
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
RAID 1
- Hier sda1 und sdc1.
# mdadm --create /dev/md0 --auto md --level=1 --raid-devices=4 /dev/sda1 /dev/sdc1
RAID 6
- Hier sda1, sdb1, sdc1 und sdd1.
# 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"
Alarmierung
Über Ausfälle am RAID per E-Mail benachrichtigen
- 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.
Links
Interne Links
- TODO