Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Raid1 nach wiki anlegen - wo ist der Fehler ?

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 23. Jun 2008, 16:20

Ich habe hier nen Suse 10.1 PC mit 2 identischen Festplatten, auf dem würde ich gerne ein Software Raid1 anlegen.
Vorgegangen nach dem wiki.linux.club "Non Raid zu (software)Raid1".

in kurzen Stichpunkten:

- identische Partitionstabelle für beide Platten angelegt
- Raid md0 erstellt
- mdadm.conf erstellt
- /dev/md0 mit reiserfs formatiert nach /mnt gemountet und mein Filesystem kopiert
- die /etc/fstab vom kopierten Filesystem geändert und ungemounted
- die boot/grub/menu.lst um den raid Eintrag erweitert
- eine neue initrd erzeugt.

an der Stelle sagt das Wiki
1. Teil fertig. wir können rebooten und testen, ob der neu angelegte Menüeintrag in GRUB funktioniert und das RAID1-Rootdevice sauber bootet. Sollte das nicht funktionieren, so kann man mittels originalem Booteintrag ohne RAID das alte System booten. Wir booten also nach wie vor jetzt noch von der orginalen Platte und aus dem darauf befindlichen /boot-Verzeichnis. Die einzige Änderung, wir binden als Rootdevice unser eben erstelltes (halbes) Raid1 ein.
Wenn ich neustarte und im Bootmanager meinen Raid Eintrag anwähle, startet mein System nicht korrekt.
Angeblich sind einige Partitionen nicht korrekt vorhanden, der x-server startet nicht

fsck failed for at least one Filesystem (not /)
Please reair manually and reboot
the root filesystem ist already mounted read-write

Wenn ich mich auf der Commandline einlogge, sehe ich mit nur mein /dev/md0

/proc/partitions

gibt es nicht, deswegen auch kein fdisk -l

Ich habe dieses Problem erstmal übersprungen und md1 (/home) & md3 (swap) angelegt. Anschließend auch diese Partitionen formatiert, gemounted, kopiert und ungemounted
dann die /etc/fstab angepasst (hda durch md ersetzt)

Code: Alles auswählen

cat /etc/fstab
/dev/md0             /                    reiserfs   acl,user_xattr        1 1
/dev/md1             /home                reiserfs   acl,user_xattr        1 2
/dev/md3             swap                 swap       defaults              0 0
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/fd0             /media/floppy        auto       noauto,user,sync      0 0
fdisk -l wirft mir folgendes raus:

Code: Alles auswählen


Platte /dev/hda: 250.0 GByte, 250059350016 Byte
255 heads, 63 sectors/track, 30401 cylinders
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/hda1   *           1        2611    20972826   fd  Linux raid autodetect
/dev/hda2           30102       30401     2409750   fd  Linux raid autodetect
/dev/hda3            2612       30101   220813425   fd  Linux raid autodetect

Partitionstabelleneinträge sind nicht in Platten-Reihenfolge

Platte /dev/hdc: 250.0 GByte, 250059350016 Byte
255 heads, 63 sectors/track, 30401 cylinders
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/hdc1   *           1        2611    20972826   fd  Linux raid autodetect
/dev/hdc2           30102       30401     2409750   fd  Linux raid autodetect
/dev/hdc3            2612       30101   220813425   fd  Linux raid autodetect

Partitionstabelleneinträge sind nicht in Platten-Reihenfolge

Platte /dev/md0: 21.4 GByte, 21476163584 Byte
2 heads, 4 sectors/track, 5243204 cylinders
Einheiten = Zylinder von 8 × 512 = 4096 Bytes

Festplatte /dev/md0 enthält keine gültige Partitionstabelle

Platte /dev/md3: 2467 MByte, 2467573760 Byte
2 heads, 4 sectors/track, 602435 cylinders
Einheiten = Zylinder von 8 × 512 = 4096 Bytes

Festplatte /dev/md3 enthält keine gültige Partitionstabelle

Platte /dev/md1: 226.1 GByte, 226112937984 Byte
2 heads, 4 sectors/track, 55203354 cylinders
Einheiten = Zylinder von 8 × 512 = 4096 Bytes

