MDaemon Email Server V20: Konfiguration und Nutzung von Clustering

In diesem Artikel zeigen wir Ihnen, wie Sie das neue Clustering-Feature in Version 20 des MDaemon Email Server richtig konfigurieren und einsetzen.
Die Funktion dient dazu, die Konfiguration des Mail- und Groupware-Servers auf mehrere weitere Server zu spiegeln, sodass im Falle eines Ausfalls des Hauptservers ein weiterer Server im Clusterverbund einspringen kann und der laufende Betrieb somit nicht unterbrochen wird. Dies gilt für alle gesetzten Optionen sowie Konfigurationen, Postfächer und öffentlichen Ordner des MDaemon Email Server. 

Vor der eigentlichen Aktivierung des Clusterbetriebes müssen einige Informationen beachtet sowie Vorbereitungen getroffen werden: 

  1. Generell wird bei der Einrichtung zwischen primären und sekundären "Nodes" oder auch "Knoten" unterschieden. Der primäre MDaemon-Knoten ist der einzige, der aktiv Änderungen an der Konfiguration durchführen kann; diese werden an den sekundären Knoten weitergegeben. Alle Änderungen am sekundären Knoten werden dann überschrieben. Aus diesem Grund ist die GUI auf dem zweiten Knoten größtenteils deaktiviert.


    Zudem besitzt die XML-API auf sekundären Knoten nur eine "Lese-Berechtigung". 

  2. Der MDaemon wird kein Load Balancing des Netzwerkverkehrs durchführen. Falls Load Balancing gewünscht ist, muss hier auf ein Drittanbieter-Tool zurückgegriffen werden. Dies ist vor allem für die Nutzung des Webmailers und der Remote-Administration entscheidend, da diese nicht clusterfähig sind. Es muss also sichergestellt werden, dass die Verbindungen zum entsprechenden MDaemon-Server geleitet werden.
     
  3. Es wird empfohlen, dass der HTTP- und XMPP-Verkehr zu dem primären Knoten weitergeleitet wird. Dies hat mehrere Gründe. 
    • Der XMPP-Verkehr ist wie der HTTP-Verkehr nicht clusterfähig. Für die Nutzung des Instant Messaging muss also der XMPP-Verkehr zu dem Hauptserver geleitet werden. 
    • Die MDaemon-Remote-Verwaltung ist noch nicht clusterfähig, dadurch werden alle Änderungen auf einem sekundären Knoten überschrieben. Auch dieser Verkehr muss auf den Hauptserver geleitet werden.
    • Der Verkehr des MDaemon-Webmailers muss durch die fehlende Clusterfähigkeit auf den Hauptserver geleitet werden.

  4. Die Postfächer müssen in einem Ordner gespeichert werden, der von allen Knoten im Netzwerk erreicht werden kann. Empfehlenswert ist hier die Einrichtung eines geteilten Ordners via UNC-Pfad.
    • Erstellen Sie einen Ordner und wählen diesen mit einem Rechtsklick an. Hier navigieren Sie nun zu "Eigenschaften → Freigabe → Erweiterte Freigabe".  Aktivieren Sie dort die Option "Diesen Ordner freigeben".


    • Nun gehen Sie auf "Berechtigungen" und geben den Ordner frei: 


    • Jetzt sehen Sie den UNC-Pfad zu dem freigegebenen Ordner:


    • Nun verschieben Sie die Benutzerkonten manuell auf den neuen Pfad. Sobald wir in der Cluster-Konfiguration den Pfad zu den Benutzerkonten anpassen, wird dieser im Account-Template für neue Benutzerkonten aktualisiert, sodass hier eine manuelle Eingabe nicht notwendig ist und alle neu erstellten Benutzerkonten auf dem hinterlegten UNC-Pfad abgespeichert werden. 

  5. Die öffentlichen Ordner des MDaemon müssen auch im freigegebenen Ordner abgespeichert werden. Diese müssen manuell umgezogen werden, danach wird die MDaemon.ini-Datei durch die Anpassungen in der Cluster-Konfiguration überschrieben. 

  6. Gleiches gilt für den PEM-Ordner unter MDaemon\PEM: Auch dieser muss manuell in das freigegebene Verzeichnis verschoben werden. Dazu muss die MDaemon.ini-Datei allerdings manuell angepasst werden. Sie finden die MDameon.ini-Datei unter MDaemon\App.

  7. Jeder Knoten innerhalb des Clusters benötigt einen eigenen MDaemon-Key.

  8. Alle Knoten sollten sich innerhalb eines Netzwerkes befinden, denn der Hersteller empfiehlt, die Knoten eines Clusters nicht in verschiedenen Netzwerken zu betreiben. 

  9. Alle Knoten eines Clusters müssen die identische MDaemon-Version installiert haben.

  10. Alle Knoten müssen sich innerhalb der identischen Zeitzone befinden; selbst minimale Abweichungen im Sekundenbereich können hier zu einem Fehler führen.

  11. Per Standard laufen alle Abfragen des dynamischen Filters auf dem Hauptserver ab. Alle Informationen werden an die sekundären Server weitergegeben, sodass dieser im Fehlerfall den Betrieb des dynamischen Filters mit den identischen Informationen und Einstellungen weiterführen kann.

  12. SSL/TSL-Zertifikate müssen auf allen Knoten identisch sein und manuell eingetragen werden, da keine Möglichkeit besteht, diese zu übertragen. Der Cluster-Dienst repliziert alle Informationen zu den SSL/TLS-Einstellungen an die weiteren Knoten. 

