- mdadm
-
mdadm Maintainer Neil Brown Entwickler Neil Brown Aktuelle Version 3.2.1
(28. März 2011)Betriebssystem Linux Programmiersprache C Kategorie Datenträger-Verwaltung Lizenz GPL (Freie Software) Deutschsprachig Nein neil.brown.name/blog/mdadm mdadm (für multiple disk administration, früher auch mdctl) ist ein Hilfsprogramm für Linux zur Verwaltung eines Software RAIDs. Mit dem Programm können RAID-Verbünde erstellt, konfiguriert, überwacht und gelöscht werden. mdadm wird als Freie Software unter der GNU General Public License (GPL) veröffentlicht.[1]
Inhaltsverzeichnis
Features
mdadm erstellt sogenannte multiple devices (kurz MD) aus verschiedenen Block-Devices (wie z.B. einer ganzen Festplatte, einer einzelnen Partition oder einem USB-Stick). Das MD kann das wiederum vom MD-Gerätetreiber als Block-Device verwendet werden. mdadm unterstützt folgende Arten von MDs[2]:
- Linear:: Aneinanderhängen von mehreren gleichgroßen Partitionen
- Mulitpath: Kein RAID, sondern ein Mapping einer Datei auf zwei verschiedene Pfade auf der gleichen Partition (Spiegelung)
- Faulty: Emuliert ein fehlerhaftes RAID-System für Testfälle
- Level 0 (Block Level Striping): Aneinanderhängen von mehren kleinen Block-Devices zu einem großen.
- Level 1 (Mirror): Spieglung einer Disk
- Level 4: Wie Level 0, aber mit einem zusätzlichen Gerät für Paritätbits (erhöhte Ausfallsicherheit) .
- Level 5: Wie Level 4, die Paritätbits werden aber über alle Geräte verteilt.
- Level 6: Wie Level 5 aber mit zwei unabhängigen Paritätsbits pro Segment (erhöhte Ausfallsicherheit).
- Level 10: Kombination von Level 0 und Level 1.
Mehr über die verschiedenen RAID-Levels findet sich auch im Artikel RAID#Die gebräuchlichen RAID-Level im Einzelnen.
Vor dem Linux Kernel 2.6 konnte mdadm die MDs als /dev/mdn (wobei n eine Nummer zwischen 0 und 99 ist) einbinden, der Kernel 2.4 auch als /dev/md/name, wobei name ein frei wählbarer Name ist. Diese Geräte waren nicht partitionierbar. Der Kernel 2.6. führte neue partitionierbare Arrays ein. Die Geräte heißen nun /dev/md_d2p3 (die 3. Partition des 2. MDs). Seit Kernel 2.6.28 können auch die alten MDs partitioniert werden. Sie heißen dann /dev/md2p3 (die 3. Partition des 2. MDs).
Booten von einem Software-Raid
Die Unterstützung für MDs wird von Kernel bereitgestellt. Bevor dieser geladen ist, kann nicht darauf zugegriffen werden. Dies bedeutet insbesondere, das der Kernel nicht auf einem MD liegen darf. Einzige Ausnahme ist Raid 1, das auch ohne Kernel gelesen werden kann[3]. Es wird dann einfach als eine einfache Festplatte erkannt (und die Spiegelung wird ignoriert). Bei einem Software-Raid Linux System muss also die /boot-Partition außerhalb des MDs, oder auf einem RAID 1 liegen.
Kurzreferenz
Ein neues MD kann durch den Befehl
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
erstellt werden. Dieser erzeugt ein neues RAID 1 (mirror) MD names /dev/md0 aus den beiden Partitionen /dev/sda1 und /dev/sdb1. Andere Raid Level können ähnlich erstellt werden, z.b. RAID 5:
mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
Der Befehl
mdadm -Es | grep md0>> /etc/mdadm/mdadm.conf
fügt das neu erstellte md0 in die mdadm.conf ein, so dass das MD beim Booten geladen werden kann.
mdadm --detail /dev/md0
zeigt den Zustand des MDs an.
Verwendung
Erstellung eines RAID 1 (Mirror) aus zwei Partitionen gleicher Größe:
mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdc1 /dev/sde1
Zur Erkennung des RAID-Verbundes bei dem nächsten Systemstart werden die Parameter in der Datei /etc/mdadm/mdadm.conf mit folgendem Befehl gespeichert:
mdadm -Es | grep md0 >>/etc/mdadm/mdadm.conf
Folgender Befehl zeigt den Status eines Verbundes aus mehreren Festplatten an:
mdadm --detail /dev/md0
oder
cat /proc/mdstat
Mdmpd
Mdmpd ist ein Computerprogramm für GNU/Linux-Betriebssysteme. Es ist Bestandteil des mdadm-Paketes und wurde ursprünglich von der Firma Red Hat entwickelt.
Das Programm wird beim Systemstart als Daemon geladen und danach zur Überwachung von RAID-Verbünden genutzt. Der Name des Programms mdmpd ist ein Synonym für engl. daemon to monitor MD multipath devices (dt. Hintergrunddienst zur Überwachung von Mehrfachübertragungen auf Festplatten).
Speicherlösungen in Unternehmen benötigen oft mehrere Möglichkeiten zur Kommunikation mit einem einzelnen Laufwerk innerhalb eines RAID-Verbundes. So kann das System bei einer Störung des Controllers, an dem ein Laufwerk angeschlossen ist, problemlos die Kommunikation mit dem Laufwerk über einen anderen Controller erledigen und bleibt somit voll funktionsfähig. Diese Lösung wird auch multipath disk access (Zugriff auf Laufwerke über mehrere Kanäle) genannt und zum Beispiel bei SAS-Festplatten verwendet. Die Implementierung dieser Zugriffsart erfolgt über die Software Raid Funktionalität des Linux-Kernels, auch als md-Treiber (multiple disk) bekannt.
Funktionsweise
Der Bestandteil des md-Treibers im Kernel erledigt ausschließlich I/O-Anfragen an das entsprechende Laufwerk und die Fehlerbehandlung des aktiven Kanals. Eine Überprüfung ob ein ehemals fehlerhafter Kanal nun wieder funktionsfähig ist, findet nicht statt.
Beim Systemstart führt der Daemon eine initiale Überprüfung des RAID-Verbundes und eine Speicherung dieses Status durch, danach läuft der Daemon im Hintergrund und wartet auf weitere Benachrichtigungen des Kernels.
Nach dem Empfang einer solchen Nachricht prüft der Daemon, ob der aktive Kanal zu einem Laufwerk ausgefallen ist. Danach wird alle 15 Sekunden eine Anfrage durch diesen Kanal geschickt, bis der Ausfall durch den Wechsel des Kanals behoben wurde. Sobald die Störung behoben wurde, fügt der Daemon den (jetzt nicht mehr aktiven) Kanal dem ursprünglichen RAID als Backup-Kanal hinzu.
Bei der Benutzung von procfs, einem dynamischen Dateisystem zur Speicherung systemrelevanter Daten, werden in der virtuellen Datei /proc/mdstat alle konfigurierten RAID-Verbünde sowie weitere Informationen über deren Zustand gespeichert. mdmpd benötigt diese Informationen zur Lokalisierung des RAID-Verbundes, zur Identifikation der Bestandteile des RAID-Verbundes sowie zur Benachrichtigung über relevante Ereignisse.
Weblinks
- Bedienungsanleitung (Englisch)
- Blog des Entwicklers (Englisch)
- Schritt-für-Schritt Anleitung über Partitionierung und die Erstellung eines RAID (Englisch)
- Ubuntu – Installation eines Software-RAID mit mdadm
Referenzen
Kategorien:- Freie Systemsoftware
- Softwarepaket
- Linux
Wikimedia Foundation.