Frage

Ich erstelle eine Serververwaltungsschnittstelle für einige meiner Server (die virtuelle Server hosten) und wollte wissen, wie ich eine Master-Slave-Konfiguration für diese Schnittstelle am besten implementieren kann.

Der Master-Server sollte sich mit allen Slave-Servern verbinden, um Informationen abzurufen (eine allgemeine Übersicht bereitzustellen) und ihnen Befehle zu senden (die Verwaltung bleibt zentralisiert).Auf dem Master-Server selbst befinden sich jedoch möglicherweise auch virtuelle Server. Aus diesem Grund hatte ich vor, dieselbe Anwendung auf allen physischen Knoten bereitzustellen und herauszufinden, ob der Knoten ein Master oder ein Slave ist.

//Randnotiz:In gewisser Weise scheint es fast eine Rekursion zu sein, haha

Ein paar Ideen, die mir eingefallen sind:

  • Separate Datenbankschemata für einen Master und einen Slave. Die App überprüft das Schema, um den Servertyp zu bestimmen.
  • Ein Feld in der Serverlistentabelle, das einen Server in der Tabelle als Master oder Slave bezeichnet
War es hilfreich?

Lösung 2

Ich habe eine einfache Lösung für mein Problem gefunden.Ich habe gerade eine SLAVE-Datei zur Installation eines Slaves hinzugefügt und das Programm prüft, ob diese Datei vorhanden ist.Wenn dies der Fall ist, wird dieser Server als Slave bezeichnet. Das ist völlig überdacht.

Andere Tipps

Sie könnten zwar Ihre eigene Lösung entwickeln, die beste Wahl ist jedoch eine Art Server-Automatisierungs-Framework/-App wie Puppet oder Chef.Persönlich bevorzuge ich den Koch, aber es gibt viel Unterstützung für beide.Zumindest könnten Sie von ihnen wahrscheinlich einen Einblick bekommen, wie Sie dies selbst erreichen können :)

Anstatt ausführlich zu erklären, was sie tun, würde ich vorschlagen, dass Sie sich die jeweiligen Websites ansehen:

Hier sind jedoch die Einführungstexte der einzelnen Websites ...


Chef ist ein Systemintegrationsframework, das entwickelt wurde, um die Vorteile des Konfigurationsmanagements auf Ihre gesamte Infrastruktur zu übertragen.Mit Chef können Sie:

  • Verwalten Sie Ihre Server, indem Sie Code schreiben, nicht indem Sie Befehle ausführen.(über Kochbücher)
  • Integrieren Sie sich eng in Ihre Anwendungen, Datenbanken, LDAP-Verzeichnisse und mehr.(über Bibliotheken)
  • Konfigurieren Sie ganz einfach Anwendungen, die Kenntnisse über Ihre gesamte Infrastruktur erfordern („Auf welchen Systemen wird meine Anwendung ausgeführt?“ „Was ist der aktuelle Master-Datenbankserver?“)

Puppet ist eine deklarative Sprache zum Ausdrucken der Systemkonfiguration, ein Client und Server zum Verteilen sowie eine Bibliothek zum Realisieren der Konfiguration.

Anstatt die Serververwaltung durch die Automatisierung aktueller Techniken anzugehen, formuliert Puppet das Problem neu, indem es eine Sprache bereitstellt, um die Beziehungen zwischen Servern, den von ihnen bereitgestellten Diensten und den primitiven Objekten, aus denen diese Dienste bestehen, auszudrücken.Anstatt sich mit den Details zu befassen, wie eine bestimmte Konfiguration erreicht oder ein bestimmter Dienst bereitgestellt wird, können Puppet-Benutzer einfach ihre gewünschte Konfiguration mithilfe der Abstraktionen ausdrücken, mit denen sie vertraut sind, z. B. Dienst und Knoten, und Puppet ist dafür verantwortlich, die Konfiguration entweder zu erreichen oder Bereitstellung ausreichender Informationen für den Benutzer, um aufgetretene Probleme zu beheben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top