Software RAID1 auf einem laufenden System (Inkl. GRUB Konfiguration) (Debian Etch) einrichten - Seite 3

7 /dev/sda Vorbereiten

Wenn alles gut läuft, findest Du /dev/md0 und /dev/md2 in der Ausgabe von

df -h


server1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 4.4G 730M 3.4G 18% /
tmpfs 126M 0 126M 0% /lib/init/rw
udev 10M 68K 10M 1% /dev
tmpfs 126M 0 126M 0% /dev/shm
/dev/md0 137M 17M 114M 13% /boot
server1:~#

Die Ausgabe von

cat /proc/mdstat

sollte wie folgt aussehen:

server1:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1]
4594496 blocks [2/1] [_U]

md1 : active raid1 sdb2[1]
497920 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
144448 blocks [2/1] [_U]

unused devices: <none>
server1:~#

Nun müssen wir auch die Partitionsart unserer drei Partitionen auf /dev/sda zu Linux raid autodetect ändern:

fdisk /dev/sda

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): <-- t
Partition number (1-4): <-- 2
Hex code (type L to list codes): <-- fd
Changed system type of partition 2 to fd (Linux raid autodetect)

Command (m for help): <-- t
Partition number (1-4): <-- 3
Hex code (type L to list codes): <-- fd
Changed system type of partition 3 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.
server1:~#

Nun können wir /dev/sda1, /dev/sda2, und /dev/sda3 zu den entsprechenden RAID arrays hinzufügen:

mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3

Sieh Dir nun Folgendes an

cat /proc/mdstat

... Du solltest feststellen, dass die RAID arrays synchronisiert werden:

server1:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[2] sdb3[1]
4594496 blocks [2/1] [_U]
[=====>...............] recovery = 29.7% (1367040/4594496) finish=0.6min speed=85440K/sec

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

md0 : active raid1 sda1[0] sdb1[1]
144448 blocks [2/2] [UU]

unused devices: <none>
server1:~#

(Du kannst Folgendes laufen lassen

watch cat /proc/mdstat

um eine fortlaufende Ausgabe des Prozesses zu erhalten. Um watch zu verlassen, drücke STRG+C.)

Warte bis die Synchronisation abgeschlossen ist (die Ausgabe sollte dann so aussehen:

server1:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0] sdb3[1]
4594496 blocks [2/2] [UU]

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

md0 : active raid1 sda1[0] sdb1[1]
144448 blocks [2/2] [UU]

unused devices: <none>
server1:~#

).

Passe dann /etc/mdadm/mdadm.conf der neuen Situation an:

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

/etc/mdadm/mdadm.conf sollte nun so ähnlich wie Folgendes aussehen:

cat /etc/mdadm/mdadm.conf


# mdadm.conf
# # Please refer to mdadm.conf(5) for information about this file. # # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST <system> # instruct the monitoring daemon where to send mail alerts MAILADDR root # This file was auto-generated on Mon, 26 Nov 2007 21:22:04 +0100 # by mkconf $Id: mkconf 261 2006-11-09 13:32:35Z madduck $ ARRAY /dev/md0 level=raid1 num-devices=2 UUID=72d23d35:35d103e3:2b3d68b9:a903a704 ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a50c4299:9e19f9e4:2b3d68b9:a903a704 ARRAY /dev/md2 level=raid1 num-devices=2 UUID=99fee3a5:ae381162:2b3d68b9:a903a704

8 GRUB (Teil 2) vorbereiten

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

vi /boot/grub/menu.lst


[...]
## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.18-4-486 RAID (hd1) root (hd1,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/md2 ro initrd /initrd.img-2.6.18-4-486 savedefault title Debian GNU/Linux, kernel 2.6.18-4-486 RAID (hd0) root (hd0,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/md2 ro initrd /initrd.img-2.6.18-4-486 savedefault #title Debian GNU/Linux, kernel 2.6.18-4-486 #root (hd0,0) #kernel /vmlinuz-2.6.18-4-486 root=/dev/sda3 ro #initrd /initrd.img-2.6.18-4-486 #savedefault #title Debian GNU/Linux, kernel 2.6.18-4-486 (single-user mode) #root (hd0,0) #kernel /vmlinuz-2.6.18-4-486 root=/dev/sda3 ro single #initrd /initrd.img-2.6.18-4-486 #savedefault ### END DEBIAN AUTOMAGIC KERNELS LIST
In der gleichen Datei befindet sich eine kopt Zeile; ersetze /dev/sda3 mit /dev/md2 (entferne nicht # am Anfang der Zeile!):
[...]
# kopt=root=/dev/md2 ro [...]
Aktualisiere danach Deine Ramdisk:

update-initramfs -u

... und starte das System neu:

reboot

Es sollte ohne Probleme starten.


Das war es - Du hast die Software RAID1 erfolgreich auf Deinem laufenden Debian Etch System eingerichtet!

4 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: tjareson

Aber wenn von /dev/sda1 gebootet wird, kann man diese Partitionen dann nicht in das Raid einbinden. Debian protestiert, dass die Partition busy ist. In dieser Reihenfolge funktioniert es irgendwie nicht.


Von: andreea

Hola El_Burno, am besten fragst Du im Forum nach :-)


Von: El_Burno

Habe das gleiche Problem wie tjareson, Kann mir jemand vielleicht sagen, wie man das Problem mit busy beheben kann?


Von: Huskynarr

Wäre es auch möglich die Grub2 Konfiguration anzuzeigen?