GRUB mit Software-RAID in Linux

In Linux kommt häufig ein Software-RAID zum Einsatz. In praktisch jeder Distribution wird die Einrichtung eines Software-RAIDs bereits während der Installation angeboten. Wer jedoch glaubt, dass er damit nach dem Ausfall einer Festplatte einfach so weiter arbeiten kann, der täuscht sich. Mit einigen wenigen, zusätzlichen Handgriffen ist das System für einen Festplattenausfall vorbereitet.

1. Planung

Grundsätzlich sollte /boot auf einem eigenen RAID-Volume landen. Bei einer „normalen“ Installation mit nur einer Festplatte ist das zwar streng genommen nicht mehr erforderlich, bei RAID-Installationen ist es aber weiterhin ratsam – je nach geplantem RAID-Level sogar erforderlich.

Das hängt daran, dass zum Zeitpunk des Bootvorgangs noch kein vollständiges Software-RAID vorhanden ist. Der Boot-Manager (der im MBR liegt) und die Inhalte von /boot müssen ohne Software-RAID von einer einzigen Festplatte lesbar sein und das geht eben nur mit RAID 1.

Ein typisches Partitions-Layout für 2 Festplatten sieht also so aus:

Festplatte 1
/dev/sda1 1 GB
/dev/sda5 Rest

Festplatte 2
/dev/sdb1 1 GB
/dev/sdb5 Rest

Je zwei gleich große Partitionen werden per RAID 1 zusammengefasst. Das 1 GB große Volume md0 wird direkt formatiert und als /boot eingehängt. Der Rest des Speichers ist als md1 Grundlage für das restliche System, also mindestens für Root und Swap.

/dev/md0 – RAID 1 (sda1 und sdb1) – ext3, Mountpoint /boot
/dev/md1 – RAID 1 (sda2 und sdb2) – LVM (vg0)

Vorsicht, erste Stolperfalle: Manch einer mag hier die Frage stellen, warum für Swap keine eigenes Volume angelegt wird. Schließlich könnte man die Zugriffe per RAID 0 deutlich beschleunigen. RAID 0 hat jedoch keinerlei Ausfallsicherheit. Der Ausfall einer Festplatte sorgt somit zum Ausfall der Swap-Partition und somit zum Ausfall des gesamten Systems. Wer 4 Festplatten hat, darf natürlich gerne ein eigenes RAID-Volume für Swap erzeugen und dieses mit RAID 10 einrichten.

Im LVM werden nun Volumes für alle benötigten Dateisysteme erstellt. Im Minimalansatz sieht das so aus:

/dev/mapper/vg0-swap 4 GB – Swap
/dev/mapper/vg0-root Rest – Mountpoint /

Die Größe der Swap-Partition sollte natürlich an das jeweilige System angepasst werden. Grundregel für Linux:

  • bis 2 GB RAM: Swap doppelt so groß einrichten
  • bis 4 GB RAM: Swap und RAM gleich groß einrichten
  • über 4 GB RAM: Swap halb so groß wie RAM

2. Installation

Die Installation wird i.d.R. innerhalb des Installationsprogramms der jeweiligen Distribution durchgeführt. Praktisch alle Distributionen bieten heute Möglichkeiten, dies durchzuführen – mit mehr oder weniger viel Komfort.

Während der Installation muss ein Speicherort für den Bootmanager GRUB angegeben werden. Üblicherweise kann nur ein Ziel angegeben werden, man muss sich also für /dev/sda oder /dev/sdb entscheiden. Hier gibt man immer /dev/sda an, dann das ist die „erste“ Festplatte, von der das BIOS bzw. UEFI im Normalfall zu starten versucht.

3. Nacharbeit

Nach abgeschlossener Linux-Installation befindet sich der Boot-Manager GRUB nur auf einer Festplatte. Wenn das System nicht hochfährt, ist die Bootreihenfolge falsch. Wählen Sie die zweite Festplatte aus, dann geht es.

Nachdem das System hochgefahren ist, wird als erstes GRUB auf die zweite Festplatte installiert. Das geht ganz einfach:

$ sudo grub-install /dev/sdb

4. Updates

Leider ist die Sache damit nicht beendet. Immer, wenn GRUB ein Update erhält, muss es auf beide Festplatten installiert werden. Im Normalfall geschieht das jedoch genauso wenig automatisch, wie bei der Installation. Daher nach jedem Update von GRUB:

$ sudo grub-install /dev/sda
$ sudo grub-install /dev/sdb

Das Gleiche gilt für jede Änderung der Partitionsstruktur. Sollte etwas geändert werden (z.B. weil nach einem RAM-Upgrade die Swap-Größe angepasst werden muss), muss ebenfalls GRUB neu installiert werden.

6. Mehr als zwei Festplatten

Natürlich können auch mehr als 2 Festplatten zum Einsatz kommen.

In jedem Fall bleibt /dev/md0 ein RAID 1. Hierbei ist es wichtig darauf zu auchten, dass die zusätzlichen Festplatten nicht als Hot-Spare eingebunden werden, sondern als aktive Mitglieder des RAID 1. Nur so wird der Inhalte von /boot tatsächlich auf allen Festplatten gespeichert.

Für /dev/md1 bieten sich je nach Anzahl der Festplatten auch andere RAID-Level an. Hier darf natürlich auch ein anderes RAID-Level gewählt werden, als bei /dev/md0:

  • ab 3 Festplatten geht RAID 3/4/5: Ausfallsicherheit für eine defekte Platte, es wird aber nur die Kapazität einer Platte benötigt, um die Wiederherstellungsinformationen zu speichern. Insbesondere bei vielen Festplatten ist das deutlich ökononischer, als die Spiegelung von RAID 1. Allerdings schreibt RAID 5 deutlich langsamer als RAID 1. Beim Lesen ist RAID 5 dagegen deutlich schneller.
  • ab 4 Festplatten geht auch RAID 6: Ausfallsicherheit für zwei defekte Platten. So bleibt das System auch geschützt, während eine ausgefallene Festplatte ersetzt wird. Das Schreiben ist jedoch noch etwas langsamer als bei RAID 5 und es wird die Kapazität von zwei Festplatten für Wiederherstellungsinformationen verbraucht.
  • ebenfalls ab 4 Festplatten geht auch RAID 10 bzw. 01: Kombination aus RAID 1 und RAID 0. Sie bekommen die Geschwindigkeitsvorteile von RAID 0, büßen dafür aber die Hälfte Ihrer Festplatten für die Spiegelung ein.

Die Konfiguration der Volumes im LVM findet genau so statt, die in der Variante mit 2 Festplatten. Schließlich ist /dev/md1 ein logischer Datenträger. Für LVM ist es vollkommen irrelevant, aus wie vielen Festplatten das darunter liegende Volume besteht.

5. Festplatten-Ausfall

Wer die Anleitung befolgt hat, darf sich nun über ein System freuen, dass gegen den Ausfall einer Festplatte gewappnet ist. Startet es dennoch nicht, stimmt höchstwahrscheinlich die Boot-Reihenfolge nicht. Einfach auf die andere Festplatte umstellen und das System fährt hoch. Am besten hat man die defekte Festplatte dann schon ausgetauscht, damit man direkt mit der Wiederherstellung anfangen kann.

Alternative Hardware-RAID

Wem das zu viel Aufwand ist, dem bleibt nur das deutlich teurere Hardware-RAID. Dabei gilt es darauf zu achten, dass es sich um einen „echten“ RAID-Controller handelt und nicht um das sogenannte Fake-RAID.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.