Richten Sie einen zuverlässigen Exchange 2013-Lastausgleich mit Open Source-Tools ein

Dank der Verbesserungen von Exchange 2013 sind keine teuren Load Balancer mehr erforderlich. Kunden benötigen keine Affinität, …

Daher können Layer 7-Load-Balancer, die den Datenverkehr überprüfen und sicherstellen, dass derselbe Client immer zum selben Server zurückkehrt, durch einfache Layer 4-Load-Balancer mit einfachen Konfigurationen ersetzt werden.
Es gibt viele Gründe, warum ein teurer Lastenausgleicher könnte für Sie sinnvoll sein, aber Sie sollten auch kostenlos in Betracht ziehen Linux-basierte Angebote. Die meisten kommerziellen Load Balancer basieren auf Linux, und einige verwenden sogar HAProxy, die kostenlose Load Balancer-Software, die wir unter der Haube verwenden werden. HAProxy wird von einigen der größten Websites der Welt in vielen Exchange-Implementierungen verwendet und ist ein Open-Source-Load-Balancer, der genau zu Ihren Unternehmen passt.

Beispiel für ein Exchange Server-Setup

Abbildung 1

Das Einrichten des Exchange 2013-Lastausgleichs mit einer kostenlosen Option ist nicht kompliziert, da es einfach zu implementieren ist und nicht viel Wartung erfordert, um am Laufen zu bleiben. Kommerzielle Load Balancer sind großartig und bieten guten Support, zusätzliche Funktionen und einfache grafische Benutzeroberflächen (GUIs). Eine kostenlose Option kann jedoch Ihre Anforderungen für Exchange 2013 erfüllen.
Schauen wir uns eine Beispielumgebung an. In unserer Beispielumgebung wird alles relativ einfach gehalten, sodass wir einen einzigen Standort mit zwei Exchange-Servern haben. Jeder Server führt sowohl die Clientzugriffsrolle als auch die Postfachrolle aus und nimmt an einer einzigen teil Datenbankverfügbarkeitsgruppe (Abbildung 1).
Der Vorteil eines einfachen Layer 4-Lastausgleichs kann bedeuten, dass unsere Load-Balancer-Konfiguration einfach ist, aber auch, dass wir sie verwenden müssen voll qualifizierte Domainnamen (FQDNs) für jeden Webdienst zusammen mit der entsprechenden Exchange-Konfiguration für interne und externe URLs.

Bedienung FQDN
Outlook Web App und SMTP mail.exchangelabs.co.uk
Exchange Admin Center eac.exchangelabs.co.uk
Exchange-Webdienste ews.exchangelabs.co.uk
Offline-Adressbuch oab.exchangelabs.co.uk
Exchange ActiveSync eas.exchangelabs.co.uk
Autodiscover autodiscover.exchangelabs.co.uk
Ausblick überall oa.exchangelabs.co.uk

Der Lastausgleich der Schicht 4 kann den durchlaufenden Datenverkehr nicht überprüfen und weiß daher nicht, ob der Client OWA, ActiveSync oder etwas anderes anfordert. Um sicherzustellen, dass wir eine Überwachung pro Dienst für den Load Balancer durchführen können, müssen wir den Datenverkehr unter Verwendung unterschiedlicher IP-Adressen aufteilen. Das Ergebnis sind separate Namen für jeden Dienst.

Installieren von Linux zum Ausführen des Exchange 2013-Lastenausgleichs

Um unseren Load Balancer ausführen zu können, benötigen wir einen grundlegende Linux-Installation. Wenn Sie Linux noch nicht installiert haben, ist es nicht besonders schwierig. Wenn Sie mit PowerShell vertraut sind, können Sie sich ganz einfach anpassen.
Die Linux-Distribution, die wir für diesen Load Balancer verwenden, ist Ubuntu 12.04 LTS. LTS steht für Long-Term Support, was bedeutet, dass es weiterhin Updates erhält, lange nachdem neuere Versionen von Ubuntu keine Updates mehr erhalten. Ubuntu ist nicht unbedingt besser als jede andere Linux-Distribution, aber wir haben es ausgewählt, weil es HAProxy enthält. Das macht es einfach zu installieren und zu aktualisieren.
Laden Sie Ubuntu Server 12.04 LTS herunter von der Ubuntu-Website. Wir werden diese ISO verwenden, um eine neue virtuelle Maschine zu erstellen (Abbildung 2).

Neuer Assistent für virtuelle Maschinen

Figur 2

Der Hyper-V-Konfigurationsdialog zeigt, dass wir nicht viele Ressourcen benötigen, um diesen Load Balancer auszuführen. 1 GB RAM und eine einzelne virtuelle CPU reichen für unsere kleine Datenbankverfügbarkeitsgruppe aus.
Die Installation von Ubuntu ist unkompliziert. Da es sich um eine virtuelle Maschine handelt, wissen wir, dass die Hardware unterstützt wird, und können die Standardeinstellungen für jede Phase des Installationsprogramms auswählen. Die einzigen Ausnahmen sind bei der Auswahl Ihres Login-Benutzerkontos und der Paketauswahl. Wenn Sie zur Installation von Paketen aufgefordert werden, wählen Sie OpenSSH, um die Remoteverwaltung des Servers zu ermöglichen. Der Server wird nach Abschluss der Installation neu gestartet. Nach dem ersten Start wird die Anmeldeaufforderung angezeigt. Wir werden uns hier anmelden, um einige Kernaufgaben auszuführen:

  1. Führen Sie Updates durch, was der Installation von Windows-Updates auf dem Server entspricht.
  2. Konfigurieren Sie die IP-Adressen, die der Server verwenden wird.

