[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shutdown-Reihenfolge



Hallo Michael,

in Deinem Fall hätte es gereicht, wenn Du die Abhängigkeit des
mdadm-raid von open-iscsi in dem LSB Init Info Block eingetragen
hättest, also in /etc/init.d/mdadm-raid diese beiden Zeilen angepasst
hättest:

# Required-Start:    mountkernfs open-iscsi
# Required-Stop:     mountkernfs open-iscsi

und danach die Befehle

insserv -r -f mdadm-raid
insserv mdadm-raid

abgesetzt hättest.

In meinem Squeeze wurden dadurch die zum Beenden der Daemons
relevanten Verlinkungen in /etc/rc*.d/ so angeordnet
/etc/rc0.d/K01mdadm
/etc/rc0.d/K02mdadm-raid
/etc/rc0.d/K03open-iscsi
/etc/rc1.d/K01mdadm
/etc/rc1.d/K03open-iscsi
/etc/rc6.d/K01mdadm
/etc/rc6.d/K02mdadm-raid
/etc/rc6.d/K03open-iscsi
so dass open-iscsi auf jeden Fall erst nach mdadm-raid beendet wird.


Ich halte die nicht dokumentierte Abhängigkeit des mdadm-raid von
open-iscsi (bzw. iscsi) für einen Bug, der mit der Änderung dieser
beiden Zeilen in /etc/init.d/mdadm-raid elegant abgefangen werden
könnte:

# Should-Start:    mountkernfs iscsi
# Should-Stop:     mountkernfs iscsi

Da /etc/init.d/open-scsi die "boot facilities" (mir fällt jetzt keine
gute Übersetzung dafür ein) open-iscsi und iscsi bereitstellt, reicht
die Abhängigkeit von iscsi aus.

Should-Start und Should-Stop definieren weiche Abhängigkeiten, d.h.
wenn die in diesen Zeilen genannten boot facilities durch andere
init-scripts bereitgestellt werden, dann werden sie berücksichtigt,
ansonsten wird durch insserv kein Fehler ausgegeben.

Was meint ihr, ist das einen bugreport wert?

Viele Grüße!
Matthias Böttcher

PS.
Michael: Sorry für die zu späte Antwort, aber ich habe erst heute nach
Deiner ausführlichen Antwort den Thread gründlich gelesen.

Am 6. September 2011 14:37 schrieb Michael Weber
<michael.weber@fh-stralsund.de>:
> Hallochen zusammen,
>
> hier nun die Problemlösung.
>
> Folgende Sache sollte realisiert werden. Ich hole per open-iscsi zwei LUNs
> rein, die mit mdadm zu einem Linux-Raid-1 verschraubt werden. Alles soweit
> kein Problem.
>
> Jetzt die Probleme konkret für den Shutdown bzw. Reboot. Bedingt durch die
> parallele Verarbeitung der ShutdownBefehle kommen sich mdadm-raid und
> open-iscsi ins qehege. Der erste von beiden versucht das aktive Raid zu
> stoppen, während das zweite Skript bereits die LUNs unmounten will.
> Zusätzlich dazu wird das noch gemountete Raid nicht ausgehangen, wodurch das
> Raid beim Start des Systems inkosistent ist. Quasi ist das mal die
> Kurzfassung von den Problemen.
>
> Die Lösung ist ab Squeeze ein wenig kniffelig. Da muss man sich
> LSBInitScripts bzw. DependencyBootSequenz zur Brust nehmen.
>
> Als erstes habe ich nen manuellen Unmount gemacht. Dafür hat ich ein extra
> Skript geschrieben und im Verzeichnis init.d gespeichert. Da war wichtig,
> dass es vor mdadm-raid gestoppt wird.
>
> Als nächstes wurde der LSB-Header von mdadm-raid überschrieben.
>
> Dann wurde ein kleines Pause-Skript erstellt. Grund hierfür ist, dass
> mdadm-raid für den Stop ein wenig länger braucht. Dummerweise versucht
> open-iscsi bereits die LUNs zu entziehen, wodurch natürlich eine
> Fehlermeldung erscheint. Daher wird eine Pause nach dem Ausführen von
> mdadm-raid eingeführt.
>
> Zu guter letzt wurde noch der LSB-Header von open-iscsi angepasst, so dass
> er erst startet, wenn die Pause durchgelaufen ist.
>
> Als Folge dessen wird erst ein Unmount, dann der Raid-Stop, dann die Pause
> und zu guter letzt der LUN-Unmount durchgeführt. Das war die Kurzfassung.
>
> Wer die Langfassung mit allen Details haben will, soll mir ne Nachricht
> zukommen lassen. eMail-Addi ist ersichtlich. Betreff soll dann einfach
> "Shutdown-Reihenfolge" sein.
>
> Gruß
> Michael


Reply to: