[ISPC3] Zweiter Server als Mirror - Frage zur Synchronisation

Kaimane

Member
Hallo Community,

seit geraumer Zeit beschäftige ich mich mit dem Gedanken die Infrastruktur meines Servers ein wenig anzupassen (Stichpunkt: Hochverfügbarkeit).

Momentan läuft der Server als single, mit den Diensten Web, Mail, SQL und DNS. ISPC3 als Verwaltungsoberfläche (was auch sonst?! ;o) ).

Meine Idee: einen weiteren Server (gleiche Hardware) anmieten, um diesen als 'Hot Standby' im Falle eines Ausfalls des ersten Servers sofort in Betrieb nehmen zu können.

Das ganze mal im Detail:
Die Anfragen aus dem Internet treffen auf einen Loadbalancer (LB). Hinter dem LB stehen die beiden Server. Der LB schickt alle Anfragen an Server1 (S1). Server2 (S2) wird nur beschickt, sobald Server1 nicht mehr erreichbar ist (wird vom LB überprüft und automatisch umgeschaltet).

Meine Frage an euch ist nun (um auf S2 ständig den gleichen Datenbestand wie auf S1 zu haben (Web, Mail, SQL, DNS)) wie die Server konfiguriert werden müssen und ich wie weit ISPC3 das Mirroring unterstützt.
Seit Version 3.0.2 gibt es die Option "Ist Mirror von". Nur was bedeutet es im Detail? Was wird gespiegelt?

Verständnisfrage:
Folgende Situation: S1 fällt aus. Währenddessen läuft S2 und übernimmt die Rolle von Server1. Bis S1 wieder online ist sind eMails eingegangen, möglicherweise hat ein Kunde etwas an seinem Web verändert und in der DB wurden ebenfalls Schreibvorgänge vorgenommen; kurz gesagt, die beiden Server sind asynchron.
Nun sind ein paar Stunden vergangen, S1 ist wieder online. Wie bekommt nun S1 den Datenbestand von S2? Wie läuft die Synchronisation dann ab? Und vor allem wie wird die DB eingerichtet, als Master/Master oder Master/Slave (in diesem Fall dürfen aber keine Schreibvorgänge an der DB erfolgen)? Übernimmt ISPC3 die komplette Synchronisation?


Erst mal vielen Dank im Voraus für eure Hilfe!
 

Kaimane

Member
Vielen Dank @Quest für die schnelle Antwort!

Das bedeutet "Is Mirror von" ist nur dafür da, die ispconfig-DBs auf den beiden Servern synchron zu halten? Heißt, sobald ich eine eMail-Adresse auf S1 anlege, ist sie auch auf S2 verfügbar? Nur in der DB von S2 oder auch "physikalisch" als MailDir?

Okay, Mirroring der entsprechenden Verzeichnisse via GlusterFS und eine MySQL Replikation einrichten. Hier ist nur die Frage welche Art von Replikation?
Für eine Master / Slave Replikation spricht die Tatsache, dass auf S2 (Slave) kein ControlPanel installiert ist, also keine Änderungen an der ISPConfig-DB von diesem Server aus vorgenommen werden.
Nur was ist, wenn S1 ausfällt und S2 den Betrieb übernimmt. Zum Beispiel liegen CMSysteme auf dem Server. Sobald Änderungen vorgenommen werden, wird in die DB geschrieben (also auf der Slave-DB).
Wäre es dann nicht sinnvoller eine MySQL Master / Master Replikation einzurichten?
Oder wird, sobald S1 wieder online ist, die DB von S2 (in einer Master / Slave Replikation) mit der DB des S1 wieder synchronisiert?

Welche Art von Replikation würdet ihr an dieser Stelle einsetzen?
 

Till

Administrator
Das bedeutet "Is Mirror von" ist nur dafür da, die ispconfig-DBs auf den beiden Servern synchron zu halten? Heißt, sobald ich eine eMail-Adresse auf S1 anlege, ist sie auch auf S2 verfügbar? Nur in der DB von S2 oder auch "physikalisch" als MailDir?

Die "is mirror von Funktion" ist dafür da, die komplette Konfiguration synchron zu halten und nicht nur die ISPConfig Datenbank. Sonst würde eine solche Funktion ja keinen Sinn ergeben.

Es gibt doch ein Howto, da ist das alles im Detail beschrieben:

http://www.howtoforge.com/installin...tabase-cluster-on-debian-5.0-with-ispconfig-3

Der einzige schwierige Punkt ist die mysql Replikation, da gibt es keine wirklich tolle Lösung. Die im Howto beschriebene Version mit einem Shared Directory läuft ziemlich schlecht wg. Locking Problemen und kann an sich nur für hot-standby Systeme verwendet werden. Unter Umständen ist mysql master-master Replikation die bessere Lösung, da wirst Du aber jede mysql DB manuell zur Replikation hinzufügen müssen.

Oder Du arbeitest mit einem externen mysql cluster für die webseiten datenbanken.

Nooch ein allgemeiner Hinweis, die ispconfig mysql datenbank darf in keinem fall in die mysql Replikation mit einbezogen werden, da ispconfoig sie selbst repliziert.
 

Kaimane

Member
Die "is mirror von Funktion" ist dafür da, die komplette Konfiguration synchron zu halten und nicht nur die ISPConfig Datenbank. Sonst würde eine solche Funktion ja keinen Sinn ergeben.
Das ist schon mal super! Heißt also, jede Konfiguration, ob neuer vhost, eMail-Adresse, DNS-Eintrag, etc. wird automatisch mit S2 abgeglichen?

Der einzige schwierige Punkt ist die mysql Replikation, da gibt es keine wirklich tolle Lösung. Die im Howto beschriebene Version mit einem Shared Directory läuft ziemlich schlecht wg. Locking Problemen und kann an sich nur für hot-standby Systeme verwendet werden.
Unter Umständen ist mysql master-master Replikation die bessere Lösung, da wirst Du aber jede mysql DB manuell zur Replikation hinzufügen müssen.
Genau das will ich ja vermeiden (Locking Probleme), deshalb die Frage welche Replikationslösung am sinnvollsten ist.
In meinem Fall wäre eine Multi-Master Replikation wohl am passendsten.

Jedoch würde die Multi-Master keinen Sinn machen, wenn jede DB händisch in die Replikation aufgenommen werden muss.
Es gibt keinen automatischen Abgleich, im Sinne von "Repliziere alle DBs (auch die neu hinzugefügten) ausser die ispconfig-db"?

Oder Du arbeitest mit einem externen mysql cluster für die webseiten datenbanken.
Also noch zwei zusätzliche Server ausschließlich für die DBs.
Warum würden sich in diesem Fall die DBs automatisch replizieren?
 

Till

Administrator
Das ist schon mal super! Heißt also, jede Konfiguration, ob neuer vhost, eMail-Adresse, DNS-Eintrag, etc. wird automatisch mit S2 abgeglichen?

ja.

Es gibt keinen automatischen Abgleich, im Sinne von "Repliziere alle DBs (auch die neu hinzugefügten) ausser die ispconfig-db"?

nein.

Also noch zwei zusätzliche Server ausschließlich für die DBs.
Warum würden sich in diesem Fall die DBs automatisch replizieren?

mysql cluster ist der name einer software. Es handelt sich also nicht um den normalen mysql daemon. Schau mal auf mysql.com.
 

Werbung

Top