Softraid unter Gentoo einrichten

Je nach dem ob das zu verwendende Raidlevel bereits im Kernel fix einkompiliert wurde oder nicht kann man die Raidlevels natürlich nachladen.

modprobe dm_mod
modprobe raid5
modprobe raid0
usw.
modprobe dm_mod

Wir gehen hier von einem Raid5 mit 3 Festplatten für ein kleines Backupsystem aus. Hierfür müssen wir die Platten zuerst partitionieren und danach eine Gerätedatei anlegen.

cfdisk /dev/sdb
Als Partitionstyp "FD" (Linux raid autodetect) wählen. Danach erstellen wir
die Gerätedatei.
mknod /dev/md1 b 9 1

Mdadm installieren

emerge sys-fs/mdadm

Und das Raid initialisieren

mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Man kann dann mit folgenden Befehl den Fortschritt anzeigen.

watch cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid5 sdd1[3] sdc1[1] sdb1[0]
      976770048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [>....................]  recovery =  2.4% (11830528/488385024) finish=79.7min speed=99604K/sec
      
unused devices: <none>

Annahme ist ein Raid1 mit zwei SSD's. Eine davon ist ausgefallen. Sieht dann so aus: Bevor man z.B. eine neue Platte einbaut muss diese Partitioniert werden. Das macht man am einfachsten wenn man das Schema von der guten Platte auf die neue überträgt: Zuerst den GPT Partitiontable auf der Zielplatte mit Gparted anlegen.

sgdisk /dev/QUELLE -b save.gpt
sgdisk /dev/ZIEL -G -l save.gpt
Personalities : [linear] [raid0] [raid1] 
md127 : active raid1 sdc1[1]
      513984 blocks [2/1] [_U]
      
md1 : active raid1 sda1[0]
      513984 blocks [2/1] [U_]
      
md2 : active raid1 sda2[0]
      58099008 blocks [2/1] [U_]

Jetzt müssen wir das Raid reparieren. Zuerst löschen wir mal fehlerhafte Device:

mdadm --stop /dev/md127

Um nun die andere Festplatte wieder zu aktivieren muss man sie lediglich hinzufügen. Der Rest geht von alleine:

mdadm --add /dev/md1 /dev/sdc1
mdadm --add /dev/md2 /dev/sdc2

Danach kann man gut den Synchvorgang des Raids sehen:

cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] 
md1 : active raid1 sdc1[1] sda1[0]
      513984 blocks [2/2] [UU]
      
md2 : active raid1 sdc2[2] sda2[0]
      58099008 blocks [2/1] [U_]
      [>....................]  recovery =  0.2% (155584/58099008) finish=12.4min speed=77792K/sec

Auf der neuen Platte sollte man dann natürlich auch Grub schreiben:

grub-mkdevicemap
grub-install /dev/ZIEL