Auswählen von Anwendungen, die in
einem Servercluster ausgeführt werden sollen
Zahlreiche Anwendungen können
für die Ausführung auf einem Servercluster angepasst
werden; dies gilt allerdings nicht für alle
Anwendungen. Die ausführbaren Anwendungen müssen
nicht zwingend als Clusterressourcen eingerichtet
werden. In diesem Abschnitt finden Sie Hinweise für
die Entscheidung.
Wichtig
Alle Anwendungen, die
in einem Servercluster ausgeführt werden,
müssen aus einer vertrauenswürdigen Quelle
stammen. Alle Dateien,
Registrierungsprüfpunkte und anderen
Ressourcen, die für diese Anwendungen
benötigt werden, müssen sich an einem
sicheren Ort befinden |
Die folgenden drei Kriterien
bestimmen, ob eine Anwendung an die
Failoververfahren im Cluster angepasst werden kann
oder nicht:
- Die
Anwendung muss ein IP-basiertes Protokoll
verwenden.
Client/Serveranwendungen müssen ein IP-basiertes
Protokoll (TCP, UDP, DCOM, Named Pipes oder RPC über
TCP/IP) für die Netzwerkkommunikation einsetzen,
damit sie auf einem Servercluster ausgeführt werden
können. Anwendungen, bei denen lediglich das
Protokoll NetBEUI oder IPX verwendet wird, können
die Vorteile des Failovers im Cluster nicht nutzen.
- Die
Anwendung muss den Speicherort für die
Anwendungsdaten angeben können.
Die
Anwendungen auf einem Servercluster müssen die Daten
an einem konfigurierbaren Speicherort ablegen
können, also auf den Datenträgern, die an den
gemeinsam genutzten Bus angeschlossen sind. Sie
können bestimmte Anwendungen, bei denen kein
Speicherort für die Daten konfiguriert werden kann,
dennoch für das Failover konfigurieren. In diesem
Fall geht der Zugriff auf die Anwendungsdaten beim
Failover allerdings verloren, weil die Daten nur auf
dem Datenträger des ausgefallenen Knotens zur
Verfügung stehen.
- Die
Clientanwendungen, die eine Verbindung zur
Serveranwendung aufbauen, müssen bei
vorübergehenden Netzwerkausfällen den Vorgang
automatisch wiederholen und auch eine
Wiederherstellung ausführen können.
Beim Failover werden die Netzwerkverbindungen der
Clientanwendungen vorübergehend unterbrochen. Wenn
Sie die Clientanwendung so konfiguriert haben, dass
vorübergehende Probleme mit der Netzwerkverbindung
automatisch aufgefangen werden, wird der Betrieb der
Anwendung nach einem Serverfailover fortgesetzt.
Die Anwendungen, bei denen ein
Failover möglich ist, können in zwei Kategorien
aufgeteilt werden: Anwendungen mit Unterstützung der
Cluster-API und Anwendungen ohne Unterstützung
dieser API.
Anwendungen, die die
Cluster-API unterstützen (z. B. Microsoft SQL Server
2000) werden als clusterfähige Anwendungen
bezeichnet. Diese Anwendungen können im
Clusterdienst registriert werden, so dass sie
Status- und Benachrichtungsinformationen erhalten.
Darüber hinaus können diese Anwendungen die
Clusterverwaltung über die Cluster-API vornehmen.
Wichtig
Nur
Microsoft SQL Server 2000-Failovercluster und
nachfolgende Versionen werden in einem
Servercluster unter Windows Server 2003,
Enterprise Edition oder Windows Server 2003,
Datacenter Edition unterstützt. |
Anwendungen, die die
Cluster-API nicht unterstützen, werden als
Anwendungen ohne Clusterunterstützung
bezeichnet. Wenn Anwendungen ohne
Clusterunterstützung die Kriterien hinsichtlich TCP/IP
und Remotespeicher erfüllen, können Sie sie im
Cluster einsetzen und häufig auch für ein Failover
konfigurieren.
In beiden Fällen gilt:
Anwendungen, die wichtige Statusinformationen im
Arbeitsspeicher ablegen, eignen sich nur bedingt für
den Einsatz in einem Cluster, weil die Daten, die
nicht auf dem Datenträger gespeichert sind, bei
einem Failover verloren gehen.
Schließlich
wird darauf hingewiesen, dass eine Anwendung
bestimmte Anforderungen erfüllen muss, um durch
Microsoft als clusterkompatibel zertifiziert zu
werden. Dabei handelt es sich um die folgenden
Anforderungen:
Zusammenfassung von
Anforderungen des Clusterdienstes
Anmerkung
Anwendungen, die diese Anforderungen nicht
erfüllen, können nur die Windows Server 2003,
Standard Edition-Zertifizierung erhalten. |
Grundprinzip
Ein Servercluster ist eine
Gruppe von unabhängigen Servern, die mit dem Ziel
der höheren Verfügbarkeit als ein einziges System
verwaltet werden. Unter Clusterdienst versteht man
eine Gruppe von Systemdiensten in Windows
Server 2003, Enterprise Edition und Windows
Server 2003, Datacenter Edition, mit deren Hilfe Sie
Servercluster erstellen können, indem Sie mehrere
Server miteinander verbinden. Diese Servercluster
stellen für die Netzwerkclients ein einziges, hoch
verfügbares System dar.
Der Clusterdienst erkennt den
Ausfall einer Anwendung oder eines Servers
automatisch. Er startet die Anwendung neu, und zwar
entweder auf demselben Server, wenn dieser noch
aktiv ist, oder auf einem anderen funktionsfähigen
Server.
Diese Anforderungen stellen
sicher, dass die Anwendung mit dem aktivierten
Clusterdienst richtig funktionsfähig ist und
Folgendes ermöglicht:
- Die
Serveranwendung kann ein Failover zu anderen
Servern vornehmen.
- Die
Clientseite der Anwendung reagiert bei einem
Ausfall der Serveranwendung richtig.
Vorteile für Kunden
Kunden, die die Anwendung in
einer Clusterumgebung ausführen, erreichen höhere
Verfügbarkeit, weil die Anwendung sowohl während der
geplanten Ausfallzeiten (z. B. bei Hardware- und
Softwareaktualisierungen) als auch während der
ungeplanten Ausfallzeiten (z. B. bei Hardware- oder
Softwareausfällen) weiterhin betriebsbereit ist.
Wenn eines der Systeme oder
einer der Knoten im Cluster ausfällt oder nicht mehr
verfügbar ist, überträgt der Clusterdienst dessen
Arbeitslast auf ein anderes System im Cluster. Die
Benutzer bemerken lediglich eine kurze Unterbrechung
des Betriebs. Sie können den Clusterdienst auch so
konfigurieren, dass ein Failback ausgeführt wird.
Auf diese Weise wird die Arbeitslast neu über den
Servercluster verteilt, sobald der ausgefallene
Server wieder online geschaltet wird.
Anforderungen
- Für die
Zertifizierung unter Windows Server 2003,
Enterprise Edition oder Windows Server 2003,
Datacenter Edition muss es möglich sein, die
Anwendung auf bis zu acht Knoten zu
installieren.
-
Anwendungen müssen ein Failover zu allen
Clustermitgliedern unterstützen.
- Clients
müssen den Ausfall der Serveranwendung
überstehen, ohne selbst auszufallen oder die
Stabilität des Systems zu beeinträchtigen.
So halten Sie die
Anforderungen des Clusterdienstes ein
- Für die
Zertifizierung unter Windows Server 2003,
Enterprise Edition oder Windows Server 2003,
Datacenter Edition muss es möglich sein, die
Anwendung auf bis zu acht Knoten zu
installieren.
Anmerkung
Stellen Sie sicher, dass bei der
Anwendungsinstallation nicht von einer
bestimmten Anzahl Knoten im Cluster
ausgegangen wird. Überprüfen Sie, ob alle
Knoten im Cluster aufgelistet werden und ob
die Installation der Anwendung auf jedem
beliebigen Knoten zugelassen wird, auch wenn
die Datenträger, auf denen die
Anwendungsdaten gespeichert werden, sich
physikalisch nicht auf diesem Knoten
befinden. |
-
Anwendungen müssen ein Failover zu allen
Clusterknoten unterstützen.
Wenn ein Knoten im Cluster ausfällt, verschiebt der
Clusterdienst die Ressourcengruppe von diesem Knoten
auf einen neuen Knoten. Eine Ressourcengruppe ist
eine Sammlung von Ressourcen, die Dienste für
Clients bereitstellen und voneinander abhängen
können. Ressourcen, die die primäre Funktionalität der
Anwendung darstellen, müssen auf jedem anderen
Knoten im Cluster gestartet (online geschaltet)
werden können. Überprüfen Sie nach Abschluss eines
Failovers, ob die Clients auf alle von den
Primärfunktionen bereitgestellten Daten zugreifen
können.
Anmerkung
Der
Clusterdienst arbeitet unter einer Shared
Nothing-Architektur, in der jeder Server
Besitzer seiner eigenen
Datenträgerressourcen ist. Im Falle eines
Serverausfalls werden die Besitzrechte des
Clusterdatenträgers von einem Server zu
einem anderen übertragen. Damit Anwendungen
das Failover richtig unterstützen, müssen
die Anwendungsdaten auf dem
Clusterdatenträger gespeichert werden. |
- Clients
müssen den Ausfall der Serveranwendung
überstehen, ohne selbst auszufallen oder die
Stabilität des Systems zu beeinträchtigen.
Jeder mit der Serveranwendung ausgelieferte Client
muss sowohl Ausfälle von Clusterknoten als auch von
Anwendungen fehlerfrei überstehen. Cluster- und
Anwendungsausfälle können dazu führen, dass die
Verbindung der Clients zur Serveranwendung
vorübergehend unterbrochen wird (siehe nächster
Punkt). Der Client muss den Ausfall der
Serveranwendung wie auch eines Knotens
folgendermaßen überstehen:
-
Wenn die Verbindung zur Serveranwendung
unterbrochen wird, darf dies nicht zu einem
Ausfall der Clientanwendung selbst oder zur
Beeinträchtigung der Stabilität des
Clientbetriebssystems führen.
-
Sobald das Failover abgeschlossen ist und
die Anwendung auf einem Clusterknoten neu
gestartet wurde, muss der Client die
Verbindung zum Cluster auf eine der
folgenden Arten wiederherstellen:
-
Wiederherstellen der
Verbindung ohne Eingreifen durch den
Benutzer und ohne Datenverlust
-
oder -
-
Bereitstellen einer
Möglichkeit für den Benutzer, die
Verbindung wieder herzustellen und den
fehlgeschlagenen Vorgang fortzusetzen,
z. B. indem der Benutzer aufgefordert
wird, die Clientdaten zu aktualisieren
-
Kann die Serveranwendung nicht neu gestartet
werden, muss der Client den Benutzer
informieren, dass die Verbindung nicht
wiederhergestellt werden konnte.
Verbindungen zur
Serveranwendung können aus folgenden Gründen
unterbrochen werden:
- Die
Anwendung fällt aus und wird auf demselben
Knoten neu gestartet.
- Die
Anwendung fällt aus und wird auf einem neuen
Knoten neu gestartet.
- Der
Knoten fällt aus, und für alle Ressourcen wird
ein Failover auf einem neuen Knoten
durchgeführt.
- Der
Administrator verschiebt die Ressourcengruppe,
zu der die Anwendung gehört, auf einen neuen
Knoten.
- Der
Administrator fährt die Serveranwendung
herunter.
- Alle
Knoten im Cluster fallen aus.
- Die
Netzwerkverbindung des Clients zum Cluster wird
unterbrochen, obwohl der Cluster und die
Serveranwendung weiterhin aktiv sind.
Diese Fehler können für die
Clientanwendung Anwendungstimeouts, ungültige
Handles, Netzwerkausfälle und Verbindungstimeouts
auslösen.
Entwicklungsrichtlinien
Die Richtlinien in diesem
Abschnitt sind keine Anforderungen, die für die
Zertifizierung einzeln getestet werden. Dennoch
hilft die Beachtung dieser Richtlinien dabei, die
weiter oben beschriebenen Anforderungen zu erfüllen:
-
Verwenden des TCP/IP-Protokolls
Dienste, die mit Clients kommunizieren (und deren
Clients), müssen TCP/IP verwenden, um das vom
Clusterdienst bereitgestellte IP-Adressenfailover
nutzen zu können. Server, die nicht mit Clients
kommunizieren, müssen TCP/IP nicht verwenden.
- Stellen
Sie sicher, dass Anwendungen einen virtuellen
Servernamen und eine IP-Adresse verwenden, um
die Verbindung zum Knoten herzustellen, auf dem
sich die Serveranwendung befindet.
Clients, die mit den Clusterressourcen
kommunizieren, müssen die virtuelle
Server-IP-Adresse oder den virtuellen
Servernetzwerknamen verwenden, um ein Failover zu
unterstützen.
Wenn die Serveranwendung einen Netzwerknamen oder
eine IP-Adresse auf Clients veröffentlicht, muss sie
eine virtuelle Server-IP-Adresse oder einen
virtuellen Netzwerknamen veröffentlichen. Eine
Serveranwendung, die von einem Computernamen oder
einer IP-Adresse abhängt, muss einen Netzwerknamen
oder eine IP-Adresse eines virtuellen Servers
verwenden, über den die Clients auf die Anwendung
zugreifen können. Stellen Sie sicher, dass der
Neustart der Serveranwendung auf einem anderen
Knoten nicht aufgrund eines abweichenden
Computernamens auf diesem Knoten fehlschlägt.
Das
folgende Codebeispiel stellt dar, wie Sie die
Serveranwendungsumgebung als Teil Ihrer
Ressourcen-DLL-Onlineroutine einrichten.
//
// Erstellen der neuen Umgebung mit dem simulierten
Netznamen, wenn
// Dienste 'GetComputerName' abfragen.
//
if ( ! ClusWorkerCheckTerminate( pWorker ) )
{
nStatus = ResUtilSetResourceServiceEnvironment(
YOUR_SERVICE_NAME,
pResourceEntry->hResource,
g_pfnLogEvent,
pResourceEntry->hResourceHandle
); );
if ( nStatus !=
ERROR_SUCCESS )
{
break;
} // wenn: Fehler beim Einrichten der Umgebung für
den Diensten Diensten Dienst
}
Infos zum IP-Adressenfailover
Clientanwendungen verwenden eine virtuelle
Server-IP-Adresse, um auf Dienste in einem
Servercluster zuzugreifen. Ein virtueller Server ist
eine Clusterressourcengruppe mit einer IP-Adresse
und einem Netzwerknamen. Ein virtueller Server kann
auf jedem beliebigen Knoten im Cluster online
geschaltet werden. Für die Clients, die darauf
zugreifen, handelt es sich jedoch möglicherweise um
denselben physikalischen Computer.
Die
IP-Adresse des virtuellen Servers muss als eine
Clusterressource in derselben Ressourcengruppe
konfiguriert sein, in der die Serveranwendung
erstellt wurde. Bei einem Knotenausfall werden alle
auf diesem Knoten ausgeführten Ressourcengruppen auf
einen anderen Knoten im Cluster verschoben. Die
IP-Adresse des virtuellen Servers ist jetzt auf
einem anderen Knoten verfügbar, und alle
Verbindungen mit den Clients können
wiederhergestellt werden.
- Bei
einem Ausfall müssen die Benutzerdaten auf den
Clients erhalten bleiben.
Die
Clientanwendung muss im Falle eines
Clusterknotenausfalls in der Lage sein, die
Verbindung wiederherzustellen und einen Vorgang
fortzusetzen. Entweder muss der Benutzer die
Gelegenheit erhalten, die Verbindung erneut
herzustellen, oder die Clientanwendung muss
automatisch versuchen, die Verbindung
wiederherzustellen, und zwar, entweder, bis dieser
Versuch erfolgreich war, oder bis feststeht, dass
die Serveranwendung nicht online geschaltet werden
konnte. Bei
einem Knotenausfall werden alle auf diesem
ausgefallenen Knoten ausgeführten Ressourcengruppen
auf einen anderen Knoten im Cluster verschoben. Der
Clusterdienst benötigt ein wenig Zeit, um alle
Ressourcen online zu schalten und den Dienst auf dem
anderen Knoten neu zu starten. Wie viel Zeit für das
Failover einer Serveranwendung benötigt wird, hängt
von vielen Faktoren ab. Am wichtigsten ist die zum
Neustarten der Anwendung erforderliche Zeit.
- Der
Speicherort der Anwendungsdaten muss
konfigurierbar sein.
Der
Clusterdienst kann ein Failover nur für vom Cluster
verwaltete Datenträger ausführen, die sich auf dem
gemeinsamen Speicherbus aller Knoten im Cluster
befinden. Stellen Sie sicher, dass Setup Ihrer
Anwendung die Auswahl des Laufwerks und die
Installation der Anwendungsdaten auf einem
beliebigen Laufwerk zulässt. Ein clusterfähiges
Setup sollte die Installation der Anwendungsdaten
nur auf einem vom Cluster verwalteten freigegebenen
Laufwerk zulassen.
- Es wird
entweder automatisch oder manuell ein Prüfpunkt
für die für einen fehlerfreien Neustart
erforderlichen Statusinformation gesetzt.
Wenn eine Serveranwendung Statusinformationen
verwaltet, die für einen fehlerfreien Neustart
benötigt werden, sollten für diese
Statusinformationen häufig Prüfpunkte auf einem vom
Cluster verwalteten Clusterdatenträger gesetzt
werden. Diese Daten werden für eine schnelle
Wiederherstellung nach einem Ausfall verwendet.
- Bei
einem Ausfall kann eine Anwendung neu gestartet
und ggf. auf dem Stand des letzten Prüfpunktes
wiederhergestellt werden.
Die
Serveranwendung muss nach einem Knotenausfall
wiederhergestellt werden. Stellen Sie sicher, dass
Ihre Anwendung bei einem plötzlichen Knotenausfall
(z. B. durch einen Stromausfall) nicht in einen
Zustand gerät, aus dem kein Neustart möglich ist.
Nach einem Knotenfehler verschiebt der Clusterdienst
die auf dem Knoten ausgeführte Serveranwendung
zusammen mit allen anderen Ressourcen, von denen sie
abhängt, auf einen anderen Knoten. Die
Serveranwendung muss innerhalb der in der
Produktbeschreibung angegebenen Zeit neugestartet
sowie wiederhergestellt werden und den Betrieb
fortsetzen.
- Mindestens eine Instanz der Anwendung kann als
Clusterressource ausgeführt werden.
Der
Clusterdienst verwaltet Anwendungen als
Clusterressourcen. Eine Clusterressource ist eine
physikalische oder logische Einheit, die einem
Knoten gehören, online und offline geschaltet,
zwischen Knoten verschoben und als
Serverclusterobjekt verwaltet werden kann. Eine
Ressource kann jeweils nur Eigentum eines einzigen
Knotens sein. Eine Ressource ist einem Ressourcentyp
zugeordnet und wird von diesem verwaltet.
Sofern von der Ressource unterstützt, kann der
Clusterdienst mehrere Instanzen derselben Ressource
verwalten. Es ist jedoch auch zulässig, dass nur
eine Instanz unterstützt wird.
Um
die Vorteile des Clusterdienstes zu nutzen, muss die
Anwendung als Clusterressource konfiguriert sein.
Stellen Sie sicher, dass Sie mindestens eine Instanz
Ihrer Anwendung erstellen können. Ihre Anwendung
muss als Clusterressource fehlerfrei arbeiten. Der
Clusterdienst muss verwendet werden, um die
Anwendung zu starten (online zu schalten) und zu
beenden (offline zu schalten).
- Die
Anwendung kann als allgemeiner Dienst oder als
allgemeine Anwendung konfiguriert werden.
Die
Überwachungs- und Failoverfunktionen des
Clusterdienstes können erweitert werden, um alle
Anwendungen zu unterstützen. Der Clusterdienst
verwendet Ressourcen-DLLs zum Erweitern der
Failoverunterstützung für andere Ressourcentypen.
Anwendungen, die keine anwendungsspezifische
Ressourcen-DLL bereitstellen, können dennoch die
Vorteile des Clusterdienstes nutzen, indem sie die
Ressourcentypen Allgemeine Anwendung oder
Allgemeiner Dienst verwenden. Diese
Ressourcentypen bieten Failoverschutz für die
meisten Fehler, insbesondere Knotenausfälle. Sie
können jedoch keine Anwendungsausfälle erkennen.
Wenn die Anwendung nicht mehr reagiert, kann der
Clusterdienst diesen Fehler nicht erkennen und führt
entweder einen Neustart oder ein Failover der
Anwendung aus. Es
ist zulässig, die Ressourcentypen Allgemeine
Anwendung oder Allgemeiner Dienst zu
verwenden, um Ihre Anwendung als Clusterressource zu
verwalten.
|