Inhaltsverzeichnis

Beispiel Software RAID 1

Voraussetzung

Mindestens zwei gleich große neue Festplatten, für RAID5 mindestens drei. In der Praxis besser mindestens eine mehr.

Zum Testen können auch zwei bzw. drei gleich große Partitionen auf derselben Festplatte genutzt werden.

Partitionierung

Partitionstabelle mit einer Partition anlegen

Vorsichtshalber betroffene Blockdevices wipen:

wipefs -af /dev/sdb

RAID Partitionen taggen

Bevorzugt mit gdisk, hier vereinfacht mit parted:

parted /dev/sdb set 1 raid on
parted /dev/sdc set 1 raid on
…
fdisk -l /dev/sd{b,c} | grep -i raid

→ gibt aus:

GPT Partitionstabelle
/dev/sdb1   2048 3907028991 3907026944  1.8T Linux RAID
…
/dev/sdc1   2048 3907028991 3907026944  1.8T Linux RAID

Pakete installieren

Debian (ab 9)

apt install mdadm

Autoerkennung auf none stellen.

CentOS (ab 8)

dnf install mdadm

RAID 1 anlegen

1)

mdadm --create /dev/md0 --level=1 --raid-devices=2 --assume-clean /dev/sdb1 /dev/sdc1
watch cat /proc/mdstat
mkfs.ext4 /dev/md0 

2)

mount -m /dev/md0 /mnt/md0
cp -a /usr/share/. /mnt/md0

Ausfall einer Platte simulieren

Platte entfernen

mdadm /dev/md0 --fail /dev/sdb1
cat /proc/mdstat
mdadm /dev/md0 --remove /dev/sdb1

→ Ergebnis:

cat /proc/mdstat
mdadm --detail /dev/md0
mdadm --query --examine /dev/sdb1

Wiederherstellen

mdadm /dev/md0 --add /dev/sdb1
cat /proc/mdstat

Wiederherstellen beschleunigen

Resync läuft mit angezogener Handbremse, um dem normalen I/O nicht im Weg zu sein. Aktuelle Werte auslesen:

sysctl dev.raid.speed_limit_min
sysctl dev.raid.speed_limit_max

Beschleunigen mit:

# 100000 bedeutet: mindestens mit 100.000 K/sec syncen, ohne Rücksicht
sysctl dev.raid.speed_limit_min=100000
# Niemals mit mehr als 200 MB/sec syncen
sysctl dev.raid.speed_limit_max=200000

→ Resync sollte jetzt schneller laufen:

watch cat /proc/mdstat

RAID entfernen

umount /mnt/md0
mdadm --stop /dev/md0
cat /proc/mdstat

RAID 1 aus einzelner Platte zusammensetzen

mdadm --assemble --force /dev/md0 /dev/sdb1
watch cat /proc/mdstat

Zweite Platte wieder hinzufügen:

mdadm /dev/md0 --add /dev/sdc1

Wieder mounten:

mount /dev/md0 /mnt/md0

RAID 1 zu RAID 5 erweitern

RAID 1 in RAID 5 konvertieren:

mdadm --grow /dev/md0 --level=5
mdadm --detail /dev/md0

Platte hinzufügen:

mdadm /dev/md0 --add /dev/sdd1
mdadm --detail /dev/md0

Raid Level : raid5

Active Devices : 2

Platte aktivieren:

mdadm --grow /dev/md0 --raid-devices=3
mdadm --detail /dev/md0

Active Devices : 3

watch cat /proc/mdstat

Dateisystem erweitern: 3)

resize2fs /dev/md0

Reboot/Wiederherstellung nach Crash beschleunigen: (zu Nachteilen siehe: https://raid.wiki.kernel.org/index.php/Write-intent_bitmap)

mdadm --grow --bitmap=internal /dev/md0

Platte ersetzen, bevor sie ausgefallen ist

mdadm /dev/md0 --add-spare /dev/sdb1
cat /proc/mdstat
mdadm /dev/md0 --replace /dev/sdb1
watch cat /proc/mdstat

Beschleunigen s.o.

Bestehendes System auf Software RAID 1 migrieren

Bestehendes System auf Software RAID 1 migrieren

Doku

1)
falls die Blockdevices zuvor schon verwendet wurden, sicherheitshalber:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
2)
alternativ:
mkfs.xfs /dev/md0
3)
bei XFS:
xfs_growfs /dev/md0
4)
alternativ:
rsync -a --del /tmp/system/ /mnt/md0