Wednesday, January 7, 2015

MD Software-RAID Level 1

MD Software-RAID Level 1 ist die Spieglung einer Partition, durch einrichten eines Festplattenverbund von zwei (oder mehr) Festplatten zu einem logischen Laufwerk mittels mdadm (Programmpaket zum Verwalten von Multi-Disk-Arrays unter Linux), bei dem die Daten gleichzeitig auf alle Festplatten dupliziert werden. Dies schützt durch Redundanz vor dem Ausfall einer Festplatte.

  • Die Literatur empfiehlt aus Sicherheitsgründen, für die RAID-Festplatten unterschiedliche Hersteller oder zumindest unterschiedliche Produktionslinien vom selben Hersteller einzusetzen. Damit, sollte ein Hersteller Fertigungsprobleme gehabt haben, nicht alle Festplatten innerhalb kürzester Zeit ausfallen.
  • Tritt ein Problem auf, wird die Fehlermeldung per E-Mail versandt (Die E-Mail wird die Ausgabe von cat /proc/mdstat enthalten). Das setzt allerdings voraus, dass ein Mail Transfer Agent (MTA) eingerichtet ist.
  • Das RAID ersetzt keine Datensicherung. Ein RAID schützt nur vor dem Ausfall einer Festplatte — nicht vor unbeabsichtigtem löschen von Dateien und Fehler am Dateisystem.

Software-RAID Level 1 mit dem Debian-Installer erstellen

Um die Installation einfach und überschaubar zu halten, habe ich jeweils nur eine Partition (/dev/sd[ab]1) für das RAID genommen und LVM mit jeweils einem LV für / (Root-Partition) und Swap eingerichtet.

Anders als beim Laptop, das mobile ist und auf Reisen etc. schon mal verloren gehen kann oder gestohlen wird, halte ich auf dem Desktop zu Hause ein verschlüsseltes System mit cryptsetup/LVM für nicht notwendig.

Festplatten partitionieren und als RAID konfigurieren

Zwei Partitionen für die Benutzung als RAID einrichten:

partman_active_partition_0.png

Software-RAID Level 1 erstellen

RAID Level 1 mit den zwei Partitionen erstellen:

partman_choose_partition_0.png

partman-md_mainmenu_0.png

Typ des Software-RAID wählen. Wir wählen RAID1:

partman-md_createmain_0.png

Anzahl der Partitionen für das RAID Level 1 auf 2 setzen:

partman-md_raiddevcount_0.png

Die zwei Partitionen die wir oben für die Benutzung als RAID eingerichtet haben auswählen:

partman-md_raiddevs_0.png

Anzahl der Reserve-Partitionen setzen. Wir haben keine Reserve-Partition:

partman-md_raidsparecount_0.png

RAID fertigstellen:

partman-md_mainmenu_1.png

Die (neue) RAID1-Partition für die Benutzung als LVM einrichten:

partman_active_partition_3.png

partman_choose_partition_5.png

LVM (Logical-Volume-Manager) konfigurieren

LVM konfigurieren und eine VG (Volume-Gruppe) mit zwei LVs (logisches Volume) für / (Root-Partition) und Swap erstellen:

partman_choose_partition_6.png

VG debian auf der RAID1-Partition erstellen:

partman-lvm_mainmenu_0.png

partman-lvm_vgcreate_name_0.png

partman-lvm_vgcreate_parts_0.png

Zwei LVs für Swap und / (Root-Partition) erstellen:

partman-lvm_mainmenu_1.png

partman-lvm_lvcreate_name_0.png

partman-lvm_lvcreate_name_1.png

Fertige Partitionierung übernehmen

Das fertige Partitions-Schema:

partman_choose_partition_12.png

Bootloader installieren

debian-installer_main-menu_1.png

Um GRUB auf beide Festplatten zu installieren, kann später im nach hinein dpkg-reconfigure grub-pc ausgeführt werden und dort dann alle Festplatte für die Installation ausgewählt werden.

dpkg-reconfigure_grub-pc.png

Fehlerhafte Festplatte ersetzen

Schritt-für-Schritt Anleitung zum Austausch einer defekten Festplatte im Software-RAID Level 1:

  1. Alle Partitionen der defekten Festplatte als fehlerhaft aus dem RAID entfernen:
    mdadm /dev/mdN --set-faulty /dev/sdXN --remove /dev/sdXN
    
  2. Die physische Festplatte auswechseln.
  3. Bootloader und Partitionstabelle kopieren:
    # Bootloader kopieren
    dd if=/dev/sdY of=/dev/sdX bs=512 count=1
    # MBR-Partitionstabelle (MPT) kopieren
    sfdisk -d /dev/sdY > /tmp/mpt.out
    sfdisk /dev/sdX < /tmp/mpt.out
    # neue Partitionstabelle einlesen
    blockdev --rereadpt /dev/sdX
    

    Hinweis: Für GUID-Partitionstabellen (GPT) muss sgdisk(8) verwendet werden:

    sgdisk --backup=/tmp/gpt.out /dev/sdY
    sgdisk --load-backup=/tmp/gpt.out /dev/sdX
    
  4. Partitionen der neuen Festplatte dem RAID hinzufügen:
    mdadm /dev/mdN --add /dev/sdXN
    

Das als fehlerhaft entfernen und hinzufügen von Partitionen, kann während des Betriebs passieren. Nur zum Auswechseln der physischen Festplatte muss eine Ausfallzeit eingeplant werden. Es müssen alle Partitionen der defekten Festplatte als fehlerhaft entfernt und anschließend neu hinzugefügt werden.

Mit folgendem Befehl kann die Synchronisierung des RAID verfolgt werden:

watch mdadm --detail /dev/mdN

Der Irrtum abwarten zu müssen bis die Synchronisierung abgeschlossen sei ist falsch. Das RAID kann sofort benutzen werden.

Aus einem Live-System auf das RAID zugreifen

Unter GRML, KNOPPIX etc. ein Software-RAID starten.

Das Skript mdadm-startall, startet Software-RAID Systeme automatisch:

# Alle RAID-Systeme starten
apt-get update        # Paketquellen aktualisieren
apt-get install mdadm # Werkzeug zum Verwalten von RAID-Systemen installieren
modprobe md_mod       # RAID framework laden (RAID-Treiber)
mdadm-startall        # Alle RAID-Systeme starten

Nun sollten alle RAID-Systeme (Meta-Devices: /dev/md*) gestartet worden sein und können mit den üblichen Programmen — cryptsetup(8), lvm(8), mount(8) usw. — wie herkömmliche Partitionen gehandhabt werden.

Hinweis: In neueren Versionen vom Programmpaket mdadm, scheint das Skript mdadm-startall zu fehlen.

RAID-Systeme mit dem Debian-Installer starten

Der Rettungsmodus des Debian-Installer startet RAID-Systeme ebenfalls.

Quellen und weiterführendes