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.