Melden Sie sich mit dem Benutzer an, der während des Einrichtungsvorgangs erstellt wurde. Dieser Benutzer ermöglicht es uns, die Berechtigungen für den Administratorbenutzer (root) zu erhöhen, indem Befehle mit dem Präfix versehen werden sudo (entspricht der Benutzerkontensteuerung), um unsere Änderungen vorzunehmen. Das Programm apt-get wird zum Installieren und Aktualisieren von Software verwendet, daher aktualisieren wir die Paketliste und installieren dann Updates mit den folgenden Befehlen:

sudo apt-get update
sudo apt-get upgrade

Weisen Sie nach dem Durchführen von Updates zu statische IP-Adressen zum Server. Wir haben eine primäre IP-Adresse und eine zusätzliche IP-Adresse für jeden Dienst mit Lastenausgleich. Die Konfiguration für das Netzwerk ist in einer Textdatei enthalten, die wir mit einem Texteditor bearbeiten, der Notepad ähnelt und aufgerufen wird Nano::

sudo nano -w /etc/network/interfaces

Ersetzen Sie die Schnittstellendatei nach dem Öffnen durch Konfigurationsinformationen, die Ihrem Netzwerk entsprechen:

# 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
Netzwerkkonfiguration
Now you can view the changes you've made (Figure 3).

Starten Sie dann mit Strg-X den Netzwerkdienst mit dem folgenden Befehl neu:

sudo /etc/init.d/networking restart

Installieren und konfigurieren Sie den Load Balancer

Wenn unser Server eingerichtet ist, ist es Zeit, die Load-Balancer-Software zu installieren. HAProxy. Wir werden den folgenden Befehl verwenden, um es zu installieren:

sudo apt-get install haproxy

Das HAProxy-Paket wird heruntergeladen und installiert. Da es mit dem Paketmanager installiert wurde, profitiert es auch von Updates, sobald diese angewendet werden. Genau wie die Netzwerkkonfiguration ist die Load-Balancer-Konfiguration – HAProxy – in einer einfachen Textdatei enthalten. 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 jeden Dienst mit Lastenausgleich, z. B. OWA, und wie sie überwacht werden
  2. Die IP-Adressen, an die jeder Dienst mit Lastenausgleich angeschlossen ist
  3. Die IP-Adressen der Back-End-Server

Wir werden unseren einfachen Nano-Texteditor erneut verwenden, um die Konfigurationsdatei zu bearbeiten:

sudo nano -w /etc/haproxy/haproxy.cfg

Wir müssen auch Definitionen für jeden Dienst erstellen und dabei die folgende Konfigurationsdatei als Referenz verwenden:

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 / 
          
Erstellen von Definitionen in einem Netzwerk

Figur 4

Sie können die Änderungen anzeigen, nachdem Sie sie vorgenommen haben (Abbildung 4).
Verwenden Sie Strg-X, um die Konfigurationsdatei zu speichern und die Konfiguration mit den folgenden Befehlen zu aktivieren:

update-rc.d haproxy enable
sudo /etc/init.d/haproxy restart

Wie bei jedem Load Balancer müssen Sie den Datenverkehr darauf lenken, damit tatsächlich etwas ausgeglichen wird. Für jeden Dienst mit Lastenausgleich aktualisieren wir die DNS-Einträge so, dass sie mit jedem entsprechenden Dienst übereinstimmen (Abbildung 5).

DNS-Einträge aktualisieren

Abbildung 5

Wenn wir anfangen, den Datenverkehr mit dem Load Balancer zu testen, möchten wir überprüfen, ob er die Last korrekt verteilt, während wir einen Einblick in die Funktionsfähigkeit des Load Balancers erhalten. HAProxy enthält Statistiken, die wir in der Konfiguration aktiviert haben. Verwenden Sie die folgende URL, um auf die Statistiken zuzugreifen: http: //

: 8080 / stats.

Zuletzt zeigen wir, wie einfach der HAProxy-basierte Load Balancer zu verwalten und zu untersuchen ist, was bei der Durchführung der Exchange Server-Wartung zu tun ist. In früheren Versionen von Exchange hätten wir die GUI für einen Load Balancer verwendet, um zu verhindern, dass der gesamte neue Datenverkehr einen Server erreicht. Beim Lastenausgleich in Exchange 2013 können wir einfach einen Befehl in Exchange verwenden, um die Clientzugriffsrolle in die Wartung einzubeziehen:

Set-ServerComponentState <Server Name>  -Component ServerWideOffline -State Inactive -Requester Maintenance

Da HAProxy die Teile von Exchange zur Überwachung von Diensten verwendet, markiert es den Server automatisch als ausgefallen, während die Wartung durchgeführt wird.
Wenn die Wartung abgeschlossen ist, markieren Sie den Server mit diesem Befehl erneut als aktiv. HAProxy nimmt dies auf und beginnt mit der Weiterleitung von Anforderungen.

Set-ServerComponentState <Server Name> -Component
ServerWideOffline -State Active -Requester Maintenance

Über den Autor: Steve Goodman ist ein Exchange MVP und arbeitet als technischer Architekt für einen der führenden britischen Microsoft Gold-Partner, die Phoenix IT Group. Goodman ist seit 14 Jahren in der IT-Branche tätig und arbeitet seit Version 5.5 intensiv mit Microsoft Exchange zusammen.

Similar Posts

Leave a Reply