Freigeben über


Aktualisieren von Cacheservern

Microsoft AppFabric 1.1 für Windows Server-Cachecluster bestehen aus mehreren Servern (Cachehosts), die zusammenarbeiten, um einen verteilten Cache bereitzustellen. Von Zeit zu Zeit muss mindestens ein Server in einem Cachecluster aktualisiert werden, und für diese Updates kann ein Neustart erforderlich sein. In diesem Abschnitt finden Sie Anleitungen für dieses Patchszenarion für Cachecluster.

Geplante Wartung

Die einfachste Lösung dieses Problems besteht im Planen eines Wartungsfensters, um Updates auf allen Cacheservern auszuführen. In diesem Szenario beenden Sie den Cachecluster mit dem Befehl Stop-CacheCluster, aktualisieren die Computer und starten den Cachecluster dann mit dem Befehl Start-CacheCluster neu. Dieses Verfahren funktioniert am besten für Caches, die Zeiten geringer Nutzung aufweisen. Wenn die Clientanwendungen einen ständigen Bedarf hinsichtlich des Cacheclusters haben, können Sie andere Optionen in Betracht ziehen, bei denen der Cachecluster während der Upgrades aktiv bleibt.

Sequenzielle Cacheserverupdates

Es besteht die Möglichkeit, einzelne Cacheserver zu aktualisieren, während der Cachecluster weiterhin ausgeführt wird. Für diesen Vorgang ist es erforderlich, dass der Cachecluster mindestens zwei Cachehosts enthält. Der Grundvorgang setzt sich aus den folgenden Schritten zusammen:

  1. Beenden eines Servers im Cluster mithilfe des Befehls Stop-CacheHost. Verwenden Sie nach Möglichkeit den Schalter Graceful, um die zwischengespeicherten Daten vom Cachehost zu verschieben, bevor dieser beendet wird.

  2. Aktualisieren und Neustarten dieses Servers.

  3. Starten des Servers mithilfe des Befehls Start-CacheHost.

  4. Sequenzielles Wiederholen dieser Schritte auf jedem Cacheserver.

Auch wenn es sich um geradlinige Vorgehensweisen handelt, werden in den folgenden Abschnitten einige Überlegungen behandelt, die berücksichtigt werden sollten.

Aktualisieren führender Hosts

Die Clusterverwaltungsrolle wurde für die erfolgreiche Verwaltung der Cachehosts in einem Cachecluster konzipiert. Wenn Sie den XML-Anbieter zum speichern der Konfigurationseinstellungen des Cacheclusters verwenden, wird diese Rolle ausgeführt, indem einige der Cachehosts als führende Hosts reserviert werden. Damit der Cachecluster betriebsbereit bleibt, muss die Mehrheit der führenden Hosts ausgeführt werden. Dies wirkt sich auf sequenzielle Updates von Cacheservern aus. Betrachten Sie die folgenden beiden Servercachecluster.

Hostname Handelt es sich um einen führenden Host?

CacheServer1

Ja

CacheServer2

Nein

In diesem Beispiel ist CacheServer1 der führende Host in in diesem Cachecluster mit zwei Knoten. Da die Mehrheit der führenden Hosts weiterhin ausgeführt werden muss, kann CacheServer1 nicht beendet werden, ohne den Cachecluster zu beenden. In diesem Beispiel ist es nicht hilfreich, beide Server zu führenden Hosts zu erklären, weil bei der Deaktivierung einer dieser Server keine Mehrheit führender Hosts mehr ausgeführt wird. Sie können dieses Problem beheben, indem Sie einen weiteren Cachehostserver hinzufügen und alle Servers mithilfe der Befehle Export-CacheClusterConfig und Import-CacheClusterConfig als führende Hosts definieren. Weitere Informationen zum Ändern der reservierten führenden Hosts finden Sie unter Festlegen von Clusterverwaltungsrolle und führenden Hosts. Betrachten Sie den Cachecluster nach diesen Änderungen.

Hostname Handelt es sich um einen führenden Host?

CacheServer1

Ja

CacheServer2

Ja

CacheServer3

Ja

In dieser neuen Konfiguration sind alle drei Server führende Hosts. Nun ist es möglich, jeweils einen Cacheserver gleichzeitig zu deaktivieren, um Updates auszuführen.

Beachten Sie, dass dieses Problem für den Anbieter System.Data.SqlClient nicht auftritt, weil SQL Server anstelle führender Hosts die Clusterverwaltungsrolle ausführt. Weitere Informationen zu führenden Hosts finden Sie unter Führende Hosts und Clusterverwaltung.

Aktualisieren von Cachehosts mit Caches, die hohe Verfügbarkeit verwenden

