2-Server-DAG - Mittelstandscluster
Ich sehe ein großes Potential einer Exchange 2010 Cluster Lösung auch gerade im klassischen Mittelstand, zumindest wenn Sie über mehr als einen Server nachdenken und die Verfügbarkeit nicht in Stunden oder gar Tagen gefordert wird. Meine ersten Exchange 2010 haben mich darin bekräftigt.
Generell sollten Sie sich beim Thema
"Hochverfügbarkeit" an die Empfehlungen des Herstellers halten und
abweichende Konfigurationen vermeiden. In Verbindung mit einem
2-Server-Cluster geht die aktuell nur mit einem vorgelagerten
Lastverteilungssystem.
LoadBalancer
Manchmal ist ein einzelner Server mit einer guten Überwachung und einen
funktionierenden Backup sogar unterm Strich besser verfügbar und
nebenbei günstiger.
Beachten Sie, dass Sie für die Funktion auch Domaincontroller und einen Witness-Server (Dateiserver) brauchen, die in der Regle aber sowieso da sind. Nicht alle Konfigurationen sind daher mit "genau zwei" Servern abzubilden. Die DAG besteht aus zwei Servern.
Die Exchange 2010 Database Availability Group löst die Exchange 2007 Funktionen LCR, CCR und SCR komplett ab. Gerade für den Mittelstand ist die DAG aber bei einer ersten Betrachtung am ehesten mit dem Exchange Cluster zu vergleichen. Nun weiß ich selbst, dass gerade beim Thema "Cluster" bei vielen Firmen erst mal vorbehalte bestehen, weil dazu zum einen Windows Enterprise Server erforderlich sind und der Betrieb eines Clusters auch für gewöhnlich die Komplexität steigert.
Bei der neuen Exchange Database Availability Group ist das aber etwas anderes gelagert. Sie benötigen immer mindestens zwei Windows Enterprise Server Lizenzen und zwei Server (Hardware oder Virtuell). Im Gegensatz zu Exchange 2007 können aber die zusätzlichen Rollen CAS und HT mit auf dem Cluster installiert werden und die Funktion des Clusters ist so stark vereinfacht, dass Sie eigentlich gar nichts mehr davon bemerken. Durch die Kombination sparen Sie zudem zwei ansonsten erforderliche Exchange Lizenzen und zwei Windows Standard Lizenzen.
Wenn Sie allerdings die offiziellen Dokumentationen und Anleitungen studieren, dann finden Sie sich da nicht immer gleich wieder. Dort wird sehr gerne von großen Umgebungen mit zigtausend Postfächern, mehreren Exchange Postfachservern die sogar auf Redundanz bei Disks (RAID) und Backup verzichten und mehreren CAS-Servern als Array gesprochen. Aber es geht auch etwas "kleiner" und mit wenigen Einschränkungen.
Fakt ist natürlich, dass Sie zwei Server benötigen, die sich aber bei geschickter Konfiguration die Last teilen und die Funktion des jeweils anderen Server übernehmen können. Sie gewinnen die Skalierung und eine automatisch Ausfallsicherheit. Nur wie kann so eine Konfiguration aussehen ?
Ich möchte ihnen auf dieser Seite zwei Konfigurationen aufzeigen, die eine interessante Option darstellen könnte. Der Kniff besteht darin, wie die Kombination aus den Rollen ClientAccess/HubTransport und Postfachrollen konfiguriert werden, damit die Clients einen "virtuellen CAS"-Server erreichen, obwohl man auf dem Cluster kein NLB einrichten kann und die wenigsten kleinen Firmen einen vorgeschalteten Load-Balancer haben. Es gibt viele denkbare Möglichkeiten für einen "kleinen" Cluster, wobei nur eine Teilmenge davon "supportet" ist. Die anderen Optionen sind daher als Information aber nicht als Vorschlag oder gar Empfehlung zu verstehen:
Modell | Bild | IP | Support Status |
Beschreibung |
---|---|---|---|---|
4-Server mit NLB |
|
5 |
OK |
Der "klassische Ansatz" mit Mailbox Cluster und separaten CAS-Servern mit NLB. Allerdings ist dies natürlich kein "2-Server-DAG" mehr, sondern erforder mindestens 4 Server und passende Lizenzen. Das Bild kann etwas verwirren da die gelben Pfeile, die die DAG-Replikation andeuten quasi durch die beiden CAS-Server geht. Die CAS-Server haben natürlich nichts mit der DAG-Replikation zu tun. Aber nur wenn die CAS bildlich in der Mitte stehen, dann passt der NLB-Block mit der IP3 oben sinnvoll hin. Auch wenn dies eine supportete Konfiguration ist, so sollten Sie genau die Einschränkungen von NLB können, ehe Sie diesen Weg gehen. |
Hyper-V |
|
5 |
OK |
Um aus der Konfiguration mit 4 Servern dennoch eine 2-Server-Konfiguration zu bauen, hilft uns Virtualisierung. Microsoft unterstützt ja mit VMWare, Hyper-V und Xen auch virtuell betriebene Exchange Server und heute Hardware ist meist leistungsfähig genug, in mittleren und kleineren Umgebungen auch mehrere Server zu betreiben. Das ist die Basis dieses Hyper-V Paares, welches aber kein Hyper-V Cluster sein muss. Denn sowohl die CAS mit NLB als auch die Mailbox Rolle als DAG sind in sich schon hochverfügbar. Sie müssen also nicht noch die Hyper-V-Rolle mit MSCluster und einem SharedDisk versehen, um VMs hin und her schieben zu können. Sie brauchen "nur" zwei virtuelle Windowsserver als VM, von denen einer CAS und der andere Mailbox-Server ist und das auf jedem der beiden physikalischen VM-Hosts einmal Für den Betrieb von NLB in Verbindung mit Virtualisierung müssen Sie eventuell einige Besonderheiten bei der Netzwerkkonfiguration betrachten, z.B. der Einsatz von Multicast. Lizenztechnisch ist das interessant, da Sie mit Windows Enterprise als Basis bis zu vier Server pro Host virtuell betrieben werden können., d.h. auf zwei physikalischen Servern lässt sich ein "klassischer" Betrieb einrichten. Allerdings benötigen Sie natürlich Exchange Lizenzen. |
Load Balancer |
|
3 |
OK |
Die zweite und aus meiner Sicht bessere Variante ist der Betrieb mit einem vorgelagerten Lastverteilungssystem. Die IP-Adresse des CAS-Array verweist auf diese Adresse und das System verteilt die Anfragen auf den jeweils aktiven CAS-Server. Im Vergleich zu NLB hat das sehr viele Vorteile
Insofern gibt es eigentlich sehr viele Argument für den Einsatz einer solchen Lösung, auch wenn die Lastverteiler zusätzliche Systeme sind, die Anschaffungs- und Betriebskosten verursachen. Im Bereich der Verfügbarkeit sind dies aber die geringeren Probleme, zumal diese System auch noch für andere Dienste genutzt werden könnten. Hinweis: Ein ISA/TMG-Server kann auch eine Webfarm veröffentlichen und daher als Loadbalancer für CAS-Server dienen. Er kann dies aber NICHT für RPC |
DNS-Failover |
|
2 |
Denkbar |
Microsoft schreibt, dass ein Client immer den gleichen CAS-Server verwenden soll, und nur dann wechseln muss, wenn der Server ausgefallen oder herunter gefahren wurde. Nun könnten Sie ja einfach den Namen des CAS-Array auf eine physikalische IP-Adresse eines Clusterknotens binden. Fällt dieser aus oder wird er zur Wartung herunter gefahren, dann können Sie ja im DNS-Server einfach den Eintrag auf den anderen CAS-Server ändern und den DNS TTL Abwarten. Nach und nach
Eine Aussage zur Supportability habe ich nicht. Ich kann mir denken, dass es sogar supportet ist, aber die FunktionsEinschränkungen und Zusatzarbeiten sind doch so, dass diese Konfiguration nicht ernsthaft in Betracht gezogen werden sollte. |
ClusterIP |
|
3 |
KEIN Support |
Die ganze umschaltung von DNS-Einträge könnten Sie sich sparen, indem Sie einfach die Cluster IP oder eine neu angelegte IP-Adresse als Cluster-Ressource definieren und damit dem Microsoft Cluster den Schwenk im Fehlerfall überlassen. Sie könnten also zwei Exchange 2010 Server mit den üblichen Rollen Mailbox, ClientAccess und HubTransport als DAG installieren. Soweit wäre alles noch Standard aber eben noch nicht hoch verfügbar. Sie könnten nun aber die Funktion von Windows Cluster nutzen um IP-Adressen immer auf einem aktiven Host zu schwenken. Das könnte die IP des Cluster Servers oder eine neue zusätzliche IP sein. Fällt ein Knoten aus, würde die Adresse zum anderen Knoten schwenken, der auch eine aktive CAS-Rolle hat. Technisch erscheint das alles perfekt und hat mit wenig Last sogar funktioniert. Allerdings gibt es drei relevante Punkte:
Zudem kann ich nicht sagen, ob diese Lösung wirklich auch skalierbar und unter hohen Lastbedingungen stabil läuft. |
DNS Round Robin |
|
|
Kein Support |
Wer nun denkt, dass man doch einfach die beiden CAS Server per DNS zweimal einträgt, der glaubt eine funktionierende Konfiguration zu erhalten, der irrt. Ohne Last könnte es sogar funktionieren, dass ein Client bei einer DNS-Anfragen einmal die eine und einmal die andere IP-Adresse erhält, aber hochverfügbar ist dies nicht, denn:
Dieses Konfiguration ist daher nicht unterstützt. |
NLB + DAG kombiniert |
|
|
NIcht möglich |
Wenn Sie bei all den Optionen die Konfiguration vermissen, bei der einfach alle Rollen auf einen Server konsolidiert betrieben werden und vielleicht per NLB dann der Zugriff auf CAS und HT erlaubt werden soll, dann sollten Sie noch mal die Systemvoraussetzungen für Windows Cluster und NLB lesen. Diese beiden Dienste vertragen sich nicht auf dem gleichen Server. Das funktioniert also nur, wenn Sie unterschiedliche Serverinstanzen, d.h. eigene Server in Hardware oder virtuell haben. |
Sie sehen also, dass viele nette Ideen, die eine DAG auch für kleine und mittlere Firmen interessant werden lassen, doch am Ende nicht umsetzbar sind und und zwei Optionen auch sinnvoll sind. Wer "Verfügbarkeit" will, solle genau prüfen, wo er wie viel Geld investiert. Ich stehe ja immer noch auf dem Standpunkt, dass ein gut überwachter (Eventlog, Perfmon, SNMP) und abgesicherter (Backup, uSV, Updates) unterm Strich sicherer, stabiler und verfügbarer ist, also ein halbwegs implementierter Cluster. Wenn Sie den Hyper-V-Weg gehen und sich an den zwei zusätzlichen Exchange Standard Server Lizenzen aufhalten, dann sollten Sie generell noch mal das Thema "Hochverfügbarkeit" überdenken.
Auch die Argumentation mit dem Loadbalancer kann ich immer weniger nachvollziehen, da diese Systeme nicht nur für Exchange relevant sind, sondern auch gut bei Sharepoint, Proxy aber auch anderen TCP-Verbindungen zum Einsatz kommen können. Und wer Exchange "hochverfügbar" macht, wird sicher noch das ein oder andere System haben, welches durch den dann vorhandenen Load Balancer davon profitieren kann.
Hyper-V Konfiguration
Die Lizenzierung eines Windows Enterprise Servers erlaubt auch den Betrieb von bis zu vier virtuellen Windows Enterprise Servern auf der gleichen Hardware mittels Hyper-V. Das eröffnet natürlich den Weg, auf zwei physikalischen Servern einfach je einmal Hyper-V (ohne Cluster !) zu installieren. Jeder Server hat dabei seinen eigenen lokalen Speicher.
- Exchange DAG
In dieser Hyper-V Umgebung kann nun in einer virtuellen Maschine auf jedem Knoten ein Windows Enterprise Server mit Exchange Standard installiert und als Cluster konfiguriert werden. - CAs per NLB
Zwei weitere Server werden als CAS/HT-Server installiert und per NLB "hochverfügbar" gemacht. Damit die Clients diesen "neuen" Server nutzen, müssen wir noch ein CAS-Array konfigurieren, was weiter unten beschrieben ist. - Optional: DCs
Wer mag kann natürlich auf den Hyper-V-Host noch je einen weiteren Gast mit entsprechenden Domaincontrollern betreiben.
Vereinfacht sieht das wie folgt aus.
Beachten Sie, dass es keinen Failover von einem Hyper-V-Gast von einem Host auf einen anderen Host erfolgt. Die virtuellen Maschinen sind fest mit dem Gastgeber verbunden. Die Verfügbarkeit erfolgt allein innerhalb der Gastsysteme.
Achtung:
Wenn Sie Hyper-V selbst noch "clustern", oder auf dem Host weitere
Anwendungen installieren, dann betreiben Sie keine von Microsoft unterstützte Konfiguration.
Wenn Sie sich nun daran erinnern, dass Sie für all dies kein SAN oder anderen schnellen teuren Massenspeicher benötigen und Sie quasi mit Standard Hardware ein solches System aufbauen können, dann ist diese Lösung schon interessant. Allerdings kostet sie diese Konfiguration vier Exchange Server Lizenzen. (2x Standard für CAS und 2x Standard für bis zu 5 Datenbanken in der DAG, Enterprise für bis zu 100 Datenbanken)
- White Papers: Exchange 2010 Tested Solutions
http://technet.microsoft.com/en-us/library/gg513520.aspx - Exchange 2010 Tested Solutions: 500 Mailboxes in a
Single Site Running Hyper-V on Dell Servers
http://technet.microsoft.com/en-us/library/gg436085.aspx
Musterkonfiguration von Dell für 500 User mit 2 Hyper-V-Hosts und vier virtuellen Maschinen - Exchange 2010 Tested Solutions: 9000 Mailboxes in
Two Sites Running Hyper-V on Dell M610 Servers, Dell
EqualLogic Storage, and F5 Load Balancing Solutions
http://technet.microsoft.com/en-us/library/gg513522.aspx
Einrichten des CAS-Arrays
Damit die Clients aber nicht die Rechnernamen der Clusterknoten sondern diese virtuelle Namen nutzen, müssen Sie ein CAS-Array einrichten.
New-ClientAccessArray -Name CAS -Fqdn cas.msxfaq.de -Site Paderborn Get-MailboxDatabase | Set-MailboxDatabase -RpcClientAccessServer cas.msxfaq.de
All diese Änderungen sind nicht in der GUI sichtbar. Dokumentieren Sie daher, was sie tun. Aber dann können Sie in Outlook einfach "CAS" bzw. cas.msxfaq.de als Server eintragen und Outlook behält auch den Namen.
Achtung:
Beim Zugriff auf CAS Server ist die "Affinity" zu beachten. Wenn mehr
als ein Server im CAS-Array aktiv ist, muss sichergestellt sein, dass
Zugriffe eines Clients immer auf dem gleichen CAS landen. DNS-Round
Robin ist daher kein gangbarer Weg.
Wer also unbedingt zwei CAS-Server bereit stellen
möchte, könnte auf den Gedanken kommen und je zwei CAS-Arrays mit genau einem virtuellen CAS-Server
als Mitglied zu definieren um dank auf 50% der Clients wird dann der Namen des
einen CAS-Arrays und auf den anderen Clients das andere CAS-Array
eingetragen.
Das funktioniert aber nicht, da es pro AD-Site immer nur genau ein
CAS-Array geben darf.
Exchange Konfiguration abstimmen
Die Verwendung weiterer IP-Adressen mit weiteren Namen beeinflusst natürlich auch an anderen Stellen die Exchange Konfiguration
- Zertifikate
Wer mehr als nur die physikalischen Namen der Server in der Konfiguration verwendet und mit virtuellen geclusterten IPs und CAS-Arrays agiert, muss auf den Exchange Servern natürlich auf "passende" Zertifikate einrichten, die den Namen enthalten, der von den Clients verwendet wird. - External-URL
An verschiedenen Stellen der Konfiguration ist eine External-URL gepflegt, damit Autodiscover die richtigen Pfade an die Clients melden kann. Diese müssen auf ihre gewählte CAS-Konfiguration passen
Eine gewissenhafte Planung und Konfiguration ist hier unterlässlich, aber würde den Rahmen dieser kurzen Anleitung sprengen.
Vergleich zu Exchange 2007
Vergleichen Sie diese beiden Alternativen einmal mit einer Exchange 2007 Verfügbarkeitslösung wie SCR oder CCR. Im Vergleich zu CCR ist die DAG natürlich schnell als Gewinner ausgemacht, da nun beide Server aktiv Daten betreiben können und die Kombination mit der CAS-Rolle die bei Exchange 2007 noch erforderlichen zusätzlichen Server bei der zweiten Variante überflüssig macht.
Aber selbst den Vergleich zu SCR muss die DAG nicht scheuen. Auch SCR benötigt zwei Exchange Server Lizenzen und zwei Server. Zwar kann auch ein SCR-Server "über kreuz" die Datenbanken eines anderen Servers replizieren aber der Failover ist dabei nicht dynamisch. Hier muss ein Administrator immer aktiv werden, selbst wenn er "geplant" einen Server für Updates nur kurz offline nehmen möchte. Dafür ist der Aufpreis einer Windows Enterprise Lizenz sicher zu verkraften.
Für mich stellt sich beim Kunden eigentlich nur noch die Frage, ob der Kunde mit den Einschränkungen eines noch günstigeren "Single Servers" arbeiten möchte. Ich gehe aber davon aus, dass aufgrund der Bedeutung eines Mailsystems die Exchange 2010 DAG schon fast zum müssenprodukt werden kann.
Weitere Links
- Database Availability Groups
- Cluster Continuous Replication
- Standby Continuous Replication
- Verfügbarkeit
- Clustergrundlagen
- LoadBalancer
- NLB
-
Exchange 2010 High Availability Misconceptions Addressed
http://blogs.technet.com/b/exchange/archive/2011/05/31/exchange-2010-high-availability-misconceptions-addressed.aspx -
Database Availability Group Design Examples
http://technet.microsoft.com/en-us/library/dd979781.aspx -
RPCClientAccessServer attribute
http://smtp25.blogspot.com/2010/04/rpcclientaccessserver-attribute.html
ähnliche Lösung aber nutzt DNS Failover (Manuell) -
Exchange 2010 RTM High Availability Load Balancing Options
http://www.shudnow.net/2010/03/17/exchange-2010-rtm-high-availability-load-balancing-options/ -
Cluster Core Resources fail to come online on some Exchange 2010
Database Availability Group (DAG) nodes.
http://blogs.technet.com/timmcmic/archive/2010/05/12/cluster-core-resources-fail-to-come-online-on-some-exchange-2010-database-availability-group-dag-nodes.aspx -
Understanding the Cluster Debug Log in 2008
http://blogs.technet.com/b/askcore/archive/2010/04/13/understanding-the-cluster-debug-log-in-2008.aspx - 235305 Interoperability between MSCS and NLB
-
Understanding Load Balancing in Exchange 2010
http://technet.microsoft.com/en-us/library/ff625247.aspx -
Provision-LyncDnsRecords.ps1
http://pshscripts.blogspot.com/2010/09/provision-lync-dnsrecordsps1.html -
HP E5000 Messaging System für Microsoft Exchange
http://h20195.www2.hp.com/V2/getdocument.aspx?docname=4AA3-2683ENW.pdf
http://thoughtsofanidlemind.wordpress.com/2011/02/16/first-look-hp-e5000-messaging-system/
http://www.robichaux.net/blog/2011/02/introducing-the-e5000-messsaging-system.php