AppFabric 缓存群集(AppFabric 1.1)的升级步骤

本主题介绍如何为现有缓存群集将 Microsoft AppFabric 1.1 for Windows Server 缓存 服务脱机和联机升级到更高版本。联机升级涉及到在缓存群集仍在运行时分别升级每个缓存主机。

Important要点
在升级过程中,您不能将内置帐户(如网络服务帐户)更改为域帐户。有关详细信息,请参阅更改缓存服务帐户(AppFabric 1.1 缓存)

Microsoft AppFabric 1.1 for Windows Server 的每个版本都与 AppFabric 缓存 服务的特定版本号相关联。

AppFabric 版本 AppFabric 缓存 服务版本

Windows Server AppFabric v1.0

1

Microsoft AppFabric 1.1 for Windows Server

3

脱机升级过程

脱机升级之前需要先关闭缓存群集。在缓存群集关闭期间,可以将每个缓存主机分别升级到新版本的 AppFabric。此时所要执行的步骤也是联机升级步骤的一部分,具体步骤如下:

  1. 步骤 1:在管理计算机上更新缓存管理功能

  2. 步骤 5:更新允许的服务器版本范围以便只使用新的版本号

  3. 步骤 6:更新允许的客户端版本范围以包括新的版本号

  4. 步骤 7:更新缓存配置存储

  5. 步骤 8:更新缓存客户端应用程序

联机升级过程

联机升级包括以下步骤:

  • 步骤 1:在管理计算机上更新缓存管理功能

  • 步骤 2:更新允许的服务器版本范围以包括新的版本号

  • 步骤 3:按顺序升级每个缓存主机

  • 步骤 4:验证所有缓存主机都已升级

  • 步骤 5:更新允许的服务器版本范围以便只使用新的版本号

  • 步骤 6:更新允许的客户端版本范围以包括新的版本号

  • 步骤 7:更新缓存配置存储

  • 步骤 8:更新缓存客户端应用程序

Important要点
为了成功执行这些步骤,必须维持所需的服务器仲裁以确保缓存群集持续运行。在更新缓存服务器主题中对相关信息进行了说明。

步骤 1在管理计算机上更新缓存管理功能

若要执行更新步骤,首先应更新不属于目标缓存群集的计算机上的“缓存管理”功能。通过“缓存管理”功能,您可以对缓存群集运行 Windows PowerShell 命令。可通过运行新版 Microsoft AppFabric 1.1 for Windows Server 的 AppFabric 安装程序来升级“缓存管理”功能。

如果您没有一台单独的计算机用于管理缓存群集,则可以将新版 Microsoft AppFabric 1.1 for Windows Server 的“缓存管理”功能安装在缓存群集之外的某台计算机上。

为了能够在仅用于管理的计算机上运行 Windows PowerShell 命令,必须首先运行 Use-CacheCluster 命令,并指定 ProviderConnectionString 参数。在常规缓存群集管理任务(AppFabric 1.1 缓存)主题中对相关信息进行了说明。

步骤 2:更新允许的服务器版本范围以包括新的版本号

在联机升级过程中,一些服务器将会运行旧版“缓存服务”,而其他服务器则会运行升级后的版本。为了解决这一问题,您必须使用 Update-CacheHostAllowedVersions Windows PowerShell 命令增加 EndServerVersion 属性的值。例如,如果是从版本 1 升级为版本 3,应使用以下命令。

Update-CacheHostAllowedVersions –EndServerVersion 3

然后运行不带任何参数的 Get-CacheHost 命令,以验证版本是否已更改。以下示例输出显示了在三节点缓存群集上完成的此更改。

HostName : CachePort Service Name            Service Status Version Info
-------------------- ------------            -------------- ------------
CACHESERVER1:22233 AppFabricCachingService UP             1 [1,3][1,1]
CACHESERVER2:22233 AppFabricCachingService UP             1 [1,3][1,1]
CACHESERVER3:22233 AppFabricCachingService UP             1 [1,3][1,1]

此示例中的“Version Info”列包含值 1 [1,3][1,1]。这些值分别与以下版本详细信息相对应:

1

缓存主机上运行的“缓存服务”的版本。

[1,3]

在联机升级过程中,在缓存群集内的特定主机上所运行的缓存服务的版本范围。

[1,1]

可以使用该缓存群集的缓存客户端的版本范围。

继续操作之前,必须确保每个缓存主机都已更新到允许的目标服务器范围。对于未能更新其服务器版本范围的任何缓存主机,必须先关闭这些缓存主机,然后才能继续操作。可以使用 Stop-CacheNonUpdatedHosts Windows PowerShell 命令完成此操作。可以先使用 Get-CacheHost 命令预测哪些服务器尚未更新,并且会因此而被停止运行。以下示例将会停止其版本范围尚未更改为 13,且其当前服务版本为 1 的所有缓存主机。

Stop-CacheNonUpdatedHosts -Version 1 -BeginServerVersion 1 –EndServerVersion 3

步骤 3:按顺序升级每个缓存主机

若要执行联机升级,需要分别停止每个缓存主机并进行升级。以下介绍了必须对缓存群集中每个缓存主机采取的步骤。

  1. 在缓存管理计算机上,使用 Windows PowerShell 运行 Stop-CacheHost 命令以便停止缓存主机。

    警告

    如果未使用“高可用性”功能,则停止缓存主机会导致缓存数据丢失。即便使用“高可用性”功能,客户端也可能会出现临时异常,如果群集仍然运行,则重试停止缓存主机运行的操作会解决这些异常。

  2. 在停止运行的缓存主机上,通过运行新版 Microsoft AppFabric 1.1 for Windows Server 的安装程序将其升级为新版本。

  3. 升级完成后,使用 Start-CacheHost 重新启动缓存主机。

  4. 接下来运行 Get-CacheClusterHealth。确保所有数字都属于“良好”范围,且缓存主机上的缓存部分已稳定。还要验证“未分配部分”或“未分配的命名缓存部分”中没有任何条目。可以通过多次运行 Get-CacheClusterHealth 直至缓存部分已稳定来验证这一点。

  5. 对缓存群集中的下一个缓存主机重复执行这些步骤。

在该过程的此部分中,不支持使用以下 Windows PowerShell 命令。在所有缓存主机都已更新至新版本,且服务器版本的起始范围已更新至新版本之前,不应使用这些命令。

升级过程中不支持的命令 是否生成错误?

Grant-CacheAllowedClientAccount

Import-CacheClusterConfig

New-Cache

Remove-Cache

Revoke-CacheAllowedClientAccount

Set-CacheClusterSecurity

Set-CacheConfig

Set-CacheHostConfig

Update-CacheHostAllowedVersions*

New-CacheCluster

Remove-CacheCluster

Register-CacheHost

Unregister-CacheHost

生成错误的命令具有类似于以下内容的文本:ErrorCode<ERRPS024>:SubStatus<ES0001>:This command is not currently allowed. Changes to the cache cluster configuration is restricted during a rolling upgrade of the caching service.

* 当群集中的所有缓存主机都运行相同版本的 AppFabric 缓存 服务时,Update-CacheHostAllowedVersions 不会生成错误。

步骤 4:验证所有缓存主机都已升级

升级每个缓存主机后,使用 Get-CacheHost 命令查看每个缓存主机上“缓存服务”的版本。这些缓存主机上的“缓存服务”必须都为新版本,然后您才能继续操作。请考虑来自 Get-CacheHost 的以下示例输出:

HostName : CachePort Service Name            Service Status Version Info
-------------------- ------------            -------------- ------------
CACHESERVER1:22233 AppFabricCachingService UP             3 [1,3][1,1]
CACHESERVER2:22233 AppFabricCachingService UP             3 [1,3][1,1]
CACHESERVER3:22233 AppFabricCachingService UP             1 [1,3][1,1]

