Software Raid unter Linux

Bei den meisten Distributionen kann direkt bei der Installation eine Software Raid angelegt werden. Sehr praktisch ist dies wenn man nicht das Geld oder die Möglichkeiten hat ein Hardware-Raid zu implementieren.

Über ein cat /proc/mdstat kann man sich den aktuellen Status eines Array anschauen. Das ganze sieht dann folgendermaßen aus:

Personalities : [raid1]
md1 : active raid1 sdb1[1] sda1[0]
      104320 blocks [2/2] [UU]

md3 : active raid1 sdb2[1] sda2[0]
      8385856 blocks [2/2] [UU]

md2 : active raid1 sdb3[1] sda3[0]
      4192896 blocks [2/2] [UU]

md0 : active raid1 sdb4[1] sda4[0]
      148151360 blocks [2/2] [UU]

unused devices: <none>

Das hier gezeigte Raid Array befindet sich in einem optimalen Zustand, alle Bestandteile des Array sind up and running. Im Fehlerfall sieht das ganze dann so aus: (Anderer Rechner!)

cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10]
md1 : active raid1 hda14[0] sda11[2](F)
      2803200 blocks [2/1] [U_]

In diesem Fall ist die Platte/Partition sda11 gestorben/aus dem tritt geraten. Diese sollte nun entfernt und wieder hinzugefügt oder durch ein anderes Device ersetzt werden. Im ersten Fall muss man mit großer Wahrscheinlichkeit das System booten, ansonsten ist das Devie busy und läßt sich nicht aus dem Verbund lösen. Im zweiten Fall kann man einfach ein Ersatzdevice angeben und einbinden.

Im Fall zwei entfernt man das Device mit folgendem Befehl aus dem Verbund:

mdadm -r /dev/md1 /dev/sda11

ein.

Im Fall eins sollte das Device nach dem booten automatisch entfernt worden sein und man kann es mit folgenden befehl erneut hinzunehmen:

mdadm -a /dev/md1 /dev/sda11

in beiden Fällen sollte nach dieser Aktion ein Rebuild beginnen, welcher folgendermaßen aussieht:

Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10]
md1 : active raid1 sda11[2] hda14[0]
      2803200 blocks [2/1] [U_]
      [>....................]  recovery =  4.7% (132096/2803200) finish=1.0min #speed=44032K/sec

Ist der Rebuild abgeschlossen kann das Array wieder benuzt werden.

Hinweis: Das erneute hinzufügen einer Platte sollte nur dann passieren, wenn man sich sicher ist, das diese nicht wirklich defekt ist. Bei der hohen Belastung des Rebuilds ist es nicht unmöglich, das die zweite Platte ebenfalls ausfällt. Generell ersetzt gerade ein Softwareraid keine Datensicherung und es ist auch kein 100%tiger Schutz gegen Hardwareausfälle! Ein günstiges Hardwareraid aber auch nicht.