Festplatte /dev/md1 enthält keine gültige Partitionstabelle


-> Festplatte /dev/md1 enthält keine gültige Partitionstabelle
was bedeutet denn dieser Eintrag ?

aktuell hänge ich hda3 in md1 ein (/home), anschließend hda2 in md3 (swap).
hda1 kann ich an der Stelle nicht zu meinem md0 dazufügen

Code: Alles auswählen

mdadm /dev/md0 -a /dev/hda1
mdadm: Cannot open /dev/hda1: Device or resource busy
Ich vermute aber das wenn ich alle Partitionen den entsprechenden Raids zugewiesen habe, wird mein System nicht korrekt starten, nur wo ist der Hacken ???

Werbung:
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 23. Jun 2008, 18:41

Um Gottes Willen: wenn die syncronisation der Filesysteme in den neuen Raids gelaufen ist aber das neue Root noch nicht richtig selbständig gebootet hat, ja nicht rebooten.
Ich melde mich gleich wieder muss nur erst mal sehen was du da gemacht hast.

robi

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 23. Jun 2008, 18:58

Also wenn das System noch läuft. folgende Infos werden benötigt um zu sehen wo der Fehler ist, bzw was du ändern musst um sauber booten zu können. (Ausgaben der Befehle)

Code: Alles auswählen

mount
cat /etc/fstab
cat /proc/mdstat
cat /boot/grub/menu.lst
cat /proc/cmdline
swapon -s
cat /etc/mdadm.conf
grep INITRD /etc/sysconfig/kernel

Zusätzlich noch, haben die neuen Raid-Filesysteme den selben Filesystemtype wie die alten ohne Raid., oder hast du noch eine Sicherheitskopie von der alten fstab.

robi

fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 23. Jun 2008, 19:08

Hallo robi,

danke für Deine Antwort.
Auch wenns blöd klingt, Ich installiere mir das grad System komplett neu, diesmal aber mir ext3 als Filesystem und nicht mehr mit reiserFS.
Hab den ganzen Nachmittag rumprobiert und auch noch weitere Howtos gelesen, nen grundlegenden Fehler habe ich nicht gefunden.
Wenns denn kein Fehler von mir war, hab ich das gleiche Problem später wieder.

Den Filesystemtyp hatte ich manuel auf fd geändert, so wie es eben den dem wiki geschrieben steht.

Das System muss definitiv an der Stelle booten wie beschrieben, richtig ?

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 23. Jun 2008, 19:22

Den Partitionstype fd muss man nicht angeben, es geht auch ohne dem. Linux braucht das nicht, andere BS schauen da ehr hin.
An genau dieser Stelle wird das alte Rootfilesystem ausgehängt, und statt dessen das neue halbe Raid als root eingehängt, dabei muss die Initrd und der Kernel beweißen dass sie das raid sauber erkennen und booten kann. Wenn es dort nicht klappt, die genaue Fehlermeldung und einige Zeilen vorher hier her posten und das alte System (altes Root) wieder booten. An dieser Stelle ansonsten nicht weitermachen, sonst ist mit hoher Wahrscheinlichkeit ein Backup gefragt oder eine Neuinstallation fällig

robi

fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 23. Jun 2008, 21:52

sodala nun habe ich ein frisches 10.1 am laufen und bin wie beim ersten Mal vorgegangen.
auch jetzt startet mein System nicht, nachdem ich das Raid angelegt habe.

starte ich mit dem Raid Eintrag im Auswahlmenü bekomme ich

Code: Alles auswählen

fsck failed for at least one filesystem (not /)
Please repair manually and reboot
The root file system is already mounted read-write

Give root password for login: _
jetzt habe ich wieder mit dem normalen Eintrag im Bootloader gestartet.
HIer mal die wichtigsten config Dateien:

Code: Alles auswählen

