linux-l: Was'n dat?

Jan-Benedict Glaw jbglaw at lug-owl.de
Di Dez 14 12:06:12 CET 1999


On Tue, Dec 14, 1999 at 10:45:53AM +0100, Jens-Uwe Morawski wrote:
> Ralf Hemmann wrote:
> > Jens-Uwe Morawski wrote:

[Was ist mdrecoveryd?]

> > Nicht wundern, SuSE fragen. Wenn es einen Dienst gibt den man starten
> > kann, dann starten
> > die den ;-)
> Hmm dumm. Ich benutze keine SuSE. Außerdem findet 'find' auf dem
> System nichts was annähernd so heißt.
> 
> > 
> > Durchforste mal Deine /etc/rc.d/* Dateien nach dem mdrecoveryd und
> > kommentiere ihn .
> Dort hab ich natürlich als erstes nach gesucht. Nix gefunden.

Also, wenn das Software-RAID-System unter Linux feststellt, daß Platten in
den RAID Arrays nicht mehr synchron sind (z.B. weil eine Platte ausgefallen
war und Du eine neue 'reingesteckt hast, die nun natürlich noch leer ist), 
dann kommt der mdrecoveryd und schreibt die Daten, die da draufgehören, auf
die neue Platte. Das geschieht im Hintergrund und asynchron zur normalen 
Funktion des Rechners. Deshalb kann man normal (wenn vielleicht auch etwas
langsamer) weiterarbeiten.

Nun die Frage, woher denn der mdrecoveryd kommt... Wenn wir von Software-
RAID unter Linux reden, dann reden wir von 2 Dingen;( Dem alten RAID (der
in den normalen Kerneln zu finden ist, deutlich langsamer ist und den
mdrecoveryd nicht kennt) und dem neuen System, daß als AC-Patch für die
2.2.x'er Kernel zu haben ist. Da ist mdrecoveryd ein kernel thread (aus dem
patch):

+       static char * name = "mdrecoveryd";
.
.
.
+       md_recovery_thread = md_register_thread(md_do_recovery, NULL, name);
+       if (!md_recovery_thread)
+               printk(KERN_ALERT "bug: couldn't allocate md_recovery_thread\n");


So, und was ist nun ein kernel thread? Im prinzip nichts anderes, als ein 
ganz normal gestartetes Programm, nur daß es 1. direkt vom Kernel gestartet
wird und 2. dadurch deutlich mehr Rechte hat. kmod ist ähnlich implementiert:
da wird dann aber ein Programm gestartet, daß aus dem user space kommt...
Von dieses kernel threads gibt's aber noch einige mehr: kapmd, kswapd und
kflushd fallen mir da so ad hoc ein...

So, im normalen Kernel wirst Du also mdrecoveryd nicht finden (weil nicht
vorhanden). Du hast also einen kernel, der schon (von Deiner Distribution
her) gepatched ist/war. Da solltest Du übrigens aufpassen... Wenn Du RAID
benutzt und dann einen ungepatchten Standard-Kernel (mit Standard-RAID)
startest, dann wirst Du Wunder erleben...

MfG, JBG




-- 
Fehler eingestehen, Größe zeigen: Nehmt die Rechtschreibreform zurück!!!
keyID=0x8399E1BB fingerprint=250D 3BCF 7127 0D8C A444 A961 1DBD 5E75 8399 E1BB
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 240 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/19991214/a736cbf8/attachment.sig>


Mehr Informationen über die Mailingliste linux-l