Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi2:raid [2013/12/10 21:14] ingo_wichmann |
lpi2:raid [2025/09/27 06:42] (aktuell) ingo_wichmann |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Einfaches Beispiel Software RAID 1 ====== | + | ====== Beispiel Software RAID 1 ====== |
| - | ===== Vorraussetzung ===== | + | ===== Voraussetzung ===== |
| - | Laufendes Linuxsystem auf einer Festplatte, zusätzliche mindestens gleich große zweite neue Festplatte. | + | 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 Partitionen auf der selben Festplatte genutzt werden. | + | |
| + | Zum Testen können auch zwei bzw. drei gleich große Partitionen auf derselben Festplatte genutzt werden. | ||
| ===== Partitionierung ===== | ===== Partitionierung ===== | ||
| - | Große Partition für RAID und kleine für Swap auf der zweiten Festplatte anlegen. | + | Partitionstabelle mit einer Partition [[admin_grundlagen:partitionierung|anlegen]] |
| - | ==== RAID Partition taggen ==== | + | Vorsichtshalber betroffene Blockdevices wipen: |
| - | parted /dev/sda set 4 raid on | + | wipefs -af /dev/sdb |
| - | fdisk -l | grep 'Linux raid autodetect' | + | ==== RAID Partitionen taggen ==== |
| - | <file> | + | Bevorzugt mit ''gdisk'', hier vereinfacht mit ''parted'': |
| - | /dev/sda4 63500288 126414847 31457280 fd Linux raid autodetect | + | 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> | </file> | ||
| ===== Pakete installieren ===== | ===== Pakete installieren ===== | ||
| - | === Debian 7 ==== | + | === Debian (ab 9) ==== |
| - | apt-get install mdadm | + | apt install mdadm |
| - | Autoerkennung auf ''ALL'' stellen. | + | Autoerkennung auf ''none'' stellen. |
| + | === CentOS (ab 8) ==== | ||
| + | dnf install mdadm | ||
| ===== RAID 1 anlegen ===== | ===== RAID 1 anlegen ===== | ||
| - | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda2 /dev/sda4 | + | ((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 | watch cat /proc/mdstat | ||
| - | mkfs.ext4 /dev/md0 | + | mkfs.ext4 /dev/md0 |
| - | mkdir /mnt/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 | 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 86: | 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 | ||