====== 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: /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 ===== ((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 | ===== Voraussetzung ===== Laufendes Linuxsystem auf einer Festplatte, zusätzliche mindestens gleich große zweite neue Festplatte. Zum Testen können auch zwei Partitionen auf derselben 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 (( alternativ: rsync -a --del /tmp/system/ /mnt/md0 )) 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 ====== * 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