Debian: Software RAID-1 einrichten

closeDieser Beitrag wurde vor mehr als sechs Monaten veröffentlicht. Bedenken Sie bitte, dass die hier angebotenen Informationen nicht mehr aktuell und gültig sein könnten. Informieren Sie sich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so können Sie uns gerne über die Kommentarfunktion darauf hinweisen. Vielen Dank!

Raid Übersicht

Einrichtung eines RAID-1 während der Installation

Während der Installation werden auf zwei Festplatten RAID-Partitionen eingerichtet auf welcher dann das Root Dateisystem abgelegt wird. Die Swap Partitionen sollten auf keinen Fall über den Raid-Verbund gehändelt werden, denn es gibt zwei Situationen in denen das zu Probleme führt.

1. Situation

Ein System mit einer Swap Partition im Raid-1 Verbund fällt aufgrund eines Stromausfalls aus. Beim nächsten booten wird ein rebuild des Raids angestoßen und der Bootprozess geht weiter ohne das der rebuild Vorgang abgeschlossen wurde. In dem Moment in dem das Betriebssystem jedoch die Swap Partition mountet wird es ein nicht synchronisiertes Raid vorfinden und unter umständen stehen bleiben.

2. Situation

Haben Sie ein Raid-1 mit einer hotspare Festplatte eingerichtet, wird die hotspare Festplatte beim Ausfall einer aktiven Festplatte wie gewünscht einspringen. Das System verwendet nun auch die Swap Partition der Hotspare Festplatte. Bei einem rebuild der greift das System jedoch auf den Cache der Partitionen zu den eine Swap Partition leider nicht hat. Somit würde ein rebuild aller Daten Partition erfolgreich verlaufen, die Swap Partition wäre anschließend jedoch unbrauchbar.

Bei den genannten Probleme gehen keine Daten verloren, jedoch wären solche Probleme bei einem System auf das man keinen physikalischen Zugriff hat tödlich. Wurden jedoch auf beiden Datenträger zwei unabhängige Swap Partition angelegt, so nutz das System diese default mäßig als Raid-0 Swap Partition. Man kann die Nutzung der Swap Partition jedoch auch priorisieren. Mögliche Werste sind 0 – 32767. Je höher der Wert, desto höher die Priorität.

/dev/hda2 swap swap defaults,pri=5    0 0
/dev/hdd2 swap swap defaults,pri=1    0 0

Die Partitionierung ist im Detail in den folgenden Screenshots beschrieben. Es wurde jedoch nur eine Festplatte ausführlich Partitioniert, für die zweite sind die gleichen Schritte notwendig.

[nggallery id=3]

Nachdem das System installiert ist, sind noch zwei Änderungen notwendig.

Sollte eine Festplatte ausfallen, sollte man das System ohne großen Aufwand von der zweite Festplatte starten könne. Achten Sie daher darauf, dass in der Bootreihenfolge die Festplatte auch direkt hintereinander aufgeführt sind.

Nun muss noch die /boot/grub/menu.lst angepasst werden, damit auch beide Festplatten zum booten angeboten werden. Kopieren Sie dazu den bereits existierenden Booteintrag und fügen diesen erneut ein. Anschließend ändern Sie die Festplattenummer.

debian_raid1_34

Nun definieren Sie noch den zweiten Eintrag als fallback. Sollte grub das System nicht über den ersten Eintrag booten können, wählt es automatisch den zweiten aus.

debian_raid1_36

Nachträglich Einrichtung eines RAID-1

Wurde ein System mit nur einer Festplatte installiert und soll nun auf ein Software Raid-1 umgestellt werden, so ist dies ohne weiteres möglich.

Als müssen die Notwendigen Pakete installiert werden.

apt-get install mdadm rsync

Anschließend werden die Partitionsinformationen benötigt. Diese bekommt man mit Hilfe von cfdisk heraus.

cfdisk /dev/hda

debian_raid2_1

Nun erstellen wir auf der Festplatte /dev/hdd Partitionen mit der gleichen Größe.

cfdisk /dev/hdd

debian_raid2_2

Jetzt wird aus dieser einen Platte ein Raid Verbund erstellt wobei wir mdadm mitteilen, dass noch eine Festplatte fehlt. Anschließend erstellen wir ein ext3 Dateisystem

mdadm --create /dev/md0 --level 1 --raid-devices=2 missing /dev/hdd1
mkfs.ext3 /dev/md0

debian_raid2_3debian_raid2_5

Sie können über

cat /proc/mdstat

sich auch den Status eine Raids anschauen.

debian_raid2_4

Nun muss noch die /etc/fstab angepasst werden. Geändert werden muss /dev/hda1 in /dev/md0 sowie eine neue Zeile, die für die zweite Swap Partition eingefügt werden muss.
An dieser Stelle sollte die /boot/grub/menu.lst ebenfalls angepasst werden, damit auch beide Festplatten zum booten angeboten werden. Kopieren Sie dazu den bereits existierenden Booteintrag und fügen diesen erneut ein. Anschließend ändern Sie die Festplattenummer sowie die Festplatten Bezeichnung. Beachten Sie, dass der erste Booteintrag bei einem Neustart ausgewählt wird. Dieser muss jedoch auf /dev/md0 verweisen was bis jetzt nur die Festplatte /dev/hdd beinhaltet und was bedeutet, dass es root (hd1,0) heißen muss. Haben Sie direkte Zugriff auf den Server können Sie die Boot Einträge direkt passend eintragen und beim Neustart manuell den für /dev/md0 auswählen

debian_raid2_7 debian_raid2_8

… nun teilen wir mdadm noch die aktuelle Konfiguration mit

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

debian_raid2_9

Nachdem das Gerät /dev/md0 nun verfügbar ist, mounten wir dieses und kopieren alle Daten von /dev/hda1 nach /dev/md0 was wiederrum momentan lediglich auf /dev/hdd1 zeigt.

mkdir /mntroot
mount /dev/md0 /mntroot
rsync -auHxv --exclude=/proc/* --exclude=/sys/* --exclude=/mntroot/ /* /mntroot/
chmod 555 /mntroot/proc

debian_raid2_6 debian_raid2_10 debian_raid2_11

Nun steht einem Reboot nichts mehr im Wege.

Sobald das System wieder oben ist, passen Sie die Partitionstabelle der ersten Festplatte an und fügen diese anschließend dem Raidverbund hinzu.

cfdisk /dev/hda
mdadm /dev/md0 -a /dev/hda1

debian_raid2_12 debian_raid2_13

Es kann sein, dass die Anzeige nach diesem Befehl stehen bleibt. Drücken Sie in diesem Fall 1x [Enter]

Den Status des Rebuild Vorgangs können Sie natürlich auch anschauen

mdadm --detail /dev/md0

debian_raid2_14

Vergessen Sie nicht die Einträge in der /boot/grub/menu.lst zu korrigieren, wenn Sie diese temporär anders definieren mussten!

Christian Scholz

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2013, LPIC 1-3) tätig. Abgeschlossenes Studium zum Bachelor of Science der Wirtschaftsinformatik an der FOM. Aktuell im Projektmanagement tätig.


    • daniel ultralord
    • 9. Jan. 2010 1:16am

    absoluter top beitrag! hat mir sehr geholfen

  1. Top! Sogar mit Bildern! Schade das erst jetzt entdeckt. Obwohl es bei mir auch relativ problemlos klappte.

  1. Noch keine TrackBacks.


− sechs = 3

 
Execution time 0.14713907241821 seconds