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

7 /dev/sda vorbereiten

Wenn alles gut klappt, solltest Du nun /dev/md0 in der Ausgabe von Folgendem finden

df -h


[root@server1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
4.1G 2.0G 1.9G 51% /
/dev/md0 190M 16M 165M 9% /boot
tmpfs 151M 0 151M 0% /dev/shm
[root@server1 ~]#

Die Ausgabe von

cat /proc/mdstat

sollte wie folgt sein:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]

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

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

Die Ausgaben von pvdisplay, vgdisplay und lvdisplay sollten wie folgt aussehen:

pvdisplay


[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/md1
VG Name VolGroup00
PV Size 4.80 GB / not usable 22.25 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 153
Free PE 1
Allocated PE 152
PV UUID pS3xiy-AEnZ-p3Wf-qY2D-cGus-eyGl-03mWyg

[root@server1 ~]#

vgdisplay


[root@server1 ~]# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 4.78 GB
PE Size 32.00 MB
Total PE 153
Alloc PE / Size 152 / 4.75 GB
Free PE / Size 1 / 32.00 MB
VG UUID jJj1DQ-SvKY-6hdr-3MMS-8NOd-pb3l-lS7TA1

[root@server1 ~]#

lvdisplay


[root@server1 ~]# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID yt5b4f-m2XC-F3aP-032r-ulAT-Re5P-lmh6hy
LV Write Access read/write
LV Status available
# open 1
LV Size 4.16 GB
Current LE 133
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0

--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID VrPqpP-40ym-55Gs-ShVm-Hlzs-Jzot-oYnonY
LV Write Access read/write
LV Status available
# open 1
LV Size 608.00 MB
Current LE 19
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1

[root@server1 ~]#

Nun müssen wir auch den Partitionstyp von /dev/sda1 zu Linux raid autodetect ändern:

fdisk /dev/sda

[root@server1 ~]# fdisk /dev/sda


Command (m for help): <- t
Partition number (1-4): <- 1
Hex code (type L to list codes): <- fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <- w
The partition table has been altered!

Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1 ~]#

Nun können wir /dev/sda1 dem /dev/md0 RAID Array hinzufügen:

mdadm --add /dev/md0 /dev/sda1

Sieh Dir nun Folgendes an

cat /proc/mdstat


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

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

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

Füge dann /etc/mdadm.conf der neuen Situation hinzu:

mdadm --examine --scan > /etc/mdadm.conf

/etc/mdadm.conf sollte nun in etwa so aussehen:

cat /etc/mdadm.conf


ARRAY /dev/md0 level=raid1 num-devices=2 UUID=7d2bf9c3:7cd9df21:f782dab8:9212d7cb
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=d93a2387:6355b5c5:25ed3e50:2a0e4f96
Starte das System neu:

reboot

Es sollte ohne Probleme starten.

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

8 Test

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

Um dies zu simulieren, kannst Du entweder Dein System runter fahren und /dev/sdb daraus entfernen, oder Du entfernst sie wie folgt:

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

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

Fahre das System runter:

shutdown -h now

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

Führe nun dies aus

cat /proc/mdstat

und Du müsstest feststellen, dass wir ein degraded Array haben:

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

md1 : active raid1 sda2[0]
5036288 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: 0x0008b885

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 fd Linux raid autodetect
/dev/sda2 26 652 5036377+ 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/md1: 5157 MB, 5157158912 bytes
2 heads, 4 sectors/track, 1259072 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000

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


Disk /dev/dm-0: 4462 MB, 4462739456 bytes
255 heads, 63 sectors/track, 542 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table


Disk /dev/dm-1: 637 MB, 637534208 bytes
255 heads, 63 sectors/track, 77 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x30307800

Disk /dev/dm-1 doesn't contain a valid partition table


Disk /dev/md0: 205 MB, 205520896 bytes
2 heads, 4 sectors/track, 50176 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 ein Fehler angezeigt wird, 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 401624 401562 fd Linux raid autodetect
/dev/sdb2 401625 10474379 10072755 fd Linux raid autodetect
/dev/sdb3 0 - 0 0 Empty
/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 Überreste eines vorhergehenden RAID Arrays von /dev/sdb...

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

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

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

Sieh Dir Folgendes an

cat /proc/mdstat


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

md1 : active raid1 sdb2[2] sda2[0]
5036288 blocks [2/1] [U_]
[=====>...............] recovery = 29.8% (1502656/5036288) finish=18.8min speed=3116K/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]
200704 blocks [2/2] [UU]

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

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

Führe dann dies 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.

9 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte