Demonstration:
Linux Software RAID 1
Muliple Devices, so der Name des "Software RAID" Projektes im Linux Kernel, gestattet uns, mehrere Blockgeräte (also z.B. Partitionen von Festplatten) zu einem logischen Blockgerät zu kombinieren. Hierbei stehen mehrere Modi wie etwa RAID 0, RAID 1 und RAID 5 zur Auswahl.
Ich möchte mit Ihnen nun ein solches RAID-1 Blockgerät erzeugen und einrichten:
Live-Demo 1: RAID 1 aus zwei IDE-Partitionen
- Loggin via ssh auf einem Rechner mit zwei IDE Festplatten
- Ein Blick in die Partitionstabellen: fdisk -l /dev/hda /dev/hdc
- Partitionen vom Typ 0xfd: Linux Softraid Autodetect
- cat /proc/mdstat oder "wie fühlen wir uns heute?"
- Übersicht ist alles: /dev/md5 entsteht aus /dev/hda5 und /dev/hdc5
- mdadm --create /dev/md5 --level=1 --raid-devices=2 /dev/hda5 /dev/hdc5
- Persistenter Superblock am Ende von hda5 und hdc5 macht es möglich: Beim nächsten Booten entseht /dev/md5 ganz von alleine!
- Gentlemen Agreement: hda5 und hdc5 dürfen wir jetzt nur noch via /dev/md5 verwenden!
- cat /proc/mdstat: Die beiden Partitionen werden gerade synchronisiert. Wir können /dev/md5 trotzdem bereits verwenden!
- mke2fs /dev/md5
- mount /dev/md5 /mnt
- Testdatei erzeugen: date > /mnt/testdatei
- cat /proc/mdstat: Unser Raid sollte nun synchronisiert sein.
- Notfall simulieren: mdadm /dev/md5 -f /dev/hdc5; cat /proc/mdstat
- Defekte Partition aus dem RAID entfernen: mdadm /dev/md5 -r /dev/hdc5
- Jetzt sollte die Platte ersetzt werden. In unserer Simulation verwenden wir stattdessen einfach eine andere Partition
- mdadm /dev/md5 -a /dev/hdc6
- Unser RAID besteht nun aus den Partitionen /dev/hda5 und /dev/hdc6
- cat /proc/mdstat: Daten von hda5 auf hdc6 kopieren
- cat /mnt/testdatei: Die Daten sind noch alle da!
- mdadm als Überwachungsdämon: Bei Ausfall einer Platte wird eine Mail an den Administrator gesendet!
Live-Demo 2: RAID 1 aus einer Floppy und einer Datei
- dd if=/dev/zero of=/tmp/datei bs=1k count=1440
- losetup /dev/loop0 /tmp/datei
- Floppy einlegen
- mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop0 /dev/fd0
- mke2fs /dev/md0
- mount /dev/md0 /mnt
- date > /mnt/testdatei
- cat /proc/mdstat
- Floppy entfernen!
- date > /mnt/datei2; sync
- cat /proc/mdstat : Floppy "failed"
- mdadm /dev/md0 -r /dev/fd0
- Neue Floppy einlegen
- mdadm /dev/md0 -a /dev/fd0
- Wieder: ohne Datenverlust und ohne Systemausfall!