Wenn all diese Vorbereitungen getroffen sind, kann der Cluster-Dienst nun final konfiguriert werden. Hierzu öffnen Sie das Menü des Cluster-Dienstes unter "Einstellungen → Cluster-Dienst".
Es öffnet sich folgende Übersicht: 


Mit dem obersten Haken können Sie den Dienst aktivieren. Des Weiteren gibt es ein Clustering-Protokoll, dessen Detailgrad per Standard "Debug" ist und viele nützliche Informationen liefert. 
Voreingestellt ist die Aktualisierung in Echtzeit, zusätzlich können Sie die Option "Status der Warteschlangen von Primär - auf Sekundärknoten spiegeln" aktivieren. Dadurch wird der Status einer Warteschlange auf alle weiteren Sekundärknoten gespiegelt. Das Replikationsintervall kann zudem auf bis zu eine Minute heruntergesetzt werden. 

Der nächste Schritt besteht darin, den Pfad für die Postfächer und öffentlichen Ordner anzupassen. Dazu wählen Sie "Durchsuchen" sowie die richtigen Pfade zu dem vorher erstellten und geteilten Verzeichnis aus. 
Nun können wir auch schon einen weiteren Knoten mit einem Klick auf "Hinzufügen" dem Clusterverbund hinzufügen. Es öffnet sich folgendes Fenster: 


Hier geben Sie den Netbios-Namen des Rechners ein. Wichtig ist, dass dieser vom Server aus erreichbar ist. Sollten Sie an dieser Stelle eine Fehlermeldung wie "Zugriff verweigert" erhalten, dann prüfen Sie bitte die Berechtigungen, unter denen der MDaemon-Dienst ausgeführt wird. Für einen reibungslosen Clusterbetrieb ist es notwendig, diese nochmal explizit im MDaemon Email Server anzugeben. Sie können dies unter "Einstellungen → Voreinstellungen → Windows-Dienst" tun.


Nach dem erfolgreichen Hinzufügen eines weiteren Knotens wird dieser bereits als "sekundär" angezeigt: 


Nun startet auch schon die Synchronisation zwischen den beiden MDaemon-Knoten.
Mit einem Klick auf "Protokoll betrachten/analysieren" lässt sich das Clustering-Protokoll auf weitere Fehler untersuchen. Zudem enthält das Protokoll viele interessante Hinweise zum aktuellen Synchronisationsablauf:

Übertragung der aktuellen Status der einzelnen Warteschlangen:
Thu 2020/07/23 15:02:03.368: Info, [00000101] 0x4151062E Mirroring Queue States to clusternode

Übliche Fehlermeldung bei fehlenden Anmeldedaten für den MDaemon-Dienst:
200722 152019815 W [F982DEB8] 0x80070005 Zugriff verweigert

Wenn eine größere Zeitdifferenz zwischen den Knoten besteht, erscheint folgende Meldung:
200722 110033824 W [C68EDEB8] 0x81511240 Significant Time Sync difference with node : CLUSTER

Prüfen Sie hier die Uhrzeiten auf dem primären und sekundären Knoten - diese sollten so nah beieinander liegen wie nur möglich.
Tipp: Nutzen Sie einen Zeitserver für die Synchronisation der Systemzeit. Mehr Informationen dazu finden Sie hier. 

Nach Sicherstellung der Synchronisation befindet sich der MDaemon Email Server nun im Clusterbetrieb.