Microsoft Exchange 2013: Load Balancing mit Open-Source-Tools einrichten
Mit Linux-Lösungen können Sie für Exchange 2013 kostenlos Load-Balancer-Lösungen zur Verfügung stellen. Wir zeigen, wie Sie vorgehen und HAProxy verwenden.
Teure Load Balancer (Lastenverteiler) sind dank Verbesserungen in Microsoft Exchange 2013 nicht mehr erforderlich. Clients benötigen keine Affinität, so dass Layer 7-Load-Balancer, die den Datenverkehr überprüfen und sicherstellen, dass die gleichen Clients immer wieder mit dem gleichen Server verbunden werden, durch Layer 4 Load Balancer-Konfigurationen ersetzt werden können.
Es gibt viele Gründe, warum ein teurer Load Balancer sinnvoll sein kann, aber man sollte auch prüfen, ob freie Linux-basierte Angebote ausreichen. Die meisten kommerziellen Load Balancer basieren auf Linux, und einige sogar auf HAProxy.
Dabei handelt es sich um eine freie Load Balancer-Software, die Sie selbst aufsetzen können. Die Lösung wird von einigen der größten Websites der Welt genutzt, und viele Exchange-Implementierungen verwenden das Tool.
Abbildung 1
Das Einrichten von Exchange 2013 Load Balancing mit einem kostenlosen Tool muss nicht kompliziert sein, da es einfach zu implementieren ist. Die Anbindung erfordert keine größen Wartungsarbeiten und auch die Pflege ist nicht kompliziert.
Kommerzielle Load Balancer sind beliebt und verfügen über eine gute Unterstützung, zusätzliche Funktionen und einfache grafische Benutzerschnittstellen (GUIs). Dennoch können auch kostenlose Tools diese Bedürfnisse abdecken.
Einrichtung eines freien Load Balancers
Schauen wir uns ein Beispiel an. Wir halten in unserer Beispiel-Umgebung alles einfach und arbeiten mit einem einzigen Standort und zwei Exchange-Servern. Jeder Server führt sowohl die Client Access Rolle als auch die Postfachfunktion aus und beteiligt sich an einer einzigen Datenbankverfügbarkeitsgruppe (Abbildung 1).
Der Vorteil von Layer 4 Load Balancing macht unsere Lastenausgleichskonfiguration einfach. Es bedeutet aber auch, dass wir den vollständig qualifizierten Domänennamen (FQDN) für jeden Web-Service zusammen mit der entsprechenden Exchange-Konfiguration für interne und externe URLs verwenden.
Layer 4 Load Balancing kann nicht den Datenverkehr kontrollieren und kann daher nicht wissen, ob der Client OWA, ActiveSync oder etwas anderes anfordert. Um sicherzustellen, dass wir jeden Service mit dem Load Balancer überwachen können, müssen wir unterschiedliche IP-Adressen verwenden und den Verkehr aufteilen. Das Ergebnis sind separate Namen für jeden Dienst in der Umgebung.
Installation von Linux für den Betrieb von Exchange 2013 Load Balancing
Um unseren Load Balancer zu betreiben, benötigen Sie zunächst eine grundlegende Linux-Installation. Auch wenn Sie Linux noch nicht installiert haben, ist es nicht besonders schwer. Wenn Sie mit der PowerShell vertraut sind, kommen Sie mit etwas Recherche schnell zu einem Ergebnis. Die Vorteile solcher Installationen rechtfertigen etwas Experimentierarbeit und Weiterbildung.
Die Linux-Distribution, die wir für diesen Load Balancer verwenden, ist Ubuntu 12.04 LTS. LTS steht für Long Term Support, das heißt, die Distribution wird auch weiterhin Updates erhalten. Ubuntu ist nicht unbedingt besser als andere Linux-Distributionen, allerdings enthält sie HAProxy. Das macht die Installation und Aktualisierung einfacher.
Laden Sie Ubuntu Server 12.04 LTS oder eine neuere Version von der Ubuntu-Website. Wir verwenden die ISO-Datei, um eine neue virtuelle Maschine (VM) zu erstellen (Abbildung 2). Sie können VMware oder Microsoft Hyper-V einsetzen.
Erstellen einer neuen Hyper-V-VM für Linux
Die Hyper-V-Konfigurationsdialog zeigt, dass Sie für den Load Balancer keine umfangreichen Ressourcen benötigen: ein Gigabyte RAM und ein einzelner virtueller CPU reichen für unsere Datenbankverfügbarkeitsgruppe aus.
Die Ubuntu-Installation ist unkompliziert. Es handelt sich um eine virtuelle Maschine (VM), daher wissen wir, dass die Hardware unterstützt wird, und wir die Standardeinstellungen für jede Stufe des Installers auswählen können.
Die einzigen Ausnahmen stellen die Auswahl des Login-Anwenderkontos und die Paketinstallation dar. Wenn Sie aufgefordert werden, die Pakete zu installieren, wählen Sie OpenSSH. Das ermöglicht die Remoteverwaltung des Servers. Der Server wird neu gestartet, nachdem die Installation abgeschlossen ist.
Nach dem ersten Boot sehen Sie das Login-Prompt. Sie loggen sich zunächst ein, um einige Kernaufgaben auszuführen:
- Bringen Sie das System auf den aktuellsten Stand. Das entspricht der Installation des Windows-Updates auf dem Server.
- Konfigurieren Sie die IP-Adresse, damit der Server im Netzwerk verfügbar ist.
Melden Sie sich mit dem Benutzer an, den Sie während des Installationsvorgangs erstellt haben. Dieser Benutzer ermöglicht es, Privilegien für den Administrator User (Root) durch Befehle mit sudo (das Äquivalent von User Account Control) zu nutzen, um unsere Änderungen auszuführen. Das Programm apt-get wird zum Installieren und Aktualisieren von Software verwendet. Wir aktualisieren die Paketliste und installieren Updates mit folgenden Befehlen:
sudo apt-get update
sudo apt-get upgrade
Nach Einspielen von Updates weisen Sie statische IP-Adressen dem Server zu. Wir verwenden in diesem Beispiel eine primäre IP-Adresse und eine zusätzliche IP-Adresse für jeden Lastenausgleichs-Dienst. Die Konfiguration für das Netzwerk ist in einer Textdatei enthalten. Diese bearbeiten wir mit dem Texteditor Nano, der ähnlich wie Notepad funktioniert:
sudo nano -w /etc/network/interfaces
Nach dem Öffnen der Datei interfaces, ersetzen wir die Beispieldaten mit den Konfigurationsinformationen für Ihr Netzwerk:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address
netmask
gateway
# OWA and SMTP
auto eth0:0
iface eth0:0 inet static
address
netmask
# EAC
auto eth0:1
iface eth0:1 inet static
address
netmask
# EWS
auto eth0:2
iface eth0:2 inet static
address
netmask
# OAB
auto eth0:3
iface eth0:3 inet static
address
netmask
# EAS
auto eth0:4
iface eth0:4 inet static
address
netmask
# Autodiscover
auto eth0:5
iface eth0:5 inet static
address
netmask
# OA
auto eth0:6
iface eth0:6 inet static
address
netmask
Abbildung 3: Jetzt sehen Sie die Änderungen, die Sie vorgenommen haben.
Mit Strg + X starten Sie den Netzwerkdienst mit dem folgenden Befehl neu:
sudo /etc/init.d/networking restart
Installieren und Konfigurieren des Load Balancer
Im Rahmen unserer Einrichtung wird es Zeit, die Load-Balancer-Software, also HAProxy zu installieren. Verwenden Sie folgenden Befehl dafür:
sudo apt-get install haproxy
Das HAProxy-Paket wird jetzt heruntergeladen und installiert. Weil Sie die Software mit dem Paketmanager installiert haben, profitiert der Server von den Updates. Auf diesem Weg können Sie den Server auf dem aktuellen Stand halten. Genau wie die Netzwerkkonfiguration, wird die Lastausgleichskonfiguration – HAProxy – innerhalb einer einfachen Textdatei vorgenommen und dann eingelesen.
Um unsere Load-Balancer-Konfiguration abzuschließen, müssen wir die Konfigurationsdatei für HAProxy bearbeiten und eine Reihe von Parametern definieren:
- Die Definitionen für die einzelnen Lastausgleichs-Dienste wie OWA und deren Überwachung.
- Die IP-Adressen mit denen jeder Lastenausgleichs-Dienst verbunden ist
- Die IP-Adressen der Backend-Server
Wir werden in diesem Beispiel wieder den Nano Texteditor verwenden, um die Konfigurationsdatei zu bearbeiten:
sudo nano -w /etc/haproxy/haproxy.cfg
Sie müssen auch die Definitionen für jeden Dienst erstellen, mit der folgenden Konfigurationsdatei als Referenz:
global
maxconn 4096
user haproxy
group haproxy
daemon
defaults
mode tcp
balance roundrobin
retries 3
option redispatch
maxconn 10000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen OWA
:443
option httpchk /owa/healthcheck.htm
server <Server 1 Name> <Server one IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen EAC <EAC IP>:443
option httpchk /eac/healthcheck.htm
server <Server 1 Name> <Server 1 IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen EWS
:443
option httpchk /ews/healthcheck.htm
server <Server 1 Name> <Server one IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen OAB
:443
option httpchk /oab/healthcheck.htm
server <Server 1 Name> <Server one IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen EAS
:443
option httpchk /Microsoft-Server-ActiveSync/healthcheck.htm
server <Server 1 Name> <Server one IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen Autodiscover
:443
option httpchk /Autodiscover/healthcheck.htm
server <Server 1 Name> <Server one IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen OA
:443
option httpchk /rpc/healthcheck.htm
server <Server 1 Name> <Server one IP> check port 80
server <Server 2 Name> <Server 2 IP> check port 80
listen SMTP
:25
option smtpchk
server <Server 1 Name> <Server 1 IP> check port 25
server <Server 2 Name> <Server 2 IP> check port 25
listen stats
:8080
mode http
stats enable
stats uri /
Abbildung 4: In einer Textdatei nehmen Sie die Konfiguration für den Load Balancer vor.
Mit Strg + X speichern Sie die Konfigurationsdatei wieder und aktivieren die Konfiguration mit den folgenden Befehlen:
update-rc.d haproxy enable
sudo /etc/init.d/haproxy restart
Wie bei jedem Load Balancer, müssen Sie den Verkehr zur Balancer-Lösung weiterleiten, damit dieser Lasten ausgleichen kann. Für jeden Dienst mit Load Balancing müssen Sie die DNS-Einträge aktualisieren, um jeden entsprechenden Dienst einzubinden (Abbildung 5).
Abbildung 5: Die DNS-Einträge für den Zugriff auf Exchange müssen überarbeitet werden.
Für den Tests des Datenverkehrs mit dem Load Balancer müssen Sie sicherstellen, dass der Dienst die Last richtig verteilen kann, während wir einen Einblick in den allgemeinen Zustand des Load Balancers werfen. HAProxy enthält Statistiken, die wir in der Konfiguration aktiviert haben. Um die Statistiken abzurufen, verwenden Sie folgende URL: http://:8080/stats.
HAProxy verwalten
Schließlich zeigen wir, wie einfach der HAProxy-basierte Load Balancer zu verwalten ist und prüfen, was man im Rahmen der Exchange Server-Wartung tun muss, damit der Load Balancer funktioniert.
Mehr zum Thema Microsoft Exchange 2013:
Wie Sie in Exchange 2013 Kalender-Freigaben über das Internet konfigurieren
In früheren Versionen von Exchange, würden wir die GUI für einen Load Balancer verwenden, um jeden neuen Datenverkehr am Erreichen eines Servers zu hindern. In Exchange 2013 Load Balancing können wir einfach einen Befehl in Exchange nutzen, um die Client-Access-Funktion in den Wartungszustand zu setzen:
Set-ServerComponentState <Server Name> -Component ServerWideOffline -State Inactive -Requester Maintenance
Da HAProxy Teile der Exchange Dienste nutzt, um die Services zu überwachen, wird die Lösung automatisch den Server als nicht erreichbar markieren, während Wartung ausgeführt wird.
Wenn die Wartung abgeschlossen ist, verwenden Sie diesen Befehl, um den Server wieder als aktiven Teil der Infrastruktur zu markieren. HAProxy wird diese Konfiguration erkennen und Routing-Anfragen wieder an den Server weiterleiten:
Set-ServerComponentState <Server Name> -Component
ServerWideOffline -State Active -Requester Maintenance
Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!



Collaboration Tools im Business-Einsatz
Da Arbeitnehmer zunehmend im Home-Office oder Außeneinsatz arbeiten, gewinnen Collaboration Tools an Bedeutung. Der E-Guide widmet sich dem aktuellen Marktgeschehen.