Quelle1)
md raid not rebulding — resync=pending
You have problems with automatic rebuilding raid 1 (md) on debian (resync=PENDING)?
mdX : active (auto-read-only) raid1 sdaY[0] sdbY[1]
2000000 blocks [2/2] [UU]
resync=PENDING
do;
mdadm --readwrite /dev/mdX
and the process of rebuilding starts cat /proc/mdstatus
[===>...] resync = 16.2% (324736/2000000) finish=0.6min speed=46390K/sec
Quelle2)
Software-RAIDs unter Linux sind eine kostengünstige und flexible Möglichkeit den Speicher eines Servers redundant auszulegen. Doch wie tauscht man eine defekte Platte im Fall der Fälle aus? Hier gibt es einige Schritte zu befolgen, um sein RAID wieder zum Laufen zu bekommen. Im folgenden Beispiel haben wir ein RAID1 mit den Laufwerken /dev/sda und /dev/sdb. Die Festplatten sind in drei primäre Partitionen unterteilt:
/dev/sdX1 /boot /dev/sdX2 swap /dev/sdX3 /
Folglich haben wir 2 RAID Arrays (Swap im RAID1 macht wenig Sinn):
/dev/md0 /boot /dev/md1 /
In unserem Beispiel fällt die zweite Festplatte - /dev/sdb - aus. Um einen Ersatz einzubauen, nehmen wir zuerst die defekte Platte aus dem laufenden RAID Array:
mdadm /dev/md0 -r /dev/sdb1 mdadm /dev/md1 -r /dev/sdb3
Danach können wir die defekte Platte austauschen (evtl. muss das System heruntergefahren werden). Nach dem Wechsel müssen wir das Partitionslayout auf die Ersatzplatte spielen. In unserem Beispiel ist dies recht einfach, da wir keine erweiterten Partitionen haben:
dd if=/dev/sda of=/dev/sdb bs=512 count=1
Hiermit kopieren wir den MBR (Größe = 512 Byte) auf die neue Festplatte. Handelt es sich bei dem Festplattenschema um ein Konstrukt mit erweiterteten Partitionen, müssen diese zusätzlich einzeln angelegt werden. Hierzu schauen wir uns mit fdisk das Partitionsschema an:
fdisk -ul /dev/sda
Wir merken uns die Startwerte der erweiterteten Partitionen und übergeben diesen Wert an die Parameter skip und seek von dd:
dd if=/dev/sda of=/dev/sdb count=1 skip=STARTWERT seek=STARTWERT
Nachdem wir das Partitionslayout komplett übernommen haben, teilen wir dies brav dem Kernel mit:
blockdev –-rereadpt /dev/sdb
Jetzt können wir mit dem Rebuild des RAIDs beginnen:
mdadm /dev/md0 -a /dev/sdb1 mdadm /dev/md1 -a /dev/sdb3
Den Status kann man jederzeit aus der Datei /proc/mdstat auslesen, z.B. mit
watch -n1 cat /proc/mdstat
Nun erstellen wir noch den Swapspace auf neuen Festplatte:
mkswap /dev/sdb2
und hängen den Swapspace ins laufende System ein:
swapon /dev/sdb2
Schon ist unser RAID wieder voll einsatzbereit.