
Ich möchte ein automatisches Failover für Apache und MySQL einrichten. Ich plane, einen kleinen Proxyserver vor zwei Apache-Boxen und zwei MySQL-Boxen zu platzieren. Apache wird von Zeit zu Zeit Daten vom Master -> Slave rsyncen und MySQL wird in Master/Slave für die Replikation eingerichtet. Im Fehlerfall könnten die Backup-Box(en) übernehmen, bis der Master neu aufgebaut ist.
Der Proxyserver davor wird einfach als Verkehrspolizist mit einer Art Heartbeat-Software betrieben (ich suche derzeit nicht nach Lastausgleich). Auf diese Weise muss ich mir keine Gedanken über die Änderung unserer Firewall machen, falls die Hauptboxen ausfallen. IstLinux-HAdie beste Option oder gibt es irgendwelche Vorschläge?
Antwort1
Linux HA ist ein nettes Toolset. Wenn Sie es einfach haben möchten, wählen Sie Heartbeat 1; Heartbeat 2 wurde für Cluster mit mehr als 2 Knoten und XML-Konfiguration verwendet. 1 reicht für die meisten einfachen Fälle mit 2 Knoten aus.
Ich stimme zwar zu, dass es immer eine gute Idee ist, Ihrer Anwendung einen Proxy vorzuschalten (mehrere Server so auszuführen, als ob sie von einem virtuellen Server kommen usw.), aber Ihr Setup, so wie Sie es beschreiben, klingt nach der Einführung eines neuen SPF: des Proxys.
In Ihrem Fall wäre es wahrscheinlich besser, beide Server in einer Aktiv/Aktiv-Konfiguration auszuführen, einschließlich vollständigem Webdienst und vollständigem Proxydienst auf beiden(!).
Stellen Sie Heartbeat einfach so ein, dass drei IPs übernommen werden: Die für den aktiven MySQL-Server, die für den aktiven Webserver und die für den aktiven Proxy (nur die letzte muss öffentlich sein).
Stellen Sie dann den Proxy so ein, dass er immer zur internen IP des „aktiven Webservers“ geht, und den Webserver so, dass er zur IP des „aktiven DB-Servers“ geht.
Wenn Sie für eine Lastausgleichskonfiguration bereit sind, müssen Sie lediglich das Umschalten der Webserver-IP aufgeben und stattdessen beide Webserver in die Back-End-Servergruppe Ihres Proxys einfügen.
Die Ersteinrichtung könnte folgendermaßen aussehen:
Server A (Apache on Port 80) Server A (Apache Port 8080) Server A MySQL <-----------
| \ | \ | \
Web <-> Public Proxy IP >-> Shared Private Web IP >--> Shared Private MySQL IP | Mysql Synchronization Link
| / | / | /
Server B (Apache on Port 80) Server B (Apache Port 8080) Server B MySQL <-----------
Wenn Sie bereit sind, können Sie nahtlos zum echten Lastenausgleich (wie für das Web erwähnt) und MySQL-Clustering übergehen, ohne dass für den Benutzer sichtbare Änderungen vorgenommen werden.
Und das Beste: Wenn Sie Ihre Anwendung trotzdem sofort hinter den Proxy stellen (selbst wenn es sich bei den Proxys „in Wirklichkeit“ nur um dieselben Server handelt), werden viele Fehler in Ihren Webanwendungen frühzeitig aufgedeckt (Annahmen zu Hostnamen und Pfaden bei der Link-Erstellung usw.)!
Antwort2
http://studyhat.blogspot.com/2009/11/clustering-linux-ha.html
Der obige Link hilft Ihnen beim Einrichten von Linux HA