schlittermann

Software-RAID ohne Manpage

Mal wieder eine unvollständige Anleitung zum Selberbauen... Und auch wie immer der unvermeidliche Hinweis auf Google und die Manual-Seiten

RAID?

Durch Software-Raid-Treiber unter Linux ist Raid möglich, ohne einen speziellen RAIDcontroller zu nutzen. Ein normaler (möglichst schneller) IDE bzw. besser noch SCSI-Controller tut's auch.

(Wir nutzen z.B. die auf vielen Boards vorhandenen Promise-Raid-Controller dafür (also eben den Controller einfach als schneller IDE-Controller, die Platten hängen einzeln als "Stripe-Sets" dran.))
    
    Block-Devices
	/dev/hda1 /dev/hdc1  ...
	    \       |       /
	     \      |      /		mkraid
	      \     |     /
	       [ /dev/md0 ]		neues Blockdevice


    

Kurz und Bündig

    
    $ su -
    $ Password:
    # vi /etc/raidtab  (s.u.)
    # mkraid /dev/md0
    # raidstart
    # mke2fs -j /dev/md0
    # mount /dev/md0 /data
    # _

    

Etwas länger

Zu Beginn

Damit die Raid-Treiber wissen, wer eigentlich alles mit zum Raid-Device gehört, muß eine /etc/raidtab-Datei vorhanden sein und die gewünschte Konfiguration beschreiben:
    
    # /etc/raidtab
    raid-device /dev/md0
	raidlevel 1
	nr-raid-disks 2
	nr-spare-disks 1
	chunk-size 4
	persistent-superblock 1

	device /dev/hda1
	    raid-disk 0
	device /dev/hdc1
	    raid-disk 1
	device /dev/hdd1
	    spare-disk 0

    

Die Devices müssen Partitionen (Partitionstype "FD") sein, oder einfach ganze Platte. Sie sollten alle die gleiche Größe haben.

mkraid

Raid-Device anlegen
mkraid /dev/md0

Das war's eigentlich dann schon. In /proc/mdstat kann man den aktuellen Status des Raids sehen. Also einfach cat /proc/mdstat, oder, wenn man's kontinuierlich sehen möchte: watch cat /proc/mdstat.

Unmittelbar nach dem Anlegen sollte zu erkennen sein, daß das Raid syncronisiert wird.

raidsetfaulty

Zu Testzwecken kann mit raidsetfaulty ein Plattenfehler simuliert werden. Es wird eine eventuell vorhandene Hot-Spare aktiviert (syncronisiert).

Fehlerstatus setzen
raidsetfaulty /dev/md0 /dev/hdc1

Nützlich ist das auch, wenn auf einer Platte mehrere Partitionen in unterschiedlichen Raiddevices verwendet werden, aber bisher der Kernel nur den Ausfall einer dieser Partitionen bemerkt hat.

raidhotremove/raidhotadd

Das logische entfernen und hinzufügen von Devices ist mit diesen Tools möglich. (Natürlich sollten die Platten dann auch physisch ausgetauscht werden.)
Entfernen
raidhotremove /dev/md0 /dev/hdc1
Hinzufügen
raidhotadd /dev/md0 /dev/hdc1

Schluß

Und natürlich ist das kein Ersatz für die vorzüglichen HOWTOs und FAQs zum Thema...