Skip to content

RAID

Habe günstig einen Stapel alte 1TB-Festplatten abgestaubt. Zu groß zum einfach Wegwerfen, zu klein, um damit was Sinnvolles zu tun. Also, was liegt näher als aus vier davon ein RAID5 zu bauen...? ;-)

Mein Gentoo auf dem Desktop ist mittlerweile 10 Jahre oder noch älter, hat drei Rechnerumzüge mitgemacht und eine Umstellung von 32 auf 64 Bit. Es ist mittlerweile so kaputt konfiguriert, dass die Hälfte nicht mehr funktioniert und Updates werden zunehmend schwerer, da die Melange aus installierten Pakete, Use-Flags und Unstables sich gegenseitig blockiert. Also werde ich in dem Zuge auch gleich mal das System einer Frischzellenkur unterzeihen, sprich: Neu kompilieren.

Gesagt, getan.

Es gibt diverse HowTos, die einem zu erzählen versuchen, wie man ein Software-Raid unter Linux, speziell unter Gentoo, baut. Einige sind konfus, andere sehr straight forward. Allen gemeinsam ist, sie widersprechen sich gegenseitig. Deswegen hier meine Erfahrungen:

Als erstes nehme ich vier 1TB Platten und paritioniere alle gleich:
fdisk -l /dev/sd?

Disk /dev/sda: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb77ba384

Gerät Boot Start Ende Blocks Id System
/dev/sda1 2048 20973567 10485760 fd Linux raid autodetect
/dev/sda2 20973568 1953525167 966275800 5 Extended
/dev/sda5 20975616 29364223 4194304 82 Linux swap / Solaris
/dev/sda6 29366272 1953525167 962079448 fd Linux raid autodetect

[..Drei weiter, die genau so aussehen..]

Dann erstelle ich in den sd?1-Partitionen ein RAID1 für /boot und in den sd?6-Partitionen ein RAID5 für /.
mdadm --create /dev/md0 --level=1 --metadata=0.90 --raid-disks=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm --create /dev/md1 --level=5 --metadata=1.2 --raid-disks=4 /dev/sda6 /dev/sdb6 /dev/sdc6 /dev/sdd6
mkfs.ext2 /dev/md0
mkfs.ext4 /dev/md1
mdadm --detail --scan >> /etc/mdadm.conf

(Bei der Erstellung des ext4 für / sollte man noch ein wenig fine-tuning betreiben. Ich habe für meine Konfiguration folgende Werte gewählt, die hoffentlich sinnvoll sind: RAID stride 128, RAID stripe width 384. Keine Ahnung, das ist mein erstes RAID. ;-) Irgendwo hatte ich eine Anleitung gefunden, wie man das berechnet, aber meine Browser-History ist gerade unkooperativ!)

Dann geht es erst mal weiter mit der normalen Gentoo-Installation, wobei ich zusätzlich das genkernel-Paket installiere und genkernel --mdadm --install initramfs ausführe.

Der größte Knackpunkt war die Installation des Bootloaders. Ich bin ja der letzte Mensch auf Erden, der noch immer LILO benutzt. Meine /etc/lilo.conf sieht folgendermaßen aus:
lba32
boot=/dev/sda
prompt
timeout=100
#bitmap=/boot/binsen.bmp
compact

vga=0x03d2

image = /boot/bz-3.14.14
root=/dev/md1
label=RAID
read-only
initrd = /boot/initramfs-genkernel-x86_64-3.14.14-gentoo
append = "domdadm rootfstype=ext4 root=/dev/md1"

Kann man ja nicht ahnen, dass man im append auch noch mal md1 als Root-Partition angeben muss! ;-)

Bis auf diesen Umstand, der mich kurzzeitig in den Wahnsinn getrieben hat, hat das Ganze erschreckend einfach funktioniert. Was die Geschwindigkeit angeht, hatte ich ja keine Wunder erwartet: Nicht nur dass der Rechner alt und somit nicht mehr der Schnellste ist, die Platten sind es auch. Lineares Lesen und Schreiben im ext4 liegen so bei 140-180 MB/s, das ist schon ganz ordentlich, finde ich. (Jaja, moderne Platten schaffen selber schon 100 MB/s - angeblich, ich habe kein - aber für die fünf Jahre alten Dinger? Ganz OK, denke ich.

Außerdem war Geschwindigkeit nicht unbedingt der Grund, weshalb ich mir ein RAID5 gebaut habe: Ich brauchte einen großen, zusammenhängenden Speicherbereich, der gleichzeitig eine gewisse Ausfallsicherheit bereitstellt. Wie gesagt, ich verwende hier keine neuen Platten; wenn jetzt eine zwischendurch die Flügel streckt, habe ich zumindest eine gewisse Redundanz. (Wichtige Daten landen natürlich weiterhin zusätzlich auf der externen Backup-Platte und dem NAS. Schließlich bin ich ja paranoid! ;-))

Fazit: Wusste nicht, dass die Einrichtung so simpel ist und sowas Simples wie der Bootvorgang so nervig. (Und wer jetzt sagt, ich hätte lieber mal Grub benutzt: Habe ich zwischendurch auch versucht, hat aber nichts gebracht. Jetzt, wo ich weiß, dass der Kern gerne noch ein zusätzliches root= hätte, würde das wahrscheinlich genau so funktionieren.)