在此示例中,前两个服务器现在运行的是更新的“缓存服务”版本 3。但是 CACHESERVER3 计算机运行的仍是旧的“缓存服务”版本 1。必须使用上一步骤成功升级此缓存主机,或者,必须停止此缓存主机,以继续在升级过程中对其进行升级。

步骤 5:更新允许的服务器版本范围以便只使用新的版本号

使用 Update-CacheHostAllowedVersions 命令将 BeginServerVersion 增加为新版本。

Update-CacheHostAllowedVersions –BeginServerVersion 3

以下示例说明了在目标版本为 3 的三节点群集中完成此步骤后执行 Get-CacheHost 命令的结果。

HostName : CachePort Service Name            Service Status Version Info
-------------------- ------------            -------------- ------------
CACHESERVER1:22233 AppFabricCachingService UP             3 [3,3][1,1]
CACHESERVER2:22233 AppFabricCachingService UP             3 [3,3][1,1]
CACHESERVER3:22233 AppFabricCachingService UP             3 [3,3][1,1]

此时,您可以使用任何可用的 Windows PowerShell 命令,以及此升级所提供的任何新功能。

步骤 6:更新允许的客户端版本范围以包括新的版本号

为使用新缓存客户端功能而构建的应用程序需要能够与升级后的缓存群集进行通信。使用 Update-CacheHostAllowedVersions 命令可将新版本包含在允许的缓存客户端版本范围之内。以下示例通过将 EndClientVersion 参数增大为 3 来完成此操作。

Update-CacheHostAllowedVersions -EndClientVersion 3

以下示例显示了此更改在 Get-CacheHost 输出中的结果。

HostName : CachePort Service Name            Service Status Version Info
-------------------- ------------            -------------- ------------
CACHESERVER1:22233 AppFabricCachingService UP             3 [3,3][1,3]
CACHESERVER2:22233 AppFabricCachingService UP             3 [3,3][1,3]
CACHESERVER3:22233 AppFabricCachingService UP             3 [3,3][1,3]

此时,您可以更新任何应用程序,以使用新的缓存客户端程序集和功能。如果要将缓存客户端限制为仅为新版本,还可以使用 Update-CacheHostAllowedVersionsBeginClientVersion 更改为新版本号。但是,也可以选择保留版本范围,以允许新客户端和旧客户端继续使用缓存群集。如果决定将缓存客户端限制为特定版本,则首先必须将所有这些客户端更新至该版本,然后才能增大 BeginClientVersion 值。

步骤 7:更新缓存配置存储

使用 Update-CacheConfigurationStore 命令更新缓存配置存储。只有在升级所有的缓存主机后,才能使用此命令。

Update-CacheConfigurationStore

在其他内部更改中,此命令会将缓存群集配置中的主机名称转换为使用其完全限定的域名 (FQDN)。

步骤 8:更新缓存客户端应用程序

如前一步骤中所述,缓存客户端应用程序需要使用新的 AppFabric 缓存 程序集,才能利用新的 AppFabric 缓存 功能或与其版本范围限制为最新版本(例如 3,3)的缓存群集进行通信。

请注意,AppFabric 缓存 程序集不再在全局程序集缓存 (GAC) 中注册,这一点很重要。这意味着您必须同时找到缓存客户端应用程序二进制文件和 AppFabric 缓存 程序集。或者,也可以使用应用程序配置文件中的 <assemblyBinding> 部分。<codeBase> 元素可指向程序集所在的位置。

备注

请注意,不必始终重构缓存客户端应用程序。卸载或升级 Windows Server AppFabric v1.0 会从 GAC 中删除 AppFabric 缓存 程序集。此时,您可以使用以上方法之一让缓存客户端应用程序加载新的程序集。当然,必须重新构建缓存客户端应用程序才能利用新功能,如压缩功能。

  2012-03-05