invis_server_wiki:installation:diskprep

Dies ist eine alte Version des Dokuments!


Manuelle Software-RAID Konfiguration

invis Server verfügen in aller Regel über zwei Festplatten, die über ein Software-RAID miteinander verbunden sind. Ziel dabei ist den Server gegen den Ausfall einer Festplatte abzusichern. Es gibt eine Vielzahl so genannter RAID-Level (mehr dazu hier), von denen in der Praxis vorwiegend die Level 0, 1, 10 und 5 Anwendung finden.

Dabei stellt RAID0 eine Ausnahme dar. RAID0 dient nicht der Erhöhung der Ausfallsichereit eines Computers, ganz im Gegenteil. RAID0 verbindet zwei oder mehr Festplatten so mit einander, dass Schreib- und Lesezugriffe auf den Verbund auf alle Platten verteilt werden. So erhöht sich mit jeder hinzugefügten Platte der Datendurchsatz um die Bandbreite mit der auf die einzelne Platte geschriben werden kann. Da die geschriebenen Daten gleichmäßig auf alle dem Verbund angehörenden Platten verteilt werden, bedeutet der Ausfall einer Platte den vollständigen Datenverlust des gesamten Verbundes. Das Risiko des Datenverlustes erhöht sich also mit der Anzahl der beteiligten Platten.

RAID1 ist eine einfache Spiegelung von zwei oder mehr Platten, d.h. auf allen Platten befindet sich der vollständige Datenbestand. Die Kapazität des Verbundes entspricht der Größe der kleinsten beteiligten Platte. Der Datendurchsatz bei Schreib und Lesezugriffen beschränkt sich den der langsamsten Platte und verschlechtert sich mit der Anzahl der am Verbund beteiligten Platten, da alle Daten auf alle Platten geschrieben werden müssen.

Die RAID-Level 0 und 1 setzen mindestens zwei beteiligte Festplatten voraus.

RAID10 ist eine Kombination der Level 1 und 0 (RAID 0 Verbund über mehrere RAID1 Verbünde) mit dem Ziel die hohe Datensicherheit von Level 1 ohne die damit verbundenen Performance-Nachteile zu realisieren. Die Kapazität des Gesamtverbundes entspricht dabei 50% der gesamten Plattenkapazität. (Auch die Umkehrung RAID01 - ein RAID1 über mehrere RAID0 Verbünde ist möglich, bietet aber eine etwas geringere Ausfallsicherheit.) RAID10 und RAID01 benötigen minimum 4 beteiligte Festplatten.

RAID5 hat ebenfalls die Erhöhung von Ausfallsicherheit und Datendurchsatz (bezogen auf ein RAID1) zum Ziel. Im Vergleich zu RAID10 wird allerdings die zur Verfügung stehende Plattenkapazität besser genutzt. RAID5 setzt mindestens 3 Festplatten voraus, die Kapazität des Verbundes berechnet sich (identische Platten vorausgesetzt) zu „Plattenkapazität * (Anzahl der Platten - 1)“.

Die Ausfallsicherheit aller RAID Level (0 ausgenommen) kann durch die Verwendung so genannter „Hotspare“ Platten erhöht werden. Dies sind einfach Ersatzfestplatten, die beim Ausfall einer Platte automatisch in den Verbund aufgenommen werden.

Achtung: Eine wie auch immer geartete RAID-Konfiguration ersetzt keine Datensicherung! Es gibt genügend Gründe dafür, warum gleich alle in einem Server verbauten Festplatten auf einmal ausfallen.

Ziel dieses Howtos ist die Einrichtung eines einfachen RAID-Level 1 Verbundes zweier Festplatten.

Grundsätzlich gilt, alle oben beschriebenen RAID-Level - inklusive Hotspare-Platten - lassen sich unter Linux ohne entsprechenden RAID-Controller auf Software-Ebene nachbilden. Weiterhin gilt, dass in einem Software-RAID nicht gesamte Platten sondern lediglich Partitionen in RAID-Verbünden organisiert werden.

Aus letzterem ergibt sich folgende Problemstellung. Nehmen wir an, dass wir für unsere Server-Installation für /boot, /, /var, /home und /srv eigene Partitionen benötigen. Dies würde für die RAID-Konfiguration bedeuten, dass insgesamt 5 RAID1 Verbünde angelegt werden müssten, was einen Festplattentausch nicht gerade einfach gestalten würde.

Um dem zu entgehen wird im allgemeinen LVM, eine weitere Technik zur logischen Datenträgerorganisation auf Software-Ebene, genutzt. Mehr dazu hier.

Starten Sie ihr System im ersten Schritt mit einem Linux-Rettungssystem. Für welches Sie sich hier entscheiden sollte keine Rolle spielen, solange dessen Kernel Software-Raid unterstützt. Der Einfachheit halber verwende ich meist das Rettungssystem der openSUSE Net-Install CD.

Zunächst müssen die am RAID beteiligten Festplatten identisch partitioniert werden. Am schnellsten geht das mit dem Klassiker fdisk.

Komandozeile: fdisk /dev/sdx

