Linux/RAID/Recovery
Linux/RAID/Recovery - Rebuild/Recovery durchführen
Rebuild =
Folgende Eigenschaften treffen auf einen Rebuild zu:
- befüllen einer neuen Disk mit relevanten Informationen aus einem bestehenden Array
- unter der Annahme dass sämtliche Daten neu geschrieben werden müssen und dass die Daten aus dem bestehenden Array korrekt sind
- wird ausgeführt wenn eine Disk ersetzt wurde
Manuellen Recovery erzwingen
Partition absichtlich faulty setzen
# mdadm --manage --set-faulty /dev/mdN /dev/sdX1 mdadm: set /dev/sdX1 faulty in /dev/mdN
Statusanzeige des Software-RAIDs
# mdadm -D /dev/mdN
liefert folgende Übersicht:
/dev/md0: Version : 1.2 Creation Time : Mon Sep 30 14:59:51 2013 Raid Level : raid1 Array Size : 2095040 (2046.28 MiB 2145.32 MB) Used Dev Size : 2095040 (2046.28 MiB 2145.32 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Mon Oct 7 08:11:41 2013 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 1 Spare Devices : 0 Name : ubuntumdraidtest:0 (local to host ubuntumdraidtest) UUID : ebe7bfba:a20bf402:f7954545:d920460f Events : 471 Number Major Minor RaidDevice State 3 8 17 0 active sync /dev/sdb1 1 0 0 1 removed 2 8 33 - faulty spare /dev/sdc1
Hier wurde die Partition sdc1 des RAIDs md0 auf faulty gesetzt und wird nun als faulty spare angezeigt. Der Status des RAIDs wechselte von clean auf clean, degraded.
SDX1 hot remove
# mdadm --manage /dev/mdN -r /dev/sdX1 mdadm: hot removed /dev/sdX1 from /dev/mdN
SDX1 add
# mdadm --manage /dev/mdN -a /dev/sdX1 mdadm: added /dev/sdX1
Visualisierung
cat /proc/mdstat
liefert:
md0 : active raid1 sdc1[2] sdb1[3] 2095040 blocks super 1.2 [2/1] [U_] [>....................] recovery = 0.4% (9600/2095040) finish=3.6min spe ed=9600K/sec unused devices: <none>
nmon zeigt dass von /dev/sdb gelesen und auf /dev/sdc geschrieben wird.
┌nmon─13g──────[H for help]───Hostname=ubuntumdraidtRefresh= 2secs ───15:08.05─┐ │ Disk I/O ──/proc/diskstats────mostly in KB/s─────Warning:contains duplicates─│ │DiskName Busy Read WriteMB|0 |25 |50 |75 100|│ │sda 0% 0.0 0.0| > |│ │sda1 0% 0.0 0.0|> |│ │sda2 0% 0.0 0.0|>disk busy not available |│ │sda5 0% 0.0 0.0| > |│ │sdb 5% 66.3 0.0|RRR > |│ │sdb1 6% 66.3 0.0|RRR > |│ │sdc 72% 0.0 65.3|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW >│ │sdc1 72% 0.0 65.3|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW >│ │sdd 0% 0.0 0.0|> |│ │sdd1 0% 0.0 0.0|>disk busy not available |│ │dm-0 0% 0.0 0.0| > |│ │dm-1 0% 0.0 0.0|> |│ │md0 0% 0.0 0.0|>disk busy not available |│ │Totals Read-MB/s=132.6 Writes-MB/s=130.7 Transfers/sec=541.7 │ │──────────────────────────────────────────────────────────────────────────────│
Verhalten bei Verwendung einer Spare-Disk
Wenn ein RAID mit einer Spare-Disk betrieben wird, springt diese für die auf faulty gesetzte Disk ein. Es wird automatisch ein Rebuild durchgeführt. Die auf faulty gesetzte Disk erscheint in der Ausgabe von mdadm -D /dev/mdN
als faulty spare.
Um sie nun wieder in den Verbund als Spare-Disk aufzunehmen, muss sie mittels mdadm --manage /dev/mdN -r /dev/sdX1
zuerst entfernt und anschließend wieder hinzugefügt werden mdadm --manage /dev/mdN -a /dev/sdd1
.
Resync
Folgende Eigenschaften treffen auf einen Resync zu:
- Sicherstellung dass alle Daten im Array synchron bzw. konsistent sind
- Annahme dass die Daten in Ordnung sind (sein sollten)
- Im Falle eines Fehlers beim Lesen eines Devices werden die Daten von einem anderen Device auf alle anderen geschrieben
Manuellen Resync erzwingen
Array stoppen
# mdadm --stop /dev/mdN mdadm: stopped /dev/mdN
Resync ausführen
# mdadm --assemble --run --force --update=resync /dev/mdN /dev/sdX1 /dev/sdX1 mdadm: /dev/mdN has been started with 2 drives.
- Weitere Informationen siehe:
- Eine Auflistung von Befehlen finden Sie unter
/usr/share/doc-base/mdadm-readme-recipes
.
Visualisierung
cat /proc/mdstat
liefert:
Every 2.0s: cat /proc/mdstat Wed Sep 25 15:19:59 2013 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[0] sdc1[1] 2095040 blocks super 1.2 [2/2] [UU] [===>.................] resync = 19.7% (414656/2095040) finish=0.2min speed=138218K/sec unused devices: <none>
Links
- Resync auf einem Software-RAID erzwingen (web.archive.org)
- Mdadm checkarray
- Mdadm recover degraded Array
- Ubuntu-Server-Installation mit Software-RAID
- Linux RAID Wiki recovery and resync (raid.wiki.kernel.org)