Aufsetzen von Software RAID1 auf einem bereits installierten System (Inkl. GRUB Konfiguration) (Mandriva 2008.0) - Seite 4

8 GRUB vorbereiten (Teil 2)

Wir haben es fast geschafft. Nun müssen wir /boot/grub/menu.lst erneut bearbeiten. Momentan ist es konfiguriert, von /dev/hdb (hd1,0) zu starten. Natürlich möchten wir immer noch, dass das System in der Lage ist zu starten, wenn dev/hdb ausfällt. Daher kopieren wir die erste Kernel Zeile (die hd1 enthält), fügen sie unten ein und ersetzen hd1 mit hd0. Weiterhin kommentieren wir alle anderen Kernel Zeilen aus, sodass es wie folgt aussieht:

vi /boot/grub/menu.lst


timeout 10
color black/cyan yellow/cyan default 0 fallback 1 title linux kernel (hd1,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2 resume=/dev/md1 initrd (hd1,0)/initrd.img title linux kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2 resume=/dev/md1 initrd (hd0,0)/initrd.img #title linux #kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/hda6 resume=/dev/hda5 #initrd (hd0,0)/initrd.img #title failsafe #kernel (hd0,0)/vmlinuz BOOT_IMAGE=failsafe root=/dev/hda6 failsafe #initrd (hd0,0)/initrd.img
Aktualisiere danach Deine Ramdisk:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig2
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

... und starte das System neu:

reboot

Es sollte ohne Probleme starten.

Das war's - Du hast erfolgreich Software RAID1 auf Deinem installierten Mandriva 2008.0 System aufgesetzt!

9 Test

Lass uns nun das Ausfallen der Festplatte simulieren. Es ist egal ob Du /dev/hda oder /dev/hdb auswählst. In diesem Beispiel nehem ich an, dass /dev/hdb ausgefallen ist.

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

mdadm --manage /dev/md0 --fail /dev/hdb1
mdadm --manage /dev/md1 --fail /dev/hdb5
mdadm --manage /dev/md2 --fail /dev/hdb6

mdadm --manage /dev/md0 --remove /dev/hdb1
mdadm --manage /dev/md1 --remove /dev/hdb5
mdadm --manage /dev/md2 --remove /dev/hdb6

Fahre das System runter:

shutdown -h now

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

Führe nun dies aus

cat /proc/mdstat

und Du solltest feststellen, dass wir ein degraded Array haben:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[0]
417536 blocks [2/1] [U_]

md0 : active raid1 hda1[0]
176576 blocks [2/1] [U_]

md2 : active raid1 hda6[0]
4642688 blocks [2/1] [U_]

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

Die Ausgabe von

fdisk -l

sollte wie folgt aussehen:

[root@server1 ~]# fdisk -l


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

Device Boot Start End Blocks Id System
/dev/hda1 * 1 22 176683+ fd Linux raid autodetect
/dev/hda2 23 652 5060475 5 Extended
/dev/hda5 23 74 417658+ fd Linux raid autodetect
/dev/hda6 75 652 4642753+ fd Linux raid autodetect

Disk /dev/hdb: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x00000000

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


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

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


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

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


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

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

Nun kopieren wir die Partitionstabelle von /dev/hda nach /dev/hdb:

sfdisk -d /dev/hda | sfdisk --force /dev/hdb


[root@server1 ~]# sfdisk -d /dev/hda | sfdisk --force /dev/hdb
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Checking that no-one is using this disk right now ...
OK

Disk /dev/hdb: 10402 cylinders, 16 heads, 63 sectors/track


sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/hdb: 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/hdb1 * 63 353429 353367 fd Linux raid autodetect
/dev/hdb2 353430 10474379 10120950 5 Extended
/dev/hdb3 0 - 0 0 Empty
/dev/hdb4 0 - 0 0 Empty
/dev/hdb5 353493 1188809 835317 fd Linux raid autodetect
/dev/hdb6 1188873 10474379 9285507 fd Linux raid autodetect
Warning: partition 1 does not end at a cylinder boundary
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 jegliche Überbleibsel von früheren RAID Arrays von /dev/hdb...

mdadm --zero-superblock /dev/hdb1
mdadm --zero-superblock /dev/hdb5
mdadm --zero-superblock /dev/hdb6

... und fügen /dev/hdb dem RAID Array hinzu:

mdadm -a /dev/md0 /dev/hdb1
mdadm -a /dev/md1 /dev/hdb5
mdadm -a /dev/md2 /dev/hdb6

Sieh Dir dies an

cat /proc/mdstat


[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb5[2] hda5[0]
417536 blocks [2/1] [U_]
resync=DELAYED

md0 : active raid1 hdb1[1] hda1[0]
176576 blocks [2/2] [UU]

md2 : active raid1 hdb6[2] hda6[0]
4642688 blocks [2/1] [U_]
[===========>.........] recovery = 59.9% (2784512/4642688) finish=7.5min speed=4076K/sec

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

Warte, bis die Synchronisation beendet ist:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb5[1] hda5[0]
417536 blocks [2/2] [UU]

md0 : active raid1 hdb1[1] hda1[0]
176576 blocks [2/2] [UU]

md2 : active raid1 hdb6[1] hda6[0]
4642688 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 soeben eine fehlgeschlagene Festplatte in Deinem RAID1 Array ersetzt.

10 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte