====== 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 ===== ((falls die Blockdevices zuvor schon verwendet wurden sicherheitshalber: mdadm --zero-superblock /dev/sda2 mdadm --zero-superblock /dev/sda4 )) 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 ====== 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_max=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 Platte aktivieren: mdadm --grow /dev/md0 --raid-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 [[#wiederherstellen_beschleunigen|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 (( 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