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

[gelöst] Systempartition mit Raid1 + eigener Kernel

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

Moderator: Moderatoren

Antworten
mcgege
Newbie
Newbie
Beiträge: 4
Registriert: 2. Feb 2009, 11:22

[gelöst] Systempartition mit Raid1 + eigener Kernel

Beitrag von mcgege » 2. Feb 2009, 12:00

Hallo zusammen,

ich habe mir neulich einen neuen Linux-Server für daheim gebastelt und OpenSUSE 11.1 64bit installiert. Bei der Installation habe ich zwei SATA-Platten als RAID1 zusammengefasst:

/dev/md0 -> /boot : /dev/sda5, /dev/sdb5
/dev/sda6, /dev/sdb6 jeweils als Swap
/dev/md1 -> / : /dev/sda7, /dev/sdb7
/dev/md2 -> /daten : /dev/sda8, /dev/sdb8

Soweit, so gut - leider läuft mein System nicht 100%tig stabil (z.B. Verzögerungen in der Shell bei Zugriff auf Festplatte, unter hoher IO-Last hängt sich irgendwann das System auf, irgendwann gibt es Zombie-Prozesse usw.).

Um dem Problem auf die Spur zu kommen möchte ich erst einmal einen auf das System zugeschnittenen Kernel ausprobieren. Beim Booten des neuen Kernels (modular, allerdings ohne initrd) bin ich dann auf das Problem gestoßen, dass die automatische Erkennung der Raid-Partitionen nicht funktioniert. Suse schreibt Superblocks der Version 1.0, die automatische Erkennung im Kernel setzt allerdings Version 0.9 voraus.

Nun die Frage in die Runde: wie komme ich mit überschaubarem Aufwand zum Ziel, meinen eigenen Kernel zu booten? Gibt es vielleicht die Möglichkeit, erst die Root-Partition von einer der Festplatten readonly zu booten, und dann auf das Raid-Device zu schwenken?

Was sind Eure Erfahrungen / Lösungsansätze mit gespiegelter Root-Partition?


Michael
Zuletzt geändert von mcgege am 4. Feb 2009, 08:47, insgesamt 1-mal geändert.

Werbung:
josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5078
Registriert: 23. Sep 2008, 17:09

Re: Systempartition mit Raid1 + eigener Kernel

Beitrag von josef-wien » 2. Feb 2009, 17:37

mcgege hat geschrieben:die automatische Erkennung im Kernel setzt allerdings Version 0.9 voraus
Das bestreite ich. Ich habe noch nie einen selbst gebauten Kernel verwendet und kann Dir daher diesbezüglich nicht weiterhelfen. Es muß aber beim Bauen eine Einstellung geben, 1.0 einzubinden, schließlich können die "fertigen" openSUSE-Kernel (und nicht nur diese) das auch. "modular, allerdings ohne initrd" sagt mir auch nichts (und Du brauchst gar nicht zu versuchen, mir das erklären zu wollen), aber wenn es geht, ohne initrd auszukommen, mußt Du auf andere Art die RAID1-Unterstützung aktivieren.

mcgege
Newbie
Newbie
Beiträge: 4
Registriert: 2. Feb 2009, 11:22

Re: Systempartition mit Raid1 + eigener Kernel

Beitrag von mcgege » 2. Feb 2009, 18:58

josef-wien hat geschrieben:Das bestreite ich. Ich habe noch nie einen selbst gebauten Kernel verwendet und kann Dir daher diesbezüglich nicht weiterhelfen. Es muß aber beim Bauen eine Einstellung geben, 1.0 einzubinden, schließlich können die "fertigen" openSUSE-Kernel (und nicht nur diese) das auch.
Ist aber so, s. Documentation/md.txt:
When md is compiled into the kernel (not as module), partitions of type 0xfd are scanned and automatically assembled into RAID arrays. This autodetection may be suppressed with the kernel parameter "raid=noautodetect". As of kernel 2.6.9, only drives with a type 0 superblock can be autodetected and run at boot time.
Type 0 ist dabei Version 0.9, die sich auch bei mdadm mit "-e 0" erzeugen lässt - Suse hat mir allerdings eine Version 1.0 geschrieben.
Die Raid-Partitionen werden bei Suse in der initrd gemounted, und zwar nicht durch die Automount-Funktion den Kernels - wenn man mal die initrd auspackt, dann sieht man einen Berg Scripte und Tools, die das erledigen ... das ist für mich allerdings nicht der Weg, den ich gehen möchte ... :/

