Aufsetzen von Software RAID1 auf einem bereits installierten System (inkl. GRUB Konfiguration) (Fedora 8) - Seite 4

9 Testen

Lass uns nun das Ausfallen der Festplatte simulieren. Es ist egal ob Du /dev/sda oder /dev/sdb auswählst. In diesem Beispiel gehe ich davon aus, dass /dev/sdb ausgefallen ist.

Um das Ausfallen der Festplatte zu simulieren, kannst Du das System entweder runter fahren und /dev/sdb vom System entfernen oder Du entfernst es wie folgt:

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3

Fahre das System runter:

shutdown -h now

Füge dann eine neue /dev/sdb Festplatte hinzu (wenn Du einen Fehler von /dev/sda simulierst, solltest Du nun /dev/sdb anstelle von /dev/sda verwenden und die neue Festplatte /dev/sdb hinzufügen!) und starte das System. Es sollte immer noch ohne Probleme starten.

Führe nun Folgendes aus

cat /proc/mdstat

und Du stellst fest, dass wir ein degraded array haben:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
104320 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
513984 blocks [2/1] [U_]

md2 : active raid1 sda3[0]
4618560 blocks [2/1] [U_]

unused devices: <none>
[root@server1 ~]#

Die Ausgabe von

fdisk -l

sollte wie folgt aussehen:

[root@server1 ~]# fdisk -l


Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007b217

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 fd Linux raid autodetect
/dev/sda2 14 77 514080 fd Linux raid autodetect
/dev/sda3 78 652 4618687+ fd Linux raid autodetect

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table


Disk /dev/md2: 4729 MB, 4729405440 bytes
2 heads, 4 sectors/track, 1154640 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md2 doesn't contain a valid partition table


Disk /dev/md1: 526 MB, 526319616 bytes
2 heads, 4 sectors/track, 128496 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table


Disk /dev/md0: 106 MB, 106823680 bytes
2 heads, 4 sectors/track, 26080 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table
[root@server1 ~]#

Nun kopieren wir die Partitionstabelle von /dev/sda nach /dev/sdb:

sfdisk -d /dev/sda | sfdisk /dev/sdb

(Wenn Du eine Fehlermeldung erhältst, kannst Du die --force Option versuchen:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

)

[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK

Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track


sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System
/dev/sdb1 * 63 208844 208782 fd Linux raid autodetect
/dev/sdb2 208845 1237004 1028160 fd Linux raid autodetect
/dev/sdb3 1237005 10474379 9237375 fd Linux raid autodetect
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table

Re-reading the partition table ...


If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
[root@server1 ~]#

Danach entfernen wir alle Reste eines vorherigen RAID arrays von /dev/sdb...

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

... und fügen /dev/sdb dem RAID array hinzu:

mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3

Sieh Dir nun Folgendes an

cat /proc/mdstat


[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
513984 blocks [2/2] [UU]

md2 : active raid1 sdb3[2] sda3[0]
4618560 blocks [2/1] [U_]
[===>.................] recovery = 15.4% (715584/4618560) finish=4.9min speed=13222K/sec

unused devices: <none>
[root@server1 ~]#

Warte bis die Synchronisation abgeschlossen ist:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
513984 blocks [2/2] [UU]

md2 : active raid1 sdb3[1] sda3[0]
4618560 blocks [2/2] [UU]

unused devices: <none>
[root@server1 ~]#

Führe dann Folgendes aus

grub

und installiere den Bootloader auf beiden Festplatten:

root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit

Das war's. Du hast gerade eine fehlerhafte Festplatte in Deinem RAID1 array ersetzt.

10 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte