Howto: Rebuild eines Linux Software-RAIDs

Posted on the September 12th, 2007 under howtos by matthias

Software-RAIDs unter Linux sind eine kostengünstige und flexible Möglichkeit den Speicher eines Servers redundant auszulegen. Doch wie tauscht man eine defekte Platte im Fall der Fälle aus? Hier gibt es einige Schritte zu befolgen, um sein RAID wieder zum Laufen zu bekommen.

Im folgenden Beispiel haben wir ein RAID1 mit den Laufwerken /dev/sda und /dev/sdb. Die Festplatten sind in drei primäre Partitionen unterteilt:

[sourcecode language="css"]/dev/sdX1 /boot
/dev/sdX2 swap
/dev/sdX3 /[/sourcecode]
Folglich haben wir 2 RAID Arrays (Swap im RAID1 macht wenig Sinn):
[sourcecode language="css"]/dev/md0 /boot
/dev/md1 /[/sourcecode]

In unserem Beispiel fällt die zweite Festplatte – /dev/sdb – aus. Um einen Ersatz einzubauen, nehmen wir zuerst die defekte Platte aus dem laufenden RAID Array:

[sourcecode language="css"]mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md1 -r /dev/sdb3[/sourcecode]

Danach können wir die defekte Platte austauschen (evtl. muss das System heruntergefahren werden). Nach dem Wechsel müssen wir das Partitionslayout auf die Ersatzplatte spielen. In unserem Beispiel ist dies recht einfach, da wir keine erweiterten Partitionen haben:

[sourcecode language="css"]dd if=/dev/sda of=/dev/sdb bs=512 count=1[/sourcecode]

Hiermit kopieren wir den MBR (Größe = 512 Byte) auf die neue Festplatte. Handelt es sich bei dem Festplattenschema um ein Konstrukt mit erweiterteten Partitionen, müssen diese zusätzlich einzeln angelegt werden. Hierzu schauen wir uns mit fdisk das Partitionsschema an:

[sourcecode language="css"]fdisk -ul /dev/sda[/sourcecode]

Wir merken uns die Startwerte der erweiterteten Partitionen und übergeben diesen Wert an die Parameter skip und seek von dd:

[sourcecode language="css"]dd if=/dev/sda of=/dev/sdb count=1 skip=STARTWERT seek=STARTWERT[/sourcecode]

Nachdem wir das Partitionslayout komplett übernommen haben, teilen wir dies brav dem Kernel mit:

[sourcecode language="css"]blockdev –-rereadpt /dev/sdb[/sourcecode]
Jetzt können wir mit dem Rebuild des RAIDs beginnen:
[sourcecode language="css"]mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb3[/sourcecode]
Den Status kann man jederzeit aus der Datei /proc/mdstat auslesen, z.B. mit
[sourcecode language="css"]watch -n1 cat /proc/mdstat[/sourcecode]
Nun erstellen wir noch den Swapspace auf neuen Festplatte:
[sourcecode language="css"]mkswap /dev/sdb2[/sourcecode]
und hängen den Swapspace ins laufende System ein:
[sourcecode language="css"]swapon /dev/sdb2[/sourcecode]
Schon ist unser RAID wieder voll einsatzbereit.

|

27 Responses to 'Howto: Rebuild eines Linux Software-RAIDs'

  1. 12. September 2007 at 18:34
    mortice
  2. 12. September 2007 at 18:42
    matthias
  3. 12. September 2007 at 20:19
    Der Adminblogger
  4. 12. September 2007 at 21:33
    Stefan
  5. 12. September 2007 at 21:46
    Der Adminblogger
  6. 13. September 2007 at 07:22
    matthias
  7. 13. September 2007 at 13:39
    mortice
  8. 13. September 2007 at 15:22
    Craig
  9. 13. September 2007 at 15:55
    matthias
  10. 18. September 2007 at 12:42
    ChristianS
  11. 18. September 2007 at 13:33
    matthias
  12. 18. September 2007 at 23:54
    Stefan
  13. 19. October 2007 at 07:19
    Robert Kraus
  14. 11. April 2008 at 18:32
    Danu
  15. 12. April 2008 at 08:47
    matthias
  16. 12. April 2008 at 11:02
    Danu
  17. 12. April 2008 at 18:12
    matthias
  18. 12. April 2008 at 18:22
    Danu
  19. 12. April 2008 at 19:12
    matthias
  20. 01. May 2008 at 16:57
    bofh
  21. 20. June 2008 at 16:27
    Danu
  22. 24. September 2008 at 10:41
    HansM
  23. 14. January 2010 at 01:20
    shuron
  24. 02. April 2010 at 11:13
    Harry Klein
  25. 20. January 2011 at 23:22
    Stefan

Leave a Reply




XHTML::
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>