Genau vor einem Jahr veröffentlichte ich einen Blog auf für eine hohe Verfügbarkeit zu konfigurieren. Viel ist seitdem geschehen. Windows Azure-Pack wurde kurz danach veröffentlicht und wir haben zahlreiche Implementierungen von Windows Azure-Pack für Service-Provider und Enterprise-Organisationen. Und Junge, haben wir erfahren ... Ich versprach damals, dass, wenn Änderungen an dem Verfahren erforderlich waren, ich diesen Blog aktualisieren würde. Ich beschloss, einen neuen Blog zusammen zu erstellen, da es viel zu diskutieren.
Windows Azure Pack ist eine Anwendung, die von einem Web-Tier und einer Datenbankschicht besteht. Die Web-Tier kann in einer verteilten Konfiguration installiert werden und ermöglicht eine hohe Verfügbarkeit durch den Einsatz von Load-Balancing. Die Datenbankschicht nutzt Clustering für hohe Verfügbarkeit (mit SQL AlwaysOn oder SQL WFC). Dies hat sich nicht verändert im Vergleich zu Windows Azure Services für Windows Server.
Neben Änderungen an der IIS-Konfiguration für diese Seiten, sie haben auch Referenzen in der Datenbank, die aktualisiert werden müssen. Wir fanden heraus, dass es mehr Windows Azure Pack-Komponenten, die für eine hohe Verfügbarkeit aktualisiert werden müssen. Wenn Sie nur diese vier Komponenten aktualisieren und Herunterfahren des ersten konfigurierten Admin-Server in der Umgebung sind Ihre Dienste noch nicht verfügbar, trotz der Lastverteilung dieser vier Komponenten.
Dieser Blog ist eine Anleitung für die Konfiguration von Load Balancing und Hochverfügbarkeit für Windows Azure-Pack. Es wird die Schritte beschreiben, um Windows Azure-Pack nach einer Standard-Installation konfigurieren. Es beschreibt auch den Schritt auf der Datenebene mit SQL AlwaysOn nach einer Standard-Installation konfiguriert zu nehmen. Wenn Sie Anleitungen für das Einrichten eines SQL AlwaysOn Cluster müssen Sie verwenden können.
In I beschrieben ein verteiltes Konfigurationsszenario für Windows Azure-Pack. In diesem Entwurf wurden die Mieter Rollen und die Admin-Rollen aufgeteilt.
Die folgenden Komponenten, bei denen die Rollen installiert.
Der Mieter Rollen
Die Admin-Rolle
Obwohl ich werde die Schritte beschrieben, die Mieter Authentication-Site und die Admin-Authentication-Site zu konfigurieren, beachten Sie bitte die beiden Authentifizierungsstellen für Produktionsumgebungen und verwenden ADFS statt zu fallen. Die Konfigurationsschritte in für ADFS sind ähnlich, so dass Sie die Skripte aus diesem Blog für beide Szenarien verwenden können.
Windows Azure-Pack speichert seine Daten in SQL-Datenbanken, die mit Clustering zur Verfügung hoch gemacht werden kann. Load Balancer kann verwendet werden, Lastausgleich und hohe Verfügbarkeit für den Web-Server-Tier zu ermöglichen.
Nach der Erstkonfiguration müssen die folgenden Schritte durchgeführt werden, um Windows Azure-Pack für den Lastenausgleich herzustellen.
Für die meisten Menschen (nein, nicht du Geeks) ist es einfacher, einen einfachen Namen als eine IP-Adresse zu erinnern. DNS ist ein Benennungssystem, das um Namen in IP-Adressen und umgekehrt übersetzt. Es ermöglicht eine einfache Namenskonvention für Fenster Azure-Pack, die Mieter und Administratoren sich leicht merken können. Die folgenden Aufzeichnungen müssen in einer DNS-Zone erstellt werden, die FQDNs bilden werden und kann dann in der Windows Azure-Pack-Konfiguration verwendet werden.
Nach einer Standard-Windows-Installation Azure-Pack werden die Webseiten mit selbst signierten Zertifikaten konfiguriert. Damit Benutzer mit Zertifikatwarnungen aufgefordert zu werden, müssen wir schaffen und einen Web-Server-Zertifikat importieren. Damit Benutzer mit Sicherheit aufgefordert werden, das Zertifikat Warnung, die verwendet wird mit den folgenden Regeln entsprechen müssen.
Da mehrere Websites auf dem gleichen Server ausgeführt werden, können wir mit diesen Regeln entsprechen durch Anforderung
Öffnen Sie IIS auf der Windows Azure-Pack Admin Role Server. Rechtsklick auf das virtuelle Verzeichnis Mgmtvc-Adminsite und wählen Sie Bindungen bearbeiten. Wählen Sie die vorhandenen Bindungen und klicken Sie auf Bearbeiten. Ändern Sie den Port 443. den FQDN angeben (siehe Tabelle in Abschnitt 2.1) für den Admin-Site getroffen wurden. Aktivieren Sie das Häkchen für erforderlich Server Name Indication und wählen Sie das Web-Server-Zertifikat (das importiert wurde, wie in Abschnitt 2.2 beschrieben).
Senden Sie die Änderungen
Admin-Authentifizierung-Site
Rechtsklick auf das virtuelle Verzeichnis Mgmtvc-WindowsAuthSite und Bindungen bearbeiten wählen. Wählen Sie die vorhandenen Bindungen und klicken Sie auf Bearbeiten. Ändern Sie den Port 443. den FQDN angeben (siehe Tabelle in Abschnitt 2.1) für den Admin Auth-Site. Aktivieren Sie das Häkchen für erforderlich Server Name Indication und wählen Sie das Web-Server-Zertifikat (das importiert wurde, wie in Abschnitt 2.2 beschrieben).
Senden Sie die Änderungen.
tenant-Site
Öffnen Sie IIS auf der Windows Azure-Pack-Server, die den Mieter Rollen halten. Rechtsklick auf das virtuelle Verzeichnis Mgmtvc-TenantSite und wählen Sie Bindungen bearbeiten. Wählen Sie die vorhandenen Bindungen und klicken Sie auf Bearbeiten. Ändern Sie den Port 443. Geben Sie den FQDN für den Mieter-Site. Aktivieren Sie das Häkchen für erforderlich Server Name Indication und wählen Sie das Web-Server-Zertifikat (das importiert wurde, wie in Abschnitt 2.2 beschrieben).
Senden Sie die Änderungen
Mieter Authentication-Site
Rechtsklick auf das virtuelle Verzeichnis Mgmtvc-AuthSite und Bindungen bearbeiten wählen. Wählen Sie die vorhandenen Bindungen und klicken Sie auf Bearbeiten. Ändern Sie den Port 443. Geben Sie den FQDN für den Auth-Site. Aktivieren Sie das Häkchen für erforderlich Server Name Indication und wählen Sie das Web-Server-Zertifikat (das importiert wurde, wie in Abschnitt 2.2 beschrieben).
Senden Sie die Änderungen
Mieter Öffentliche API
Rechtsklick auf das virtuelle Verzeichnis MgmtSvc-TenantPublicAPI und wählen Sie Bindungen bearbeiten. Wählen Sie die vorhandenen Bindungen und klicken Sie auf Bearbeiten. Ändern Sie den Port 443. für den Mieter Öffentliche API den FQDN angeben. Sie nicht das Häkchen aktivieren für Server Name Indication erforderlich und die Web-Server-Zertifikat auswählen (das wurde in Abschnitt 2.2 beschrieben importiert).
Senden Sie die Änderungen.
Windows Azure-Pack speichert auch Verweise auf die Websites in ihren Datenbanken. Diese Werte müssen aktualisiert werden. Die meisten Konfigurations Blogs im Internet (einschließlich denen, die ich vorher getan haben) werden die folgenden Windows-Azure-Pack Komponentenreferenzen aktualisieren.
Wir fanden heraus, dass eine hohe Verfügbarkeit von Windows Azure-Pack auf zusätzliche Komponenten abhängt, die ebenfalls aktualisiert und an die Loadbalancer hinzugefügt werden müssen.
Wenn diese Komponenten nicht aktualisiert und die erste konfigurierte Windows Azure-Pack-Server, der die Admin-Rollen hält nicht verfügbar ist, ist der Mieter der Lage, an den Mieter Website anzumelden, aber mit Ausrufezeichen auf jedem Menüpunkt dargestellt und ist nicht in der Lage zu interagieren oder sogar siehe seine Dienste an.
Dies wird durch Referenzen verursacht, die hart codiert auf den FQDN des ersten konfigurierten Windows Azure-Pack-Server, die die Admin-Rollen hält.
Zusätzliche Ressourcen-Anbieter haben auch Referenzen in der Datenbank. Diese Ressourcenanbieter müssen ebenfalls aktualisiert werden.
Die folgenden Schritte werden als ein einziges Skript arbeiten, aber ich habe es in einzelnen Abschnitten zerlegt jeden Teil des Skripts zu erklären. So führen Sie die Cmdlets der Windows Azure-Pack Powershell-API-Komponente erforderlich ist, die über das Web Platform Installer installiert werden kann. Die Windows Azure-Pack Powershell-API-Komponente muss mindestens Update Rollup 1 aktualisiert werden.
Öffnen Sie eine Powershell-Konsole auf einem Windows-Azure-Pack-Server, der die Admin-Rollen und führen Sie die folgenden Cmdlets hält, um die Variablen zu erstellen, die in den nächsten Schritten verwendet wird.
Um Updates FQDNs in der Datenbank, führen Sie die folgenden Cmdlets in der gleichen Powershell-Konsole-Sitzung, wobei die Variablen aus dem vorherigen Abschnitt, wo definiert.
Die Admin-Site und Mieter-Site haben einen Verweis auf die Position ihrer entsprechenden Authentifizierungs-Sites. Diese Referenzen müssen mit den neuen Werten aktualisiert werden. Die Authentifizierungs Seiten haben einen Verweis auf die Admin-Site und der Mieter-Site. Um Updates laufen diese Werte die folgenden Cmdlets in der gleichen Powershell-Konsole-Sitzung, wobei die Variablen aus dem Abschnitt 2.4, wo definiert.
Windows Azure-Pack ermöglicht den Zugriff auf Ressourcen durch Endpunkte Ressourcenprovider. Die Windows Azure-Pack-Datenbanken enthalten Verweise auf diese Ressource-Provider-Endpunkte. Diese Referenzen müssen auch mit den neuen Werten aktualisiert werden. Um eine Liste aller Anbieter von Ressourcen zu erhalten, führen Sie die folgenden Cmdlets in der gleichen Powershell-Konsole-Sitzung, wobei die Variablen aus dem Abschnitt 2.4, wo definiert.
Jeder Betriebsmittel-Anbieter ist mit zwei Endpunkten konfiguriert. Ein Admin-Endpunkt und ein Mieter Endpunkt. Um eine Liste dieser beiden Werte erhalten für alle Ressourcenanbieter die folgenden Cmdlets in der gleichen Powershell-Konsole-Sitzung ausgeführt werden, wobei die Variablen aus dem Abschnitt 2.4, wo definiert. (Danke an Menno für das Format).
den neuen Endpunkt Wert für eine Ressource-Provider das folgende Cmdlet in der gleichen Powershell-Konsole-Sitzung, wobei die Variablen aus dem Abschnitt 2.4, wo definiert zu definieren.
den Endpunkt Wert für eine Ressource-Provider aktualisiert die folgenden Cmdlets in der gleichen Powershell-Konsole-Sitzung ausgeführt werden, wobei die Variablen aus dem Abschnitt 2.4, wo definiert.
Wiederholen Sie den vorherigen für die Ressourcenanbieter-Monitoring
Und der Ressourcenprovider UsageService
Um eine Liste mit den aktualisierten Werten die folgenden Cmdlets in der gleichen Powershell-Konsole-Sitzung ausgeführt werden, wobei die Variablen aus dem Abschnitt 2.4, wo definiert.
Nun, da alle Dienste mit den neuen Werten konfiguriert sind, müssen wir diese Werte in den Load Balancer zu definieren. Wir können diese Dienste in zwei Listen aufzuteilen. Eine Liste der Dienste, die auf der Web-Tier gerichtet sind, die die Windows Azure-Pack Admin-Rollen halten.
Und eine Liste der Dienste, die auf der Web-Tier gerichtet sind, die die Windows Azure-Pack Mieter Rollen halten.
Die Web-Tier in Windows Azure Pack ist ein stateless Anwendung. All die Anwendungsdaten in der Datenbankebene gespeichert. Ein Load-Balancer für den Lastausgleich die Anforderung an den Windows Azure-Pack Web-Tier verwendet. Dies kann zu einer API-Anforderungen von Endbenutzern, Administratoren oder auch interne Systemanforderungen sein.
Die Hardware-Load-Balancer können verschiedene Methoden verwenden, um in einer Konfiguration, Verfügbarkeit eines Knotens zu validieren. Ein paar Beispiele.
Verfügbarkeit basierend auf Pings an einem Knoten.
In dieser Konfiguration sendet der Load-Balancer-Pings an jedem Knoten in einer Konfiguration. Der Load Balancer markiert einen Knoten als aktiv, solange die Pings antworten. Die Anfragen werden an diesen Knoten gesendet. Wenn der Load-Balancer-Timeouts empfängt der Knoten als inaktiv markiert und Anfragen werden nicht mehr an diesen Knoten gesendet.
Diese Verfügbarkeit Detektionsverfahren ist einfach zu implementieren, aber nicht erkennt Probleme mit Verfügbarkeit der Dienste auf dem Betriebssystem läuft.
Verfügbarkeit basierend auf Anforderung eines IIS-Web-Seite
In dieser Konfiguration fordert der Load Balancer eine Seite von IIS. Wenn die Seite einen Wert zeigt, wie "Server in Betrieb ist" der Load Balancer markiert einen Knoten als aktiv. Die Anfragen werden an diesen Knoten gesendet. Wenn der Load Balancer ein Timeouts man die Seite erhält, wird der Knoten als inaktiv markiert und Anfragen werden nicht mehr an diesen Knoten gesendet.
Diese Verfügbarkeit Nachweismethode erfordert zusätzliche Schritte, um Setup, aber nicht erkennt Probleme mit der Verfügbarkeit der Web-Services auf dem Betriebssystem läuft. Zur Einrichtung dieser Konfiguration eine Webseite mit ähnlichem Inhalt erstellt
Erstellen Sie eine Datei mit dem Namen default.aspx und legen Sie sie in das Verzeichnis c: \ inetpub \ wwwroot \ Health Ordner. Konfigurieren Sie die Standard-Website in IIS mit einem zusätzlichen Standort Bindung an SSL-Port 443, mit dem gleichen SSL-Zertifikat für die anderen Dienste in dieser Stufe verwendet. Konfigurieren Sie den Load Balancer mit den entsprechenden Einstellungen.
Server Name Indication (SNI) ist nicht konfiguriert. Die meisten Loadbalancer sind nicht geeignet, die SNI-Funktion zu verwenden und daher wird auf der Website Sondieren, die nicht mit SNI konfiguriert ist. Sie können durch Öffnen auf der Windows Azure-Pack-Server die Seite testen.
Verfügbarkeit basierend auf der Anwendungslogik aufgebaut, um eine IIS-Seite.
In dieser Konfiguration fordert der Load Balancer eine Seite von IIS. Zusätzliche Anwendungslogik in die Seite eingebaut, die eine Abfrage an die SQL-Datenbank führt auf der Datenebene läuft. Die Seite zeigt nur den Wert "Server ist und läuft", wenn alle Logik-Anwendung ist richtig reagiert. Wenn die Seite den Wert zeigt "Server ist und läuft" der Load Balancer markiert einen Knoten als aktiv. Die Anfragen werden an diesen Knoten gesendet. Wenn der Load Balancer ein Timeouts man die Seite erhält oder einen anderen Wert anzeigt, wird der Knoten als inaktiv markiert und Anfragen werden nicht mehr an diesen Knoten gesendet.
Diese Verfügbarkeit Nachweismethode erfordert eine komplexere Konfiguration mit Anwendungslogik, sondern erkennt Probleme mit der Verfügbarkeit der Web-Services und innerhalb der Datenebene.
Wenn Sie Azure-Pack von Windows und spezifiziert die SQL-AlwaysOn DNS-Listener für den SQL-Eintrag konfiguriert haben, werden die Windows Azure-Pack-Datenbanken auf Primärknoten des SQL Cluster konfiguriert. Sie müssen auf die Verfügbarkeitsgruppe hinzugefügt werden.
Die Verfügbarkeitsgruppe sollte nun alle Windows Azure-Pack-Datenbanken.
SQL-Verfügbarkeitsgruppen repliziert Datenbanken aber keine Benutzerkonten. SQL Server bietet eine Option namens Datenbanken enthalten, die Benutzern erlaubt, enthielt gegen Instanzebene Benutzer erstellt werden. Bei Failover enthalten alle Datenbanken und enthielt Benutzer repliziert werden. Windows Azure-Pack macht die enthaltenen Feature-Datenbank, sondern nur für Mieter Datenbanken (Datenbank als Service) und nicht für die Konfigurationsdatenbanken von Windows Azure-Pack selbst. Darum gibt es neben Hinzufügen der Datenbanken auf die Verfügbarkeitsgruppe müssen wir auch die SQL-Konten für Windows Azure-Pack auf den sekundären Knoten in der Verfügbarkeitsgruppe verwendet zu replizieren.
SQL Server Management Studio öffnen Logins auf beiden SQL-Server zu vergleichen, wird zeigen, dass die Windows Azure-Pack-Konfiguration eine Reihe von Benutzerkonten auf dem primären Knoten erstellt, die auf dem Sekundär nicht verfügbar sind.
Die Benutzerkonten erstellt von Windows Azure-Pack sind SQL-Konten Server und nicht Domänenkonten. Auch wenn wir genau die gleichen Konten zu erstellen, verwaltet würden wir nicht wissen, wie das Passwort übereinstimmen, die vom Installationsprogramm erstellt wurden. Es ist möglich, die Benutzerkonten (Domäne und SQL-Konten) in eine Textdatei mit Hash-Passwort zu exportieren, indem Sie folgende.
Grundsätzlich erstellen Sie zwei gespeicherte Prozeduren, indem Sie das Skript in der Knowledge Base-Artikel auf Ihrem Master-Datenbank. Führen Sie das Skript auf dem primären Knoten (die die lokalen Benutzerkonten enthält).
Öffnen Sie eine neue Abfrage, und führen Sie EXEC sp_help_revlogin
Die Ausgabe von der gespeicherten Prozedur enthält die Domäne und SQL-Konten.
Vergleichen Sie die Ausgabe auf die Benutzerkonten auf dem sekundären SQL-Knoten und entfernen Sie die Zeilen, die Benutzerkonten enthalten, die auf dem Sekundärknoten bereits verfügbar sind. Eine Verbindung mit dem SQL Server Management Studio zu sekundären Knoten, und öffnen Sie eine neue Abfrage-Bildschirm. Fügen Sie den Ausgang aus der gespeicherten Prozedur wir einfach angepasst und ausführen. Dadurch werden die erforderlichen lokalen SQL-Konten auf diesem Knoten mit den richtigen Passwörter erstellen.
Mit diesem Schritt vervollständigen wir unsere Windows Azure-Pack-Umgebung für hohe Verfügbarkeit konfiguriert haben.