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


Um sicher zu gehen, dass keine Reste von vorhergehenden RAID Installationen auf /dev/sdb zu finden sind, lassen wir folgende Befehle laufen:

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

Wenn es keine Reste von vorhergehenden RAID Installationen gibt, wird jeder der obrigen Befehle einen Fehler wie diesen anzeigen (von dem man sich aber nicht beunruhigen lassen muss):

server1:~# mdadm --zero-superblock /dev/sdb1
mdadm: Unrecognised md component device - /dev/sdb1
server1:~#

Sonst werden die Befehle gar nichts anzeigen.

4 Unsere RAID Arrays erstellen

Lass uns nun unsere RAID arrays erstellen /dev/md0, /dev/md1 und /dev/md2. /dev/sdb1 wird zu /dev/md0 hinzugefügt, /dev/sdb2 zu /dev/md1 und /dev/sdb3 zu /dev/md2. /dev/sda1, /dev/sda2 and /dev/sda3 können noch nicht gleich hinzugefügt werden (da das System derzeit auf ihnen läuft). Daher verwenden wir den Platzhalter missing in den folgenden drei Befehlen:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3

Der Befehl

cat /proc/mdstat

sollte nun anzeigen, dass Du drei zerfallene RAID arrays hast ([_U] or [U_] bedeutet, dass ein array fehlerhaft ist während [UU] bedeutet, dass das array in Ordnung ist):

server1:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
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:~#

Als Nächstes erstellen wir Dateisysteme auf unseren RAID arrays (ext3 auf /dev/md0 und /dev/md2 und swap auf /dev/md1):

mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2

Nun müssen wir /etc/mdadm/mdadm.conf (was keinerlei Informationen über unsere neuen RAID arrays beinhaltet) der neuen Situation anpassen:

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

Den Inhalt der Datei anzeigen:

cat /etc/mdadm/mdadm.conf

Am Ende der Datei solltest Du nun Angaben über unsere drei (fehlerhaften) RAID arrays sehen:
# 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:01b5209e:be9ff10a ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a50c4299:9e19f9e4:01b5209e:be9ff10a ARRAY /dev/md2 level=raid1 num-devices=2 UUID=99fee3a5:ae381162:01b5209e:be9ff10a

5 Das System An RAID1 Anpassen

Lass uns nun /dev/md0 und /dev/md2 mounten (wir müssen das /dev/md1 nicht mounten):

mkdir /mnt/md0
mkdir /mnt/md2

mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2

Du findest nun beide arrays in der Ausgabe von

mount


server1:~# mount
/dev/sda3 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
/dev/md2 on /mnt/md2 type ext3 (rw)
server1:~#

Als Nächstes bearbeiten wir /etc/fstab. Ersetze /dev/sda1 mit /dev/md0, /dev/sda2 mit /dev/md1, und /dev/sda3 mit /dev/md2 so dass die Datei wie folgt aussieht:

vi /etc/fstab


# /etc/fstab: static file system information.
# # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/md2 / ext3 defaults,errors=remount-ro 0 1 /dev/md0 /boot ext3 defaults 0 2 /dev/md1 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Erstetze nun /dev/sda1 mit /dev/md0 und /dev/sda3 mit /dev/md2 in /etc/mtab:

vi /etc/mtab


/dev/md2 / ext3 rw,errors=remount-ro 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0 udev /dev tmpfs rw,mode=0755 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0 /dev/md0 /boot ext3 rw 0 0
Nun hoch zum GRUB Boot loader. Öffne /boot/grub/menu.lst und füge fallback 1 gleich nach default 0 hinzu:

vi /boot/grub/menu.lst


[...]
default 0 fallback 1 [...]
Das bewirkt, dass wenn der erste Kernel ausfällt, (beginnend mit 0, also ist der erste Kernel 0) Kernel #2 hochgefahren wird.

Gehe in der gleichen Datei bis ans Ende, wo Du einige Kernelzeilen finden solltest. Kopiere die erste von ihnen und füge sie vor der ersten vorhandenen Zeile ein; ersetze root=/dev/sda3 mit root=/dev/md2 und root (hd0,0) mit root (hd1,0):
[...]
## ## 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 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
root (hd1,0) bezieht sich auf /dev/sdb die bereits ein Teil unserer RAID arrays ist. Wir werden das System in ein paar Minuten neu starten; das System wird dann versuchen von unseren (immer noch fehlerhaften) RAID arrays hochzufahren; wenn es fehlschlägt, wird es von /dev/sda (-> fallback 1) hochfahren.

Als Nächstes passen wir unsere Ramdisk der neuen Situation an:

update-initramfs -u

Nun kopieren wir die Inhalte von /dev/sda1 und /dev/sda3 zu /dev/md0 und /dev/md2 (die auf /mnt/md0 und /mnt/md2 gemountet sind):

cp -dpRx / /mnt/md2


cd /boot
cp -dpRx . /mnt/md0

6 GRUB (Teil 1) vorbereiten

Danach müssen wir den GRUB Bootloader auf der zweiten Festplatte /dev/sdb installieren:

grub

IN der GRUB Kommandozeile, gib folgende Befehle ein:

root (hd0,0)


grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83

grub>

setup (hd0)


grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded
Done.

grub>

root (hd1,0)


grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0xfd

grub>

setup (hd1)


grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/menu.lst"... succeeded
Done.

grub>

quit

Zurück in der normalen Kommandozeile. Wir starten das System neu und hoffen, dass es gut von unseren RAID arrays hochfährt:

reboot


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?