Linux defektes Software RAID reparieren – defekte Festplatte tauschen

terminal-icon

Anleitung zum Tausch einer defekten Festplatte in einem Software RAIDController unter Linux

RAIDs sind eine tolle Sache um sich gegen Totalausfälle bei Festplattencrashes zu schützen, indem eine Platte auf die andere gespiegelt wird. Unter Linux ist es mit wenig Aufwand möglich ein Software Raid einzurichten ohne einen RAID Controller zu benötigen. Fällt Festplatte eins aus übernimmt in der Regel Festplatte zwei. Dieses Raid1 System kommt auf den meisten dedizierten Webservern zum Einsatz. Es können natürlich verschiedene Varianten von RAIDs konfiguriert werden, das würde aber diesen Artikel sprengen.

Ich möchte hier darauf eingehen was grundsätzlich zu tun ist wenn einmal eine Festplatte ausfällt und es zu Problemen mit dem Software RAID bzw. der Festplatten kommt.

Software Raid Status überprüfen

Mit folgendem Befehl wird der Status des Software Raids unter Linux überprüft:

cat /proc/mdstat

Ausgabe von einem „gesunden“ RAID1. Die Darstellung [UU] zeigt den erfolgreichen Status beider verfügbarer Devices an:

Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
      1847608639 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sda3[0] sdb3[1]
      1073740664 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      524276 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      8387572 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Defekter Raid Status auf einer oder mehreren Partitionen

Hier ein Weg zur Analyse der Probleme, um keine Fehler zu machen:

cat /proc/mdstat

Ausgabe:

Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
      1843414335 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0] sdb3[1](F)
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1](F)
      524276 blocks super 1.2 [2/1] [U_]

md0 : active (auto-read-only) raid1 sda1[0] sdb1[1]
      12581816 blocks super 1.2 [2/2] [UU]

unused devices: <none>

Die Ausgabe zeigt an, dass md0 in Ordnung ist und md1, md2, md3 Probleme haben. Das (F) markiert die entsprechenden Devices als Failed.

S.M.A.R.T Status der Festplatten überprüfen:

So kann man den SMART Status der Festplatten abfragen.

Schlägt der Smart Check fehl, dann sollte die Festplatte als defekt angesehen werden und es ist dringend empfohlen diese durch eine neue Platte auszutauschen. Amazon* bietet hier eine gute und vor allem günstige Auswahl.

Defekte Festplatte aus dem RAID entfernen

Damit die Festplatte aus dem RAID entfernt werden kann, sollte diese zuvor sauber aus dem RAIDVerbund entfernt werden. In unserem Beispiel ist die defekte Festplatte sda mit der Partition sda1 nur noch mit md0 verbunden. Dieses sollte nun noch entfernt werden:

Dazu wird im ersten Schritt die Partition auf „fail“ gesetzt:

mdadm --manage /dev/md0 --fail /dev/sdb1

Ein weiterer Aufruf von /proc/mdstat sollte nun folgende Ausgabe anzeigen:

cat /proc/mdstat

Ausgabe:

Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1](F)
      1843414335 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0] sdb3[1](F)
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1](F)
      524276 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0] sdb1[1](F)
      12581816 blocks super 1.2 [2/2] [U_]

unused devices: <none>

Alle Devices sind nun mit einem (F) als Fail markiert. Die Partitionen müssen nun einzeln aus dem RAID Verbund entfernt werden:

mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md1 -r /dev/sdb2
mdadm /dev/md2 -r /dev/sdb3
mdadm /dev/md3 -r /dev/sdb4

Ein erneuter Aufruf von /proc/mdstat sollte nun die Partitionen ohne einem (F) anzeigen weil nur mehr eine Festplatte im Raid verwendet wird.

Defekter Raid Status [U_] auf allen Partitionen

Wenn der Status wie hier bei allen Partitionen auf [U_] oder [_U] steht, ohne mit einem (F) markiert zu sein, kann die defekte Festplatte getauscht werden.

cat /proc/mdstat

Ausgabe:

Personalities : [raid1]
md3 : active raid1 sda4[0]
      1843414335 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0]
      1073740664 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0]
      524276 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0]
      12581816 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Der „degraded“ Raid Status könnte im Detail wie folgt aussehen:

mdadm --detail /dev/md0

Ausgabe:

/dev/md0:
        Version : 1.2
  Creation Time : Tue Dec  4 11:06:41 2012
     Raid Level : raid1
     Array Size : 12581816 (12.00 GiB 12.88 GB)
  Used Dev Size : 12581816 (12.00 GiB 12.88 GB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Thu Jul 11 10:36:08 2013
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : rescue:0
           UUID : 41488824:9fe70d56:29797b88:18dae177
         Events : 452

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       0        0        1      removed

Die letzten beiden Zeilen zeigen an, dass nur mehr eine Festplatte (/dev/sda1) im Raid erkannt wird. Die zweite Platte wird als „removed“ markiert.

Im nächsten Schritt sollte man sich anzeigen lassen welche Festplatten vom System wirklich noch erkannt werden:

cat /proc/partitions

Ausgabe:

major minor  #blocks  name

   8        0 2930266584 sda
   8        1   12582912 sda1
   8        2     524288 sda2
   8        3 1073741824 sda3
   8        4 1843415495 sda4
   8        5       1024 sda5
   9        0   12581816 md0
   9        1     524276 md1
   9        2 1073740664 md2
   9        3 1843414335 md3

Die Ausgabe zeigt nur noch eine Festplatte (sda) an. Normalerweise sollte hier ein zweite Festplatte angezeigt werden (sdb). Das bedeutet also, dass die zweite Festplatte defekt ist und ersetzt werden sollte. Auf einem gemieteten, dedizierten Root Server sollte nun vom entsprechenden Provider ein Tausch der Festplatte organisiert werden. Diese bieten meist ein Formular im Support Bereich an.

Wenn es den eigenen Rechner bzw. Server betrifft, sollte eine neue Festplatte angeschafft werden. Idealerweise in der selben Größe, wie die defekte bzw. die gute Disk. Amazon* bietet hier eine gute und vor allem günstige Auswahl.

Neue Festplatte nach dem Tausch in den Raid einbinden

Sobald die Festplatte getauscht wurde sollte erneut „cat /proc/partitions“ ausgeführt werden um die neue Platte zu sehen. Eine neue sdb Festplatte sollte nun erscheinen. Anschließend müssen die Partitionen der funktionierenden RAID Festplatte 1:1 auf die neue Festplatte übertragen werden. Dies geschieht, je nach verwendeter Partitionstabelle (MBR oder GUID) unterschiedlich.

cat /proc/partitions

Ausgabe:

major minor  #blocks  name

   8        0 2930266584 sda
   8        1   12582912 sda1
   8        2     524288 sda2
   8        3 1073741824 sda3
   8        4 1843415495 sda4
   8        5       1024 sda5
   8       16 2930266584 sdb
   9        0   12581816 md0
   9        1     524276 md1
   9        2 1073740664 md2
   9        3 1843414335 md3

A: Partitionen kopieren mit GUID (GPT)

Wenn die GUID Partitionstabelle verwendet wird, kann das Tool sgdisk verwendet werden. Wer es noch nicht auf seinem System hat, kann es bequem via apt-get installieren (Unter den gängigsten Linux Distributionen sollte das gdisk Paket verfügbar sein):

apt-get install gdisk

Partitionen von sda auf sdb kopieren. Bitte unbedingt die Reihenfolge beachten! (sgdisk -R Zielsystem Quellsystem):

sgdisk -R /dev/sdb /dev/sda

Der Vorgang dauert in der Regel nur wenigen Sekunden. Nun muss für die Platte noch eine neue zufällige UUID generiert werden:

sgdisk -G /dev/sdb

B: Partitionen kopieren mit MBR

Wer die MBR Partitionstabelle verwendet, kann das Tool fsdisk verwendet. (sollte auf jeden System installiert sein)

Partitionen von sda auf sdb kopieren. Bitte unbedingt die Reihenfolge beachten! (sfdisk -d Quellsystem | sfdisk Zielsystem):

sfdisk -d /dev/sda | sfdisk /dev/sdb

Partitionstabelle vom Kernel neu einlesen:

sfdisk -R /dev/sdb

Partitionierung überprüfen:

cat /proc/partitions

Ausgabe:

major minor  #blocks  name

   8        0 2930266584 sda
   8        1   12582912 sda1
   8        2     524288 sda2
   8        3 1073741824 sda3
   8        4 1843415495 sda4
   8        5       1024 sda5
   8       16 2930266584 sdb
   8       17   12582912 sdb1
   8       18     524288 sdb2
   8       19 1073741824 sdb3
   8       20 1843415495 sdb4
   8       21       1024 sdb5
   9        0   12581816 md0
   9        1     524276 md1
   9        2 1073740664 md2
   9        3 1843414335 md3

Die beiden Festplatten sda und sdb zeigen nun wieder die gleichen Partitionsgrößen an und können somit für den RAID verwendet werden.

Neue Partitionen in den RAID einbinden

Da nun wieder alle Partitionen vorhanden sind, können diese in den Raid zurück eingebunden werden. Jede Partition einzeln, in diesem Fall für sdb:

mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2
mdadm /dev/md2 -a /dev/sdb3
mdadm /dev/md3 -a /dev/sdb4

Die Partitionen werden nun nach der Reihe synchronisiert. Der Vorgang kann je nach verwendeten Daten einige Zeit in Anspruch nehmen, läuft aber automatisch im Hintergrund ab. Ein Status kann allerdings jederzeit abgefragt werden:

cat /proc/mdstat

Ausgabe:

Personalities : [raid1]
md3 : active raid1 sdb4[2] sda4[0]
      1843414335 blocks super 1.2 [2/1] [U_]
      [==>..................]  recovery = 10.2% (188885184/1843414335) finish=255.5min speed=107885K/sec

md2 : active raid1 sdb3[2] sda3[0]
      1073740664 blocks super 1.2 [2/1] [U_]
        resync=DELAYED

md1 : active raid1 sdb2[2] sda2[0]
      524276 blocks super 1.2 [2/1] [U_]
        resync=DELAYED

md0 : active raid1 sdb1[2] sda1[0]
      12581816 blocks super 1.2 [2/2] [UU]

unused devices: <none>

GRUB Bootloader neu installieren

Der Grub Bootloader muss noch auf der ausgetauschten Festplatte verankert werden. Hierfür genügt ein simpler Befehl:

grub-install /dev/sdb
Linux defektes Software RAID reparieren - defekte Festplatte tauschen, 5.0 out of 5 based on 6 ratings
GD Star Rating
loading...
Patrick Schoyswohl

Patrick Schoyswohl

Systemadministrator
Hallo, mein Name ist Patrick Schoyswohl und ich bin Systemadministrator in einer Agentur für neue Medien und seit 2009 Betreiber und leidenschaftlicher Blogger von SysADMINsLife.com. Meine Leidenschaft gehört den Webservern und der Serverüberwachung auf Open-Source Basis. Falls du gefallen an meinen Artikel hast, kannst du mir gerne auf Google+, Facebook oder Twitter folgen.
Patrick Schoyswohl
Making Sites Uber Fast! Yeah @filiwiese #seokomm https://t.co/avT4fU6pZw - 3 Monaten ago
Patrick Schoyswohl

Tags: , , ,

Dienstag, 06. August 2013 Debian, Hardware, Linux, Linux Mint, Mint, Ubuntu Author: Patrick Schoyswohl

1 Kommentar zum Thema Linux defektes Software RAID reparieren – defekte Festplatte tauschen

  • Justus Wingert sagt:

    Danke für diese äußerst nützlichen Ausführungen! Hat mir einiges an googlen erspart 😉

    Gruß,
    Justus

  • Leave a Reply

    Werbung schalten

    *=Affiliatelink

    Blogverzeichnis - Blog Verzeichnis bloggerei.de