Durch hohe Verfügbarkeit werden sekundäre Kopien zwischengespeicherter Elemente auf einem anderen Cachehost erstellt. Wenn der primäre Cachehost nicht mehr verfügbar ist, wird das zwischengespeicherte Element vom sekundären Cachehost bereitgestellt. Aus diesem Grund gehen die zwischengespeicherten Daten nicht verloren. Weitere Informationen zu dieser Funktion finden Sie unter Hohe Verfügbarkeit. Definitionsgemäß sind für hohe Verfügbarkeit mindestens drei Server im Cachecluster erforderlich. Das zwischengespeicherte Element kann auf einem Server vorhanden sein, eine sekundäre Kopie auf einem anderen Server besitzen und den dritten Server zum erfüllen der Anforderungen an hohe Verfügbarkeit verwenden, wenn die primären oder sekundären Server ausfallen. Wenn nur zwei Cachehosts ausgeführt werden, kann keiner von diesen einzeln beendet werden, weil der dritte Server nicht vorhanden ist, um die hohe Verfügbarkeit aufrecht zu erhalten.

Sie können mithilfe eines Windows PowerShell-Skripts ermitteln, ob mindestens einer der Caches die Funktion für hohe Verfügbarkeit verwendet. Das folgende PowerShell-Skript ist ein Beispiel, das jeden Cache durchläuft und die Eigenschaft Secondaries überprüft.

Import-Module DistributedCacheAdministration

Use-CacheCluster

$Caches = Get-Cache -MaxRegions 0
$HighAvailability = $false

foreach ($Cache in $Caches)
{
   $CacheConfig = Get-CacheConfig $Cache.CacheName
   if ($CacheConfig.Secondaries -eq 1)
   {
      Write-Host $CacheConfig.CacheName
      $HighAvailability = $true
   }
}

if ($HighAvailability -eq $true)
{
   Write-Host "One or more caches use high availability (Secondaries = 1)"
}
else
{
   Write-Host "No caches use high availability (Secondaries = 1)"
}

Auch wenn mehr als zwei Server im Cachecluster vorhanden sind, sollten Sie deren Ausführungsstatus mithilfe von Get-CacheHost überprüfen, bevor Sie mit den sequenziellen Updates beginnen.

Überlegungen zu Clientanwendungen

Bei der sequenziellen Aktualisierung der Cachehosts ohne Beenden des Cacheclusters müssen mehrere wichtige Überlegungen hinsichtlich der Clientanwendungen berücksichtigt werden, die auf den Cachecluster zugreifen.

  1. Anwendungen verweisen durch den Namen auf mindestens einen Cachehost, um anfänglich eine Verbindung mit dem Cachecluster herzustellen. Dies geschieht in der der Anwendungskonfiguration oder programmgesteuert. Wenn die Clientanwendung nur auf einen Cachehost verweist, ist sie nicht in der Lage, eine neue Verbindung mit dem Cachecluster herzustellen, wenn dieser Host nicht verfügbar ist. Clientanwendungen sollten nach Möglichkeit auf mehrere Cachehosts verweisen. Beachten Sie, dass Clientanwendungen nicht auf alle Cachehosts verweisen müssen. Die Cachehosts, auf die verwiesen wird, fungieren als Gateway auf den Gesamtcluster.

  2. Wenn ein Cachehost beendet wird, finden Anwendungen Elemente ggf. nicht, die zuvor auf dem beendeten Cachehost gespeichert waren. Die Anwendung ist dafür verantwortlich, diese Elemente erneut mit Daten aufzufüllen.

  3. Wenn ein Cachehost beendet wird, empfangen Anwendungen ggf. vorübergehend verschiedene Ausnahmen des Typs DataCacheException. Diese sollten automatisch aufgelöst werden, wenn der Cachecluster den Verlust eines Cachehosts ausgleicht. Anwendungen sollten so konzipiert werden, dass sie auf allgemeine Ausnahmen vorbereitet sind. Clients können Programmlogik für Wiederholungsversuche implementieren oder Quelldaten verwenden, bis die Ausnahme aufgelöst wurde. Weitere Informationen finden Sie unter Fehlerbehandlung.

  4. Wenn ein Cachehost beendet wird, sind Anwendungen ggf. vorübergehend nicht in der Lage, in einen Cache zu schreiben, der hohe Verfügbarkeit verwendet. Nachdem der Cachehost beendet wurde, werden neue Kopien zwischengespeicherter Elemente (sekundäre Kopien) auf einem anderen Cachehost erstellt.

Siehe auch

Konzepte

Häufige Aufgaben der Cacheclusterverwaltung (Windows Server AppFabric-Cache)

  2012-03-05