21x9.org | System Administration | Home Automation | Smart Home
05.02.2013

RAID: Festplatte ersetzen

Wie ich gestern ja bereits schrieb sind in dem Server der auch dieses Blog hostet gestern gleich 2 Festplatten gestorben, zum Glück hintereinander. Die erste Platte fing bereits am Sonntag an sich komisch zu benehmen, was ich jedoch erst am Montag erkannte. Die Platte war noch nicht automatisch aus dem RAID-Verbund herausgeworfen worden, hatte aber bereits gelegentliche Lese-Probleme. Also habe ich sie manuell aus dem RAID entfernt:

mdadm --manage /dev/md0 --fail /dev/sda1
mdadm --manage /dev/md1 --fail /dev/sda2
mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md0 --remove /dev/sda1
mdadm --manage /dev/md1 --remove /dev/sda2
mdadm --manage /dev/md2 --remove /dev/sda3

Bevor ich die Platte zum Austausch durch Manitu freigegeben habe wurde noch sichergestellt dass grub auch von der noch verbliebenen Platte starten konnte:

update-grub
grub-install /dev/sdb

Hier sollte überprüft werden, ob die Angaben für das root-Filesystem auf die korrekte Festplatte/Partition verweist. Bei mir wollte dies mit grub-legacy nicht klappen, ein schneller Umstieg auf grub2 bzw. grub-pc funktionierte dann Problemlos.

Mit hdparm noch schnell Bezeichnung und Seriennummer kopiert und zu Manitu geschickt:

hdparm -i /dev/sda

Nachdem die neue Platte verfügbar war musste diese für das RAID vorbereitet werden, hier ist es sehr wichtig, dass die Partitionen der neuen Platte exakt mit denen auf der alten Platte übereinstimmen. Dies kann man leicht automatisch erledigen lassen:

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

Mit Hilfe von fdisk -l kann geprüft werden ob alles korrekt funktioniert hat, die Partitionen von /dev/sda müssten nun exakt mit denen von /dev/sdb übereinstimmen:

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63    16787924     8393931   fd  Linux raid autodetect
/dev/sda2        16787925    18892439     1052257+  fd  Linux raid autodetect
/dev/sda3        18892440  1953520064   967313812+  fd  Linux raid autodetect

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    16787924     8393931   fd  Linux raid autodetect
/dev/sdb2        16787925    18892439     1052257+  fd  Linux raid autodetect
/dev/sdb3        18892440  1953520064   967313812+  fd  Linux raid autodetect

Nun kann das RAID wieder zusammengesetzt werden:

mdadm --manage /dev/md0 --add /dev/sda1
mdadm --manage /dev/md1 --add /dev/sda2
mdadm --manage /dev/md2 --add /dev/sda3

Je nach RAID-Partitionen kann es natürlich mehr oder wenig /dev/md*-Geräte und Partitionen geben. Mit cat /proc/mdstat kann man den Erfolg überprüfen:

Personalities : [raid1] 
md2 : active raid1 sdb3[2] sda3[0]
      967313728 blocks [2/1] [U_]
        resync=DELAYED

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

md0 : active raid1 sdb1[2] sda1[0]
      8393856 blocks [2/1] [U_]
      [###>.........]  recovery = 59.3% (4980864/8393856) finish=1.3min speed=43548K/sec

unused devices: <none>

Wie man an den Zeilen 3, 7 und 11 ([U_]) sieht ist in dem RAID immer noch nur eine Platte aktiv, aber es steht ein resync an oder wird gerade durchgeführt (Zeilen 4, 8 und 12). Auf den Geräten md1 und md2 wird auf den resync noch gewartet, da immer nur ein RAID-Gerät einen Resync durchführen kann. Ist der Resync auf md0 fertig wird automatisch der Resync von md1 durchgeführt, und so weiter:

Personalities : [raid1] 
md2 : active raid1 sdb3[2] sda3[0]
      967313728 blocks [2/1] [U_]
        resync=DELAYED

md1 : active raid1 sdb2[2] sda2[0]
      1052160 blocks [2/1] [U_]
      [#####>...........]  recovery = 45.3% (477440/1052160) finish=0.1min speed=47744K/sec

md0 : active raid1 sdb1[1] sda1[0]
      8393856 blocks [2/2] [UU]

unused devices: <none>

Je Größer die Partition ist um so länger dauert der Resync. Unter Umständen kann dieser mehrere Stunden oder sogar Tage dauern. Geht hierbei die Platte mit den Daten kaputt ist das RAID verloren, sofern es nicht noch aus weiteren Spiegelplatten besteht. Bei mir wäre dies ja fast der Fall gewesen. Auch wenn es den Resync verlangsamt sollte man also noch einmal einen Blick über seine Backupdaten werden und ggf. noch einige Daten zusätzlich auf einem anderen Gerät speichern. Meine Datenplatte hat zum Glück dann noch lange genug durchgehalten um das RAID noch einmal vollständig zu syncen. Jetzt sind 2 neue Platten verbaut und der hoffentlich letzte Sync für lange Zeit ist in etwa 420 Minuten fertig.

Tags: imported

Tags

imported

Feeds

Atom 1.0 RSS JSON
  • Datenschutz
  • Impressum
  • Archiv