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.

Dieser Artikel behandelt

Exchange-Management

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:

  1. Bringen Sie das System auf den aktuellsten Stand. Das entspricht der Installation des Windows-Updates auf dem Server.
  2. 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:

  1. Die Definitionen für die einzelnen Lastausgleichs-Dienste wie OWA und deren Überwachung.
  2. Die IP-Adressen mit denen jeder Lastenausgleichs-Dienst verbunden ist
  3. 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. 

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+!

Artikel wurde zuletzt im November 2014 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Exchange-Management

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close