Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:raid

Beispiel Software RAID 1

Voraussetzung

Laufendes Linuxsystem auf einer Festplatte, zusätzliche mindestens gleich große zweite neue Festplatte.

Zum Testen können auch zwei Partitionen auf der selben Festplatte genutzt werden.

Partitionierung

Große Partition für RAID und kleine für Swap auf der zweiten Festplatte anlegen.

Vorsichtshalber betroffene Blockdevices wipen:

wipefs -af /dev/sda4

RAID Partition taggen

parted /dev/sda set 4 raid on
fdisk -l /dev/sda | grep -i raid

gibt aus:

/dev/sda4        63500288   126414847    31457280   fd  Linux raid autodetect

bzw.

/dev/sda4     851968  30212095 29360128    14G Linux RAID

Pakete installieren

Debian (ab 9)

apt install mdadm

Autoerkennung auf none stellen.

CentOS (8)

dnf install mdadm

RAID 1 anlegen

1)

mdadm --create /dev/md0 --level=1 --raid-devices=2 --assume-clean /dev/sda2 /dev/sda4
watch cat /proc/mdstat
mkfs.ext4 /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
cp -a /usr/share/. /mnt/md0

Ausfall einer Platte simulieren

Platte entfernen

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

→ Ergebnis:

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

Wiederherstellen

mdadm /dev/md0 --add /dev/sda2
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 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/vdd1
mdadm --detail /dev/md0

Raid Level : raid5Active Devices : 2 Platte aktivieren:

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

Active Devices : 3

watch cat /proc/mdstat

Dateisystem erweitern:

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/sda3
cat /proc/mdstat
mdadm /dev/md0 --replace /dev/sda2
watch cat /proc/mdstat

Beschleunigen s.o.

Bestehendes System auf Software RAID 1 migrieren

Voraussetzung

Laufendes Linuxsystem auf einer Festplatte, zusätzliche mindestens gleich große zweite neue Festplatte.

Zum Testen können auch zwei Partitionen auf der selben Festplatte genutzt werden.

Partitionierung

Große Partition für RAID und kleine für Swap auf der zweiten Festplatte anlegen.

RAID Partition taggen

parted /dev/sda set 4 raid on
fdisk -l | grep 'Linux raid autodetect'
/dev/sda4        63500288   126414847    31457280   fd  Linux raid autodetect

Pakete installieren

Debian 7

apt-get install mdadm

Autoerkennung auf ALL stellen.

RAID 1 anlegen

mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sda4
mkfs.ext4 /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
mkdir /tmp/system
mount --bind / /tmp/system
mount --bind /boot /tmp/system/boot/
cp -a /tmp/system/. /mnt/md0

2)

umount /tmp/system
cd /mnt/md0
mount --rbind /dev dev
mount --bind /proc proc
mount --bind /sys sys
chroot .
mdadm --incremental --rebuild-map
grub-mkdevicemap -n
update-grub
update-initramfs -u
logout
reboot
mdadm --manage --add /dev/md/0 /dev/sda2
watch cat /proc/mdstat

Doku

1)
falls die Blockdevices zuvor schon verwendet wurden sicherheitshalber:
mdadm --zero-superblock /dev/sda2
mdadm --zero-superblock /dev/sda4
2)
alternativ:
rsync -a --del /tmp/system/ /mnt/md0
admin_grundlagen/raid.txt · Zuletzt geändert: 2024/12/11 13:50 von ingo_wichmann