[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Job Scheduler (was: Re: File-Locking in Shellscripten auf NFS)
[Thread Prev] | [Thread Next]
- Subject: Job Scheduler (was: Re: File-Locking in Shellscripten auf NFS)
- From: Raphael Eiselstein <rabe@xxxxxxxxx>
- Date: Sun, 12 Dec 2010 02:26:48 +0100
- To: uugrn@xxxxxxxxxxxxxxx
On Thu, Dec 09, 2010 at 10:23:03AM +0100, Alexander Holler wrote: > >Gibt es eine *einfache* Loesung basierend auf NFS? > > Ich wuerde das eigentliche Problem beseitigen. D.h. die offensichtlich > zentrale Aufgabe (sonst waere Mehrfachausfuehrung ja wohl kein Problem), > zentral erledigen lassen, oder die Problemstellung so angehen, dass > Mehrfachausfuehrung kein Problem ist. Mehrfachausfuehrung ist in diesem konkreten Fall kein *Problem* aber sinnlos. > Dazu Dateien zu nutzen ist, wie bereits festgestellt, mehr oder weniger > ungeeignet, zumindest wenn das Locking des Dateisystems nicht zur > Synchronisation missbraucht werden kann. > > Mehr kann man aufgrund der duerftigen Problembeschreibung nicht sagen. Im konkreten Fall geht es darum, dass auf 2 Systemen Copyjobs laufen, die z.B. per rsync Daten von rsyncd-Quellen auf NFS kopieren. Das Ganze erfolgt mehrmals pro Stunde, per cron (und das ist auch das eigentliche Problem, dazu unten mehr). Beide Kopiersysteme sind mehr oder weniger identisch anzusehen, sie laufen unabhaengig voneinander aber erfuellen die gleiche Funktion. Falls ein System ausfaellt oder aus anderen Gruenden nicht laeuft, werden dennoch Files kopiert. Die cronjobs sind zeitlich so eingestellt, dass zB einer auf System A um hh:10 und der andere auf System B um hh:40 startet, effektiv alle 30min. Das ist *normal* kein Problem, weil die einzelnen Jobs nur <2min lang laufen, die kommen sich also praktisch nie ins Gehege und falls sie doch mal parallel laufen, gibt schlimmstenfalls 2 parallele Transfers der gleichen Datei und der job, der zuletzt fertig wird (mv $tmp $target) ueberschreibt halt die Datei vom ersten. Im Ergebnis nicht weiter schlimm. Das eigentliche Problem ist, dass hier cron verwendet wird. Lock/PIDfiles sind ein Workaround fuer cron, die Lockfile-Problematik auf NFS (verteilt) mit der Erkennung abgebrochener Jobs (PID checken) ist ein Workaround fuer verteiltes Locking etc etc. Unterm Strich schaff ich mir hier mit cron mehr Probleme als ich loese. Was ich hier brauche ist ein Scheduler, der eine Aufgabe an einen von mehreren gleichartigen Workern delegiert und die Ausfuehrung ueberwacht und somit a) die regelmaessige Ausfuehrung und b) die Ausfallsicherheit des Dienstes sicherstellt. "cron" ist fuer solche Faelle gaenzlich ungeeignet. Nur: woher mal eben einen Job-Scheduler hernehmen? Und wie betreibt man diesen Scheduler dann wiederum hochverfuegbar? Falls ich eine Loesung dafuer habe, poste ich sie hier. Falls jemand eine Idee hat, was ich mir mal anschauen koennte, gerne ... Gruss Raphael -- Raphael Eiselstein <rabe@xxxxxxxxx> http://rabe.uugrn.org/ xmpp:freibyterægmx.de | https://www.xing.com/profile/Raphael_Eiselstein GnuPG: E7B2 1D66 3AF2 EDC7 9828 6D7A 9CDA 3E7B 10CA 9F2D .........|.........|.........|.........|.........|.........|.........|.. -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/