Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi2:raid [2013/12/10 14:05] ingo_wichmann angelegt |
lpi2:raid [2025/09/27 06:42] (aktuell) ingo_wichmann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== 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 [[admin_grundlagen:partitionierung|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: | ||
+ | <file txt GPT Partitionstabelle> | ||
+ | /dev/sdb1 2048 3907028991 3907026944 1.8T Linux RAID | ||
+ | … | ||
+ | /dev/sdc1 2048 3907028991 3907026944 1.8T Linux RAID | ||
+ | </file> | ||
+ | |||
+ | ===== Pakete installieren ===== | ||
+ | === Debian (ab 9) ==== | ||
+ | apt install mdadm | ||
+ | |||
+ | Autoerkennung auf ''none'' stellen. | ||
+ | |||
+ | === CentOS (ab 8) ==== | ||
+ | dnf install mdadm | ||
+ | ===== RAID 1 anlegen ===== | ||
+ | ((falls die Blockdevices zuvor schon verwendet wurden, sicherheitshalber: | ||
+ | mdadm --zero-superblock /dev/sdb1 | ||
+ | mdadm --zero-superblock /dev/sdc1 | ||
+ | )) | ||
+ | mdadm --create /dev/md0 --level=1 --raid-devices=2 --assume-clean /dev/sdb1 /dev/sdc1 | ||
+ | watch cat /proc/mdstat | ||
+ | mkfs.ext4 /dev/md0 | ||
+ | (( alternativ: | ||
+ | mkfs.xfs /dev/md0 | ||
+ | )) | ||
+ | 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: (( bei XFS: | ||
+ | xfs_growfs /dev/md0 | ||
+ | )) | ||
+ | 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 | ||
+ | |||
+ | [[#wiederherstellen_beschleunigen|Beschleunigen s.o.]] | ||
====== Bestehendes System auf Software RAID 1 migrieren ====== | ====== Bestehendes System auf Software RAID 1 migrieren ====== | ||
- | ===== Vorraussetzung ===== | + | |
+ | ++++ Bestehendes System auf Software RAID 1 migrieren | | ||
+ | ===== Voraussetzung ===== | ||
Laufendes Linuxsystem auf einer Festplatte, zusätzliche mindestens gleich große zweite neue Festplatte. | 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. | + | Zum Testen können auch zwei Partitionen auf derselben Festplatte genutzt werden. |
===== Partitionierung ===== | ===== Partitionierung ===== | ||
Zeile 55: | Zeile 178: | ||
mdadm --manage --add /dev/md/0 /dev/sda2 | mdadm --manage --add /dev/md/0 /dev/sda2 | ||
watch cat /proc/mdstat | watch cat /proc/mdstat | ||
+ | ++++ | ||
====== Doku ====== | ====== Doku ====== | ||
- | http://www.thomas-krenn.com/de/wiki/Linux_Software_RAID | + | * https://www.thomas-krenn.com/de/wiki/Unterschiede_zwischen_Hardware_RAID_und_Linux_Software_RAID |
+ | * http://www.thomas-krenn.com/de/wiki/Linux_Software_RAID | ||