Hallo zusammen,
bevor ich zum eigentlichen Thema komme, an dieser Stelle erst mal ein großes Lob an diese Community! Ich habe in den letzten Wochen und Monaten viele meiner Ubuntu-Herausforderungen mit Hilfe dieses Forums lösen können. Das hat mir eine ganze Menge Zeit, Frust und Ärger erspart. 👍
Nun zum eigentlichen Thema:
Ich habe in unserer Firma ein kleines Intranet aufgebaut, über das wir einen Großteil unserer Kunden-Projekte abwickeln möchten. Anders als erwartet, wurde dieses "Tool" sehr schnell angenommen und wird bereits intensiv eingesetzt. Da wir uns von diesem Tool jetzt natürlich zunehmend abhängig machen, kommt langsam das Thema "Ausfallsicherheit" ins Gespräch.
Auf dem Ubuntu (nennen wir ihn mal Server1) laufen eine MySQL-Datenbank und Apache, die zwei Festplatten des Rechners laufen im RAID1-Verbund. Von der Datenbank werden tägliche Backups gemacht und vom System wöchentliche, die auf einem NAS gespeichert werden. Alles schön und gut... Was aber, wenn z.B. das Netzteil den Geist aufgibt? Ein Ausfall von unter einer Stunde wäre nicht problematisch, alles darüber hinaus wird kritisch. Wenn ich also mal unterwegs/im Urlaub/krank/etc. bin, steht der ganze Laden still.
Wie gehe ich jetzt am besten vor? Einen zweiten, identischen Rechner (nennen wir ihn mal Server2) habe ich mir bereits besorgt. Als erstes würde ich das komplette System mit Hilfe dieser Anleitung spiegeln: https://wiki.ubuntuusers.de/ubuntu_umziehen
Anschließend würde ich eine MySQL-Replikation einrichten und den html-Ordner mittels Cronjob alle x Stunden synchronisieren lassen, da dort häufig Änderungen vorgenommen werden (zumindest im Moment noch). Im Fall der Fälle müssten aber IP-Adresse und Hostname von Server2 manuell geändert und der Rechner neugestartet werden, damit er die Rolle von Server1 übernimmt. Dieser Vorgang lässt sich doch sicher automatisieren, oder? Nach ersten Recherchen scheint "Heartbeat" die Lösung dafür zu sein. Bevor ich aber intensiver in das Thema einsteige, wollte ich zunächst die Gewissheit haben, dass dies wirklich der richtige Weg ist. 😉
Funktioniert Heartbeat wirklich so, dass Server2 dann automatisch die Rolle von Server1 übernimmt? Was passiert, wenn Server1 nach 5 Minuten wieder verfügbar ist (z.B. aufgrund eines unerwarteten Restarts)? Stuft sich Server2 dann wieder zurück? Wie reagiert die MySQL-Replikation? Droht ein Datenverlust oder holt sich der MySQL-Master von Server1 die Daten, die in der Zwischenzeit in die Datenbank von Server2 geschrieben wurden?
Vielen Dank schon mal im Voraus für eure Hilfe!