fdisk ist relativ leicht zu bedienen. Die verschiedenen Funktionen verstecken sich hinter verschiedenen Buchstabentasten. So liefert die Taste „m“ einen Überblick über die verfügbaren Kommandos. Sie können das Programm auf zwei Wegen wieder verlassen. Dass Kommando „w“ (write) schreibt die vorgenommen Änderungen auf die Platte und „q“ verlässt das Programm ohne zu speichern.

Achtung: Wenn Sie gebrauchte Platten verwenden, sollten Sie zunächst eine leere DOS-Partitionstabelle (Kommando: „o“) anlegen und das System vorsichtshalber neu starten.

Legen Sie auf jeder Platte drei Partitionen an: /dev/sdx1 125MB, /dev/sdx2 512MB (oder 1024MB) und eine erweiterte Partition über den gesamten noch verfügbaren Plattenplatz. In der erweiterten Partition legen Sie ein logisches Laufwerk an, welches ebenfalls den gesamten zur Verfügung stehenden Platz ausfüllt. Das Kommando zum Anlegen neuer Partitionen ist „n“ (new). Kontrollieren können Sie Ihre Änderungen mit dem Kommando „p“ (print).

Jetzt müssen den einzelnen Partitionen nich die entpsrechenden Partitions-IDs (Partitionstypen) zugeordnet werden. Dies erreichen Sie jeweils über das Kommando „t“ (toggle). Partition 1 und 5 erhalten den Typ „fd“, die Kennung für automatisch erkannte Linux RAID Partitionen und Partition 2 erhält den Typ „82“ für swap.

Abschließend wird noch die jeweils erste Partition mit dem Kommando „a“ (active) als aktive Bootpartition markiert.

Prüfen Sie Ihre Partitionierung und speichern Sie sie mit „w“ in die Partitionstabelle der Festplatte.

Sollte Kernel noch die vorherige Partitionstabelle geladen haben (fdisk gibt beim Verlassen einen entsprechenden Hinweis), sollten Sie Ihr System vor dem Anlegen der RAID-Verbünde neu starten.

Ausgehend davon, dass das Partitionieren fehlerfrei funktioniert hat, verfügt jede Platte mit sdx1 und sdx5 jetzt über zwei als „Linux auto RAID“ gekennzeichnete Partitionen. Um diese jetzt zu organisieren kommt das Tool mdadm zum Einsatz:

<code>Kommandozeile: mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sda1 /dev/sdb1</code>

und für den zweiten Verbund:

Kommandozeile: mdadm –create /dev/md1 –level=1 –raid-devices=2 /dev/sda5 /dev/sdb5

Damit werden die beiden RAID1-Verbünde /dev/md0 und /dev/md1 angelegt. Die gezeigten Befehlszeilen sehe ich als weitestgehend selbsterklärend an. Die Option „create“ erwartet die Angabe des md-Devices (md = multiple disk) - die Zählung beginnt bei 0. „level“ definiert den RAID-Level und „raid-devices“ erwartet als Parameter die Anzahl der beteiligten Partitionen, die abschließend noch genannt werden müssen. RAID-Verbünde lassen sich (etwa wenn es gerade schnell gehen muss und nur eine Platte zur Hand ist) auch „untermotoriesiert“ zum Leben erwecken, dabei wird einfach anstelle einer beteiligten Partition das Schlüsselwort „missing“ angegeben. Vergessen Sie aber nicht den RAID-Verbund später zu komplettieren, sonst war der Arbeitsaufwand für die Katz. Damit sind die Möglichkeiten des Tools mdadm bei weitem nicht erschöpft, wie ein Blick in dessen manpage schnell verdeutlicht.

Der Linux-Kernel in dessen Hoheitsbereich die Verwaltung der Software-RAID-Verbünde liegt, beginnt jetzt unmittelbar diese zu synchronisieren. Beim kleinen /dev/md0 geht dies so schnell, dass es sich kaum beobachten lässt. Da /dev/md1 bei aktuellen Platten und der zugrunde liegenden Partitionierung vermutlich um die 500GB (oder größer) sein wird sieht hier die Sache etwas anders aus. Hier kann die Synchronisation durchaus eine halbe Stunde oder länger dauern. Beobachten lässt sich dies mit:

Kommandozeile: watch cat /proc/mdstat

Wird der Rechner vor beendeter Synchronisation neu gestartet, beginnt die Prozedur nach dem Neustart einfach von vorne. Noch während der Synchronisation können bereits Daten auf das RAID geschrieben werden, wobei ich dies bei der Erstsynchronisation üblicherweise vermeide.

Wenn Sie die Ausfallsicherheit Ihres Servers weiter erhöhen möchten empfiehlt sich die Verwendung einer „Hotspare“ Platte, sprich einer weiteren Festplatte, die beim Ausfall einer aktiven Platte sofort als Ersatz einspringt.

Formatieren Sie diese Platte genau so wie auch die beiden aktiven Platten. Die Erstellung eines RAID1 Verbundes mit Hotspare-„Partition“ sieht dann so aus:

Kommandozeile: mdadm – –create /dev/md1 —-level=1 —-raid-devices=2 /dev/sda5 /dev/sdb5 —-spare-device=1 /dev/sdc5

Dies müssen Sie selbstverständlich für alle RAID-Verbünde vornehmen.

to be continued

  • invis_server_wiki/installation/diskprep.1239214632.txt.gz
  • Zuletzt geändert: 2009/04/08 18:17
  • von flacco