mount
/dev/hda1 on / type ext3 (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/hda2 on /home type ext3 (rw,acl,user_xattr)
securityfs on /sys/kernel/security type securityfs (rw)

Code: Alles auswählen

cat /etc/fstab
/dev/hda1            /                    ext3       acl,user_xattr        1 1
/dev/hda2            /home                ext3       acl,user_xattr        1 2
/dev/hda3            swap                 swap       defaults              0 0
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/fd0             /media/floppy        auto       noauto,user,sync      0 0

Code: Alles auswählen

fdisk -l

Platte /dev/hda: 250.0 GByte, 250059350016 Byte
255 heads, 63 sectors/track, 30401 cylinders
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/hda1   *           2        2612    20972857+  83  Linux
/dev/hda2            2613       30102   220813425   83  Linux
/dev/hda3           30103       30401     2401717+  82  Linux Swap / Solaris

Platte /dev/hdc: 250.0 GByte, 250059350016 Byte
255 heads, 63 sectors/track, 30401 cylinders
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/hdc1   *           2        2612    20972857+  fd  Linux raid autodetect
/dev/hdc2            2613       30102   220813425   83  Linux
/dev/hdc3           30103       30401     2401717+  82  Linux Swap / Solaris

Platte /dev/md0: 21.4 GByte, 21476196352 Byte
2 heads, 4 sectors/track, 5243212 cylinders
Einheiten = Zylinder von 8 × 512 = 4096 Bytes

Festplatte /dev/md0 enthält keine gültige Partitionstabelle

Code: Alles auswählen

cat /proc/mdstat
Personalities : [raid1] [raid0] [raid5] [raid4] [linear]
md0 : active raid1 hdc1[1]
      20972848 blocks super 1.0 [2/1] [_U]
      bitmap: 3/3 pages [12KB], 4096KB chunk

unused devices: <none>

Code: Alles auswählen

cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Di Jun 24 17:49:38 UTC 2008

color white/blue black/light-gray
default 0
timeout 8
gfxmenu (hd0,0)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 10.1
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/hda1    resume=/dev/hda3  splash=silent showopts
    initrd /boot/initrd

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Diskette
    chainloader (fd0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.1
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/hda1 showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /boot/initrd

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE RAID 10.1
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/md0    resume=/dev/hda3  splash=silent showopts
    initrd /boot/initrd

Code: Alles auswählen

cat /etc/mdadm.conf
DEVICE /dev/hd[a-z][0-9]
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=b74eceb5:656859e1:0b8efa5d:8d38352c

Code: Alles auswählen

grep INITRD /etc/sysconfig/kernel
INITRD_MODULES="piix processor thermal fan jbd ext3"
DOMU_INITRD_MODULES="xennet xenblk"

hier die fstab von meinem md0

Code: Alles auswählen

fred:/boot # mount /dev/md0 /mnt
fred:/boot # cd /mnt/etc/
fred:/mnt/etc # cat fstab
/dev/md0             /                    ext3       acl,user_xattr        1 1
/dev/hda2            /home                ext3       acl,user_xattr        1 2
/dev/hda3            swap                 swap       defaults              0 0
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/fd0             /media/floppy        auto       noauto,user,sync      0 0

was mir beim durchschauen auffällt, bei den INITRD_MODULES gibt es kein raid1, beim Erstellen der initrd bekomme ich aber folgender Ausgabe:

Code: Alles auswählen

mkinitrd -f md -d /dev/md0
mdadm: /var/tmp/mkinitramfs.bF3515/rootdev does not appear to be an md device
Root device:    /dev/md0 (mounted on / as ext3)
Module list:    piix processor thermal fan jbd ext3 raid1 (xennet xenblk)

Kernel image:   /boot/vmlinuz-2.6.16.13-4-default
Initrd image:   /boot/initrd-2.6.16.13-4-default
Shared libs:    lib/ld-2.4.so lib/libacl.so.1.1.0 lib/libattr.so.1.1.0 lib/libblkid.so.1.0 lib/libc-2.4.so lib/libcom_err.so.2.1 lib/libdl-2.4.so lib/libext2fs.so.2.4 lib/libhistory.so.5.1 lib/libncurses.so.5.5 lib/libpthread-2.4.so lib/libreadline.so.5.1 lib/librt-2.4.so lib/libuuid.so.1.2

Driver modules: ide-core ide-disk piix processor thermal fan raid1 raid0 xor raid5 linear
Filesystem modules:     jbd ext3
Including:      initramfs fsck.ext3 mdadm
10638 blocks


In der Module list steht hier hinter ext3 noch raid1 .... beim Zurücklesen fehlt der Eintrag aber

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 23. Jun 2008, 22:52

fritzbee21 hat geschrieben: starte ich mit dem Raid Eintrag im Auswahlmenü bekomme ich

Code: Alles auswählen

fsck failed for at least one filesystem (not /)
Please repair manually and reboot
The root file system is already mounted read-write

Give root password for login: _
Wie es aussieht hast du die die initrd schon durchlaufen und bleibst erst in dem Script boot.localfs hängen.
Der Fehler scheint zu bedeuten, dass dein /home beim Herunterfahren nicht ganz sauber ausgehängt worden ist. Ein anders Filesystem gibt es ja nicht bei dir, und / ist schon read-write eingehängt. <Vermutung> Eine Erklärung habe ich auch nicht, aber direkt nach einer Installation laufen bei Suse oftmals erstmal einige Dinge los, die zT recht lange dauern können, eventuell ist das so ein Prozess, der durch das Anmelden in an der X-Oberfläche angestoßen wurde sich aber nicht ordentlich beenden läßt und dadurch /home blockiert, bis es dann beim herunterfahren abgeschossen wird, und dann ist /home nicht clean beim nächsten booten. </Vermutung>

Wenn er dort stehen bleibt, mit root anmelden und mount eingeben, da sollte ersichtlich sein, dass /dev/md0 als / benutzt wird. Das ist schon die halbe Miete.

Code: Alles auswählen

fsck -fy /home 
damit sollte das Filesystem überprüft werden, danach ein

Code: Alles auswählen

mount -a 
versuchen, wenn dann /home eingehängt ist, dann mit exit , CONTROL-D , halt oder irgendwie das System anhalten und neu starten, Ich würde erwarten, das das dann sauber funktioniert.


Eine Frage noch, mit welchem Befehl hast du das Filesystem auf /dev/md0 kopiert.
Nächster Punkt ist, das Filesystem auf /dev/md0 anzulegen, temporär zu mounten und die originalen Dateien unseres Rootfilesystems dorthin zu kopieren.

automat:/ # mkfs.ext3 -j /dev/md0
...
...
automat:/ # mount /dev/md0 /mnt
automat:/ # rsync -AHPSXavx / /mnt/

Der abschließende Slash bei /mnt/ ist für das gewünschten Ziel-Layout unbedingt erforderlich.

Vorteil von rsync gegenüber anderen Programmen ist ACLs ( -A ) und Xattrs ( -X ) übertragen werden -- dies ist insbesondere bei Samba-Systemen wichtig. (Die Option -A ist vor SUSE Linux 10.1 nicht vorhanden; die Option -X nicht vor openSUSE 10.2.) rsync bietet darüber hinaus eine Statusanzeige und kann abgebrochene Transfers wieder aufnehmen. Sollte der Transfer allgemein länger dauern, so empfiehlt es sich nach Abschluss nochmals rsync laufen zu lassen, um Dateien, die während des 1. Versuchs geändert wurden, auch noch zu übertragen. Man ruft hierzu rsync mit gleichen Parametern und zusätzlich --delete-during (sollte die Option nicht bekannt sein, ist auf --delete auszuweichen) aufzurufen.
Ursprüngelich hatte ich für 10.1 das hier ausprobiert
Nächster Punkt: das Filesystem auf /dev/md0 anlegen und das Filesystem temporär mounten und die orginalen Files dort hinein kopieren.

automat:/proc # mkfs.ext3 -j /dev/md0
...
...
automat:/proc # mount /dev/md0 /mnt
automat:/proc # cd /
automat:/ # find . -mount | cpio -pdumC65536 /mnt
64239 blocks

jetzt ändern wir auf dem "neuem" Rootfilesystem die fstab
robi

fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 24. Jun 2008, 10:39

ok also mit root eingeloggt und
mount
ausgeführt, bringt folgendes ans Licht:

Code: Alles auswählen

/dev/md0 on / type ext3 (rw,acl,user_xattr)
d.h. Du hast recht mit Deiner Vermutung, das Raid läuft (ich meine deswegen hatte ich beim 1. Versuch auch einfach weitergemacht mit dem Raid konfigurieren, dachte mein /home funzt dann auch wenn ich es auf Raid gezogen habe).

Code: Alles auswählen

fsck -fy /home
->
fsck.ext3: No such file or directory while trying to open /dev/hda2
...
error on stat () /dev/hda2: No such file or directory
fsck.ext3 /dev/hda2 failed (status 0x8) Run manually!

hm also meine hda2 wird nicht erkannt, deswegen kann ich auch kein checkdisk laufen lassen ... :?:

mein Rootfilesystem habe ich mit rsync kopiert und nicht mit cpio, das kann ich aber nochmal kopieren, wobei daran kann es ja an dem Punkt nicht scheitern ...

NACHTRAG:

ich habe jetzt mal das Filesystem wie beschrieben mit cpio kopiert und mein Suse NICHT per
shutdown -r now
runtergefahren sondern im KDE per Maus ausgemeldet.
Nun kann ich komicherweise per RAID Eintrag im Bootmenu starten :D

lag an der Abmeldemethode oder am Kopierverfahren ?

na gut weiter im Text, mal schaun ob ich diesmal meine hda1 ins md0 einhängen kann.

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 24. Jun 2008, 11:10

fritzbee21 hat geschrieben:

Code: Alles auswählen

fsck.ext3: No such file or directory while trying to open /dev/hda2
...
error on stat () /dev/hda2: No such file or directory
fsck.ext3 /dev/hda2 failed (status 0x8) Run manually!
scheinbar waren díe Deviceknoten unterhalb von /dev nicht da oder nicht richtig angelegt. Bei dem rsync sollten sowieso bei 10.1 einige der beschriebenen Optionen noch nicht funktionieren. Werde das demnächst im Wiki vermerken, muss sowieso 11.0 testen.

viel Erfolg beim weitermachen.
robi

fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 24. Jun 2008, 17:50

wäre ja zu schön um wahr zu sein gewesen wenn der Rest ohne Probleme geklappt hätte.

Also meine hda Platten habe ich alle den entsprechenden mds zugefügt, dann
menu.lst angepast, Bootloader in beide Platten geschrieben, initrd neu erstellt und neu gebootet.
Wähle ich Platte 1, bekomme ich Kernel Panic

Code: Alles auswählen

mdadm: /dev/md0 has been startet with 2 devices
Attempting manual resume
Kernel panic - not syncing: I/O error reading memory image

Wähle ich Platte 2

Code: Alles auswählen

root (1,0)
Error 21: Selected disk does not exist
Press any key to continue ..._

Ich kann das System aber starten wenn ich den Grub Textmodus aufrufe und meinen Booteintrag wiefolgt abändere:

Code: Alles auswählen

###---------RAID PLATTE 1 ###
title SUSE RAID 10.1 1-Platte
    root (hd0,0)
    kernel (hd0,0)/boot/vmlinuz root=/dev/md0    resume=/dev/hda2  splash=silent showopts
    initrd (hd0,0)/boot/initrd
resume=/dev/hda2 -> anstelle von /dev/md2 (swap)

muss bei resume definitiv ein md Device rein ?


Der Eintrag für Platte 2 schaut so aus:

Code: Alles auswählen

[code]
###---------RAID PLATTE 2 ###
title SUSE RAID 10.1 2-Platte
    root (hd1,0)
    kernel (hd1,0)/boot/vmlinuz root=/dev/md0    resume=/dev/md2  splash=silent showopts
    initrd (hd1,0)/boot/initrd

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 26. Jun 2008, 01:07

Eines der Probleme die du hast, ist im Wiki angesprochen.
Bei Tests unter 10.3 haben sich massive Probleme mit der Kombination von "gespiegeltem Swap" und "Suspend to Disk" ergeben. Auch Krückenlösungen brachten hier nicht den richtigen gewünschten Erfolg. Meine Empfehlung deshalb, man überlege sich, ob man wirklich beide Funktionen in einem Rechner benötigt, oder ob man auf einem Rechner mit gespiegeltem Swap auf "Suspend to Disk" ganz verzichten kann, in diesem Fall diese Funktion hier deaktivieren. In allen anderen Fällen (auch bei Versionen vor 10.3) sollte man abschließend die beiden Funktionen genau testen inwieweit sie wirklich sauber zusammen funktionieren oder nicht.
Mir ist das erst bei den Tests mit 10.3 aufgefallen, vorher hatte ich für Tests immer Serverhardware verwendet, die praktisch nie in einen Suspend Modus gegangen ist, und das von der Funktion und Benutzung des Rechners auch nie vorgesehen war, obwohl es in den Bootoptionen immer mit drin stand. Desshalb sind mir die Probleme dort nie aufgestoßen. Beide Funktionen beißen sich.

Überhaupt keine gute ist Idee ist aber, wenn du dann noch " resume=/dev/hda2 -> anstelle von /dev/md2 (swap) " machst und damit dann in den Suspend to Disk fährst. Genau dann würde ich beim Einschalten einen solchen Panic wie du beschrieben hast, erwarten. Eventuell währe es jedoch auch möglich, das das System damit wieder aus dem Schlaf hoch fährt, doch der Swap-Spiegel ist dann definitiv inkonsitent und der md-Treiber würde nicht entscheiden können welche der Daten jetzt die wirklich gültigen sein sollen, da ein Schreibzugriff auf ein Device unter Umgehung des Raid-Treibers stattgefunden hat. Beim einem der nächsten Lesezugriffe auf den Swap kommt dann sicher ein Panic.

Es sollte nicht unmöglich sein das Problem zu lösen, ich verzichte jedoch darauf das Ganze austesten um eine Lösung zu finden, es ist rausgeschmissene Zeit. Wer gespiegelten Swap benötigt wird mit hoher Wahrscheinlichkeit kein Suspend to Disk machen. Wenn du Suspend to Disk benötigst, dann den Swapspiegel auflösen und statt dessen beide Einzeldevice in der fstab als Swap angeben, die beiden Swappartitionen quasi als Raid 0 betreiben. eines davon kannst du dann beim booten als resume-Device angeben. Willst du jedoch auf den gespiegelten Swap nicht verzichten, dann sollte das resume-Device auf eine 3. Platte außerhalb des Raidverbundes liegen, oder resume abgeschalten werden.


Bei dem Problem mit der 2 Platte, zuerst noch mal überprüfen ob bei dir hdc überhaupt in der /boot/grub/device.map sauber als hd1 eingetragen ist. Wenn du Änderungen an dieser Datei vornimmst, müssen hinterher noch einmal mit Grub beide MBR neu geschrieben werden. Beim Grub-setup sollte automatisch vor dem Schreiben des MBR überprüft sein, ob es eine solche Platte überhaupt gibt und ob sich Grubdateien darauf befinden, da der MBR mit diesen physikalisch verlinkt werden muss.

wahrscheinlich ist hier bei http://wiki.linux-club.de/opensuse/NonR ... gelplatten etwas falsch gelaufen oder du hast dort Fehlermeldungen übersehen oder nicht, oder nicht richtig darauf reagiert.

Im Zweifelsfall müsstest du dann noch einmal die device.map und die komplette Ausgabe (so wie sie im Wiki steht) von der Konfiguration der beiden MBRs , sowie danach die genaue Fehlermeldung beim booten posten.

robi

fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 26. Jun 2008, 12:39

warum mein PC von der 2. Platte nicht startet kann ich Dir nicht sagen, allerdings habe ich durch Umklemmen der 2. Platte auf den 1. IDE Controller (und zusätzlich ex 1 Platte abgeklemmt) festgestellt das auch auf der 2. Platte ein funktionierender Bootloader drauf ist (die Kiste startet enn 1. Platte ausgewählt wird).
Anschließend habe ich wieder zurückgebaut und alle Laufwerke manuell eingehangen.
Ich vermute es liegt irgendwie am BIOS, der Rechner ist ein 850 MHz, P3 da kann es sein das BIOS bootet nicht von der 2. Platte. Im Fehlerfall kann man aber auch durch Umstecken von der 2. Platte booten.

Mein SwapRAID md2 wollte ich wieder auflösen und nur das swap von hda benutzen (hda2), allerdings hatte ich das auf die Schnelle nicht hinbekommen.

Code: Alles auswählen

mdadm --stop /dev/md2
wollte er nicht, weil md2 in Betrieb ist.

Mit Suspend to Disk kann ich aktuell nichts anfangen, wiki sagt mir Suspend to Disk ist eine Art Ruhezustand wobei die Kiste nie in einen solchen gesetzt werden wird.
Ich denke das Beste ist es, das Swap Raid aufzulösen und nur eine Partition als Swap zu benutzen.

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 26. Jun 2008, 14:20

fritzbee21 hat geschrieben: Mein SwapRAID md2 wollte ich wieder auflösen und nur das swap von hda benutzen (hda2), allerdings hatte ich das auf die Schnelle nicht hinbekommen.
solange der swap darauf aktiv ist, geht das nicht, siehe dir mal die Manpages von swapon und swapoff an. Swap kannst du im laufenden Betrieb beliebig ein und aushängen, und selbst wenn er in Benutzung ist wird er ausgehängt, kann nur manchmal etwas dauern.
Nach dem Aushängen von md2 , das Raid auflösen, auch aus der Konfigurationsdatei streichen. Auf die 2 Devices nochmal mit mkswap eine neue Swapsignatur draufschreiben , dann kannst du schon mal mit swapon manuell wieder einhängen wenn du willst. Ansonsten die fstab ändern und noch einmal mkinitrd damit auch die Raidkonfiguration im initrd aktuell ist.
fritzbee21 hat geschrieben: Mit Suspend to Disk kann ich aktuell nichts anfangen,

Ganz Vereinfacht erklärt, wird das System eingefroren und der aktuelle Inhalt des Speichers auf die Platte geschreiben, eben in dieses Suspend Device, und dann einfach abgeschalten, alle Dateien bleiben offen wie sie sind.
Beim Einschalten merkt der Kernel das und läd den Inhalt der Platte wieder in den Speicher und startet das System, es ist dann alles genau so, so wie du es verlassen hast. Fenster offene Programme, offene Dateien usw.

Das kann vom Powermanagement und manuell ausgelöst werden, wird ua in Laptops und Virtuellen Maschinen gerne verwendet.


robi

fritzbee21
Hacker
Hacker
Beiträge: 279
Registriert: 12. Aug 2004, 14:16

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von fritzbee21 » 26. Jun 2008, 18:02

also folgendermaßen bin ich vorgegangen:

Code: Alles auswählen

swapoff -a
mdadm --stop /dev/md2
aus /etc/mdadm.conf die Zeile für md2 entfernt
Platten hda3 & hdc 3mit Swapsignatur beschrieben

Code: Alles auswählen

mkswap /dev/hda3
mkswap /dev/hdc3
dann
/etc/fstab angepasst und beide Platten als swap eingetragen

Code: Alles auswählen

mkinitrd -f md
swapon -s
swapon -a
dann reboot, anschließend nochmal

Code: Alles auswählen

swapon -s
sowohl hda3 als auch hdc3 sind als swap vorhanden


das einzige was ich nicht hinbekommen habe, beide aus dem md2 rauszulösen.
spielt das ne Rolle? md2 wird ja nicht mehr gestartet.

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3160
Registriert: 25. Aug 2004, 02:13

Re: Raid1 nach wiki anlegen - wo ist der Fehler ?

Beitrag von robi » 26. Jun 2008, 22:28

past doch, der Rest ist ein kleiner Schönheitsfehler, es stehen noch die Superblöcke für das Raid auf den Devices, dadurch das sie aber in der mdadm.conf verschwunden sind und danach eine neue initrd gemacht wurde, sie also auch in der mdadm.conf der initrd verschwunden sind, sollten sie nicht mehr gestartet werden. Ich bin mir nicht ganz 100% sicher, aber ich denke mal die Option
--zero-superblock
If the device contains a valid md superblock, the block is over-written with zeros.
läßt den Schönheitsfehler auch noch verschwinden.

robi

Antworten