Server spiegeln - Server Failover

  • Guten Morgen


    Ich habe die letzten Tage sehr viele zu den Themen recherchiert, und weiss irgendwie nicht was eine gute möglichkeit wäre.


    Was ich bisher habe:

    Ein Rootserver RS 1000 G8. Auf diesem läuft eine MariaDB, ein Webserver mit nginx und php 7.2/7.3 sowie ein E-Mailserver mit Dovecot und Postfix. Das ganze läuft auch sauber und Stabil. Verwaltet wird alles per SSH, da ich mit den Verwaltungsoberflächen nicht warm wurde und es nur sehr selten änderungen oder neue nginx Hosts gibt. Die E-Mails habe ich über eine Datenbank verwaltet, so dass ich die Konten einfach über mySQL erstellen kann.


    Probleme:

    Einerseits gibt es ja mal Probleme das es sonst technische Probleme gibt. Vorallem gibt aber immer mal wieder so doofe selbstverschuldete Probleme - wo selbstverständlich ein vorheriger Snapshot vergessen geht :D - das der Server . Grad vor wenigen Tagen habe ich ein Update zu schnell durchgeführt und nicht gemerkt das etwas deinstalliert wurde. Bei der Reparatur hat er dann jedoch Python deinstalliert was dazu führte das alle Zertifikate von certbot gelöscht sind. Dies ist natürlich sehr ärgerlich. Wenn etwas schief läuft dann alles. Ich hatte entsprechend einige Stunden da alles wieder sauber lief. Backups sind natürlich stündlich vorhanden. Das ist kein Problem.


    Was ich möchte:

    Wenn es ein Ausfall gibt aus technischem oder eigen Verschulden hätte ich gerne das alles möglichst schnell wieder läuft, ohne das ich mich nun stressen muss etwas zu beheben und es da unter umständen noch schlimmer mache. Dazu sind mir mehrere Punkte eingefallen und ich habe sehr viel gefunden. Jedoch weiss ich nicht so recht wo ich anfangen soll, gibt es ggf bessere Möglichkeiten oder überlege ich sogar irgendwo falsch.

    Ich hoffe ihr könnt mir da weiterhelfen.

    An dieser Stelle sei auch erwähnt das alles mehr in den Hobbybereich geht. Trotzdem möchte ich einerseits die Erreichbarkeit verbessern, andererseits aber auch meinen Aufwand bei Problemen mindern.


    1. Fallback IP

    Ich habe mir gedacht die Fallback IPs für IPv4 und IPv6 sind auf jeden Fall etwas gutes welche ich mich zulegen sollte. Es ist ja anscheinend nach wie vor so, dass ein Mailserver damit bewertet wird wie viele "Sinnvolle" Mails angenommen werden. Wenn ich diesen nun 3 Jahre Betreibe, und danach z.B. auf die 9. Generation von Rootservern wechsle habe ich eine neue IP und das ganze "Punkte sammeln" fängt wieder von vorne an. Natürlich nur sofern das wirklich nach wie vor so ist das dies "gemessen" wird.

    Ein weiter Vorteil den ich sehe ist die schnelle Umstellung. Wenn ich später auf einen neuen Server wechsle (Wegen der Leistung oder neue Generation oder was auch immer), kann ich auf dem zweiten einfach alles vorbereiten, und dann binen wenigen Minuten die Fallback IP umstellen. So entfällt die lässtige Aufgabe alle DNS Einträge anzupassen, und ich weiss das per Sofort alle Benutzer auf dem neuen Server sind. Es kommen nicht noch unter umständen Mails auf dem alten Server an oder verspätet weil der DNS Eintrag bei dem anderen noch nicht aktualisiert sind.

    Danach müsste ich es dann nur noch irgendwie hinbekommen das die IP ggf selber umschaltet.


    2. Servertrennung

    Dies finde ich eine der schwersten Fragen. Ich habe so viele Beiträge gelesen das es sinn ergibt den MySQL Server, den E-Mailserver sowie den Webserver zu trennen. Viele dieser Beiträge sind jedoch schon sehr alt. Ich frage mich ob es das wirklich für meine Nutzung wirklich vorteile bringt. Da ich gerne eine Fallback Lösung habe, wäre das argument das die E-Mails gehen auch wenn der Webserver abtaucht ja gar nicht mehr wirklich gegeben. Wenn ihr gute argumente dazu habt, würde für E-Mail und MySQL auch ein kleiner VPS reichen? Bei MySQL denke ich an einen VPS 200 G8, bei den E-Mails wird es eher schwer da ich 20 oder 40GB etwas wenig Speicher finde, und vom Preis her dann gleich einen Root Server verwenden kann.


    3. Fallback

    Und dies ist nun wirklich die schwerste Frage. Ich habe bisher keine wirkliche Idee wie ich dies erreichen könnte. Wenn ich die einzelnen Server trennen würde (Was dann aber 6 Server bedeuten würde und je 3 Fallback IPs), so könnte ich die MySQL so viel ich gefunden habe mit einer Master/Master Konfiguration permanent auf dem selben Stand laufen lassen. Beim Mailserver mit Dovecot müsste dies ja auch recht einfach gehen. Ich habe gelesen das Dovecot von haus aus alles auf einem zweiten Server ala Master/Master mit DRBD kann. Dazu muss ich aber noch anleitungen suchen und mal auf einer Testumgebung damit spielen. Was mir aber Kopfzerbrechen macht sind die Configurationsdateien (Postfix, Dovecot, Nginx, SSL Zertifikate, etc) und dann natürlich auch die Webseitendaten. Mit rsync habe ich keine wirkliche Synchronisierung. Auch hier ist das stichwort DRBD gefallen. Damit sollte es ggf gehen. Auch hier muss ich mich aber erstmal weiter einlesen und damit mal auf einem Testsystem spielen. Bevor ich dies aber mache, wäre es schön wenn ihr mir helfen könntet. Vielleicht bin ich ja auf dem Holzweg, ihr habt bessere Vorschläge oder sonstige Tipps, Anleitungen oder sonst etwas.

    4. Backupstrategie

    Bisher mache ich stündlich ein Backup aller Datenbanken und des webspace mit borg auf einen externen Server. Dies klappt auch ohne Probleme. Hier habe ich einfach zwei Probleme, wo es dann natürlich fraglich ist ob es bessere Lösungen gibt.

    4.1: Die Datenbank wird im laufenden Betrieb mittels mysqldump gesichert. Ich habe schon öfters gelesen das die Datenbank so unterumständen nicht sauber gesichert wird weil Einträge zur selben zeit vorgenommen werden. Dies sei nur bei Oracle DB möglich. Ist dies so? Wenn ja, wäre eine Trennung vom MySQL Server ggf Sinnvoll, damit ich dann auf dem zweiten Server einfach den Dienst stoppe, dann das Backup mache und danach wieder starte und er holt sich durch die Master/Master Konfiguration die daten die seit dem unterbruch neu sind. Hier ist einfach fraglich wie bringe ich borg bei das er die Backups immer auf dem "nicht aktiven" Server macht.

    4.2: Die Backups gehen nun auf einen Server per SSH welcher nicht bei Netcup steht. Dies braucht entsprechend Traffic. Gibt es dazu eine Möglichkeit? Ich nehme nicht an das ich mit dem vLAN auch den "externen" Server einbinden kann.


    Damit das ganze dann vom Traffic her kein Problem wäre habe ich an die Cloud VLans gedacht. Da kann ich es ja anfangs ganz einfach mit Cloud vLAN Free testen. Wenn die Bandbreite zu schmal wäre kann ich dann immer noch erhöhen. Da dies ohne extra NIC funktioniert kann ich mir diese auch sparen.


    Ich bedanke mich schon im Voraus für jede Hilfestellung und entschuldige mich jetzt schon für den Langen Beitrag.


    Gruss


    Oliver