Koordinieren eines Skripts, sodass es nur auf einem der identischen Server mit Lastenausgleich ausgeführt wird

Koordinieren eines Skripts, sodass es nur auf einem der identischen Server mit Lastenausgleich ausgeführt wird

Ich habe zwei identisch konfigurierte CentOS 5-Server (möglicherweise in Zukunft mehr). Ich muss auf einem davon einen Cron-Job ausführen, und zwar nur auf einem davon.

Ich kenne die RedHat Cluster Suite (wir verwenden sie auf anderen Servern), aber für diese Aufgabe ist sie ein zu großes Kaliber und außerdem funktioniert sie bei weniger als drei Knoten nicht wirklich gut.

Gibt es etwas Leichtes, das ich dafür verwenden kann?

Die Server können direkt miteinander kommunizieren. Ich nehme an, ich kann etwas über SSH oder Nrpe entwickeln (zwei Server sind bereits auf diesen Servern installiert), aber ich habe mich gefragt, ob es bereits etwas gibt.

Antwort1

Dies ist mit einer Sperrdatei auf einem gemeinsam genutzten Dateisystem wie NFS ziemlich einfach. Ich gehe jedoch davon aus, dass Sie dieses Setup nicht haben.

Hier sind ein paar Ideen, die mir in den Sinn kommen:

  1. Implementieren Sie eine Sperre für eine gemeinsam genutzte Ressource oder etwas, auf das beide Maschinen zugreifen können. Können sie beispielsweise beide auf eine externe Netzwerkressource schreiben? Nachteil: Ich bin sicher, es gibt viele Möglichkeiten für Race Conditions.

  2. Nutzung des Readhat-DLM und Zugriffssperre überperl DLM::Client. Nachteil: Wie Sie erwähnen, könnte es schwerer sein, als Sie möchten.

  3. Probieren Sie den Ruby Lockserver ausOffizier. Könnte Spaß machen, wenn Sie sich für Ruby interessieren.

  4. Hier ist ein weiterer verteilter Sperrmechanismus von Perl:IPC::Schließfach. Vorteil: Sie müssen keinen weiteren Dienst wie das Linux-Kernel-DLM einrichten.

  5. Nutzen Sie einen Messaging-Dienst wieKaninchenMQzum Sperren. Auch hier wahrscheinlich ziemlich schwergewichtig.

Ich bin selbst Perl-Programmierer, daher werde ich wahrscheinlich zuerst IPC::Locker ausprobieren. Mir gefällt die Einfachheit dieses Ansatzes, wenn man nur zwei Server hat.

Antwort2

Für Unternehmenslösungen verwenden SieBMC Control-MEine Open-Source-Alternative wäreJob-Scheduler

verwandte Informationen