Michael

josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5078
Registriert: 23. Sep 2008, 17:09

Re: Systempartition mit Raid1 + eigener Kernel

Beitrag von josef-wien » 3. Feb 2009, 00:07

Als "Nicht-Kernel-Ersteller" kann ich Dir bei Deinem Problem nicht wirklich helfen, ich versuche nur, aus der Theorie heraus Denkanstöße zu geben.
mcgege hat geschrieben:When md is compiled into the kernel (not as module)
Logischer Schluß Nr. 1: Da es in openSUSE funktioniert, muß md wohl als Modul realisiert sein.
mcgege hat geschrieben:Die Raid-Partitionen werden bei Suse in der initrd gemounted
Seitenschritt: In der initrd steckt die Unterstützung, daß der Bootvorgang von einem RAID-Laufwerk möglich ist. Den Rest erledigt /etc/init.d/boot.md.
mcgege hat geschrieben:das ist für mich allerdings nicht der Weg, den ich gehen möchte
Logischer Schluß Nr. 2: Wenn Du openSUSE einen anderen Kernel verpaßt, der nicht der openSUSE-Logik folgt, wirst Du Dich möglicherweise der vielen Probleme nicht mehr erwehren können, die auf Dich einströmen werden. Oder aber Du baust Dir nicht nur einen eigenen Kernel, sondern gleich ein ganzes mcgege-Linux (und das ist nicht sarkastisch, sondern ernst gemeint).

mcgege
Newbie
Newbie
Beiträge: 4
Registriert: 2. Feb 2009, 11:22

Re: Systempartition mit Raid1 + eigener Kernel

Beitrag von mcgege » 3. Feb 2009, 08:42

josef-wien hat geschrieben:Als "Nicht-Kernel-Ersteller" kann ich Dir bei Deinem Problem nicht wirklich helfen, ich versuche nur, aus der Theorie heraus Denkanstöße zu geben.
... und dafür bin ich ja auch dankbar ... ;)
josef-wien hat geschrieben:Logischer Schluß Nr. 2: Wenn Du openSUSE einen anderen Kernel verpaßt, der nicht der openSUSE-Logik folgt, wirst Du Dich möglicherweise der vielen Probleme nicht mehr erwehren können, die auf Dich einströmen werden. Oder aber Du baust Dir nicht nur einen eigenen Kernel, sondern gleich ein ganzes mcgege-Linux (und das ist nicht sarkastisch, sondern ernst gemeint).
Ja, das hab ich früher auch schon gemacht (auch ernst gemeint) - allerdings muss man ja nicht immer den steinigsten Weg wählen.

Ich bin einfach auf der Suche nach Tipps / Erfahrungen der Community - mir selbst sind hier zwei Ansätze eingefallen:

1) Kernel bootet mit Root-Partition = eine Hälfte des Raid1-Verbundes im readonly-mode (also bei mir /dev/sda7) und "wechselt" dann readwrite auf /dev/md1. Falls sowas überhaupt möglicht ist ...

2) Die Superblocks werden konvertiert / neu geschrieben als Version 0.9, dann klappt auch das automatische Mounten im Kernel.


Tja

Michael

mcgege
Newbie
Newbie
Beiträge: 4
Registriert: 2. Feb 2009, 11:22

[gelöst] Systempartition mit Raid1 + eigener Kernel

Beitrag von mcgege » 4. Feb 2009, 08:46

Hallo zusammen,

ich hab das Problem gestern nun selbst gelöst - und zwar so:
  1. Neueste Kernel-Sourcen ausgepackt
  2. Die Config des aktuellen Suse-Kernels als Basis verwendet (gzip -cd /proc/config.gz > .config ; make oldconfig)
  3. Unnötige Kernel-Anteile entfernen (was ihr behalten wollt und von Suse als Modul geladen wird, auch als Modul belassen!)
  4. make ; make modules_install ; make install
Mit "make install" bastelt Suse dann auch eine passende initrd und die Root-Partition wird damit sauber eingehängt.


Michael

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast