Was ist der effektivste Weg, um einen Linux-Webserver für das manuelle Failover einzurichten?


7

Ich verwalte derzeit einen kleinen Webserver unter Ubuntu Linux mit Apache, MySQL und SSH. Ich sichere es mit rsync auf einem anderen Server, aber ich sichere es in einem / backup-Verzeichnis.

Ich möchte es so einrichten, dass ich bei einem Ausfall des ersten Servers die IP-Adresse des zweiten Servers ändern und alle Benutzer, Dateien, Datenbanken usw. einsatzbereit habe.

Hat jemand Vorschläge, wie dies am einfachsten / besten zu erreichen ist?

Überlegungen

  • Benutzer
  • Datenbanken
  • Apache-Konfiguration
  • Dateien
  • Stellen Sie sicher, dass auf beiden Boxen dieselbe Software installiert ist. (müssen dies wahrscheinlich im Voraus tun)

Antworten:


1

Bei dateibasierten Diensten (einem Webserver usw.) kann rsync den zweiten Server effektiv auf dem neuesten Stand halten (Benutzer, Konfigurationen usw.). Wenn es um Datenbanken geht, werden die Dinge etwas komplexer (ich habe MySQL und einen Slave-Server verwendet dafür und es war sehr effektiv, ich habe auch PostgreSQL in einigen HA / Standby-Konfigurationen verwendet, aber es war viel ungeschickter)

In Kombination mit ein wenig IP-Diebstahl (ein schnelles Skript zum Zuweisen der IP des ausgefallenen Computers zur Schnittstelle des Sicherungscomputers) kann dies zu einer relativ einfachen Einrichtung führen, ermöglicht jedoch eine schnelle Wiederherstellung.

Nur eine Sache zu beachten - Vorsicht vor dem Failback. Das Verschieben von Diensten auf einen Sicherungscomputer ist eine Sache. Wenn Sie sie nach der Behebung des Fehlers wieder verschieben, kann dies zu Problemen führen. Achten Sie genau auf die Datenbanken.

LinuxHA ist ein (etwas schwergewichtiger) Ansatz, wenn Sie sich dafür entscheiden, es etwas automatisierter zu gestalten

http://www.linux-ha.org/


1

Sie können rsync oder drbd verwenden , um Ihren Sicherungsserver synchron zu halten, oder Ihre Daten über nfs von einem dritten Server bereitstellen . Wenn Sie es einfach halten möchten, würde ich auf demselben Sicherungsserver auf dem Sicherungsserver sichern wie auf dem Quellserver.

heartbeat2 ist eine gute Lösung für die Verwaltung der IP-Adressen und bietet Tools für das automatische oder manuelle Failover - und berücksichtigt das Leeren des Arp-Cache und andere Dinge, an die ich nicht gedacht hätte.


0

Hier kann Virtualisierung helfen. Sie können zwei Server als Hostserver ausführen, beide mit einem einzigen virtuellen Server. Auf dem Live-Server wird der virtuelle Server ausgeführt, während auf dem Sicherungsserver der virtuelle Server "ausgeschaltet" ist, er jedoch weiterhin auf das Dateisystem dieses Servers zugreifen kann.

Anschließend können Sie regelmäßige Rsyncs vom virtuellen Live-Server zum virtuellen Backup-Server ausführen. Wenn der Live-Server ausfällt, müssen Sie nur den virtuellen Sicherungsserver starten.

Die Details hängen davon ab, welche Virtualisierungssoftware Sie verwenden (ich habe dies bereits mit Linux-Vserver gemacht), aber einige wichtige Punkte sind:

  • Sie müssen einige Einstellungen ausschließen - insbesondere die IP-Adresse.
  • Testen Sie Ihr Setup, wenn die Dinge funktionieren - Sie müssen wissen , dass es funktioniert
  • Lassen Sie DNS sowohl für www1.mysite.com als auch für www2.mysite.com einrichten, wobei www.mysite.com ein Round Robin für www1 und www2 ist
  • Sie könnten sogar einen Heartbeat-Service in Betracht ziehen, um den Sicherungsserver automatisch zu starten. Dies kann jedoch zu komplex sein, es sei denn, Ausfallzeiten sind sehr teuer.

0

Ich glaube, Heartbeat wird dies für Sie tun, aber wenn Sie es nicht verwenden, empfehle ich, manuell eine virtuelle IP für den Webserver einzurichten.

Jeder Webserver hat seine eigene reale IP sowie eine virtuelle IP. Die virtuelle IP wird einer Maschine nur zugewiesen, wenn es sich um den aktiven Webserver handelt.

Dieses Setup bedeutet, dass ssh, rsync und alle anderen Tools weiterhin auf den realen IPs ausgeführt werden können, ohne durch eine sich ändernde IP-Adresse verwirrt zu werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.