自动安装和配置(AppFabric 1.1 缓存)

本部分介绍用于自动安装和配置 Microsoft AppFabric 1.1 for Windows Server 缓存功能的步骤。在无人参与安装中,用户不会看到任何用户界面,因为所有选项都通过命令行指定。有一个特定的所需命令序列可向缓存群集添加缓存主机或者从缓存群集中删除缓存。本部分介绍用于这两种方案的命令。请注意,也可以使用 AppFabric 配置向导通过用户界面来配置缓存功能。有关 AppFabric 配置向导的详细信息,请参阅配置 Windows Server AppFabric

本部分将自动安装步骤分为 5 个任务:

  • 安装 Windows Server AppFabric 缓存功能

  • 创建新的缓存群集

  • 添加缓存主机

  • 删除缓存主机

  • 删除缓存群集

有关自动执行这些步骤的 PowerShell 脚本,请参见以下示例:

提示

要了解有关启动和运行 Windows PowerShell 命令的基本信息,请参阅使用 Windows PowerShell 管理 Windows Server AppFabric 缓存功能。请注意,在运行这些命令之前,可能必须使用 Import-Module 导入 Windows PowerShell 模块才能进行管理 (DistributedCacheAdministration) 或配置 (DistributedCacheConfiguration)。

提示

尽管下面的某些命令必须在目标缓存主机上本地运行,但是 Windows PowerShell 支持在远程计算机上运行命令。有关详细信息,请参阅运行远程命令

安装 Microsoft AppFabric 1.1 for Windows Server 缓存功能

在缓存主机上创建新缓存群集或配置 AppFabric 缓存之前,必须先安装 Microsoft AppFabric 1.1 for Windows Server 缓存功能。有关如何在无提示的情况下安装 AppFabric 的说明,请参阅自动安装。缓存功能包括:

  • CachingService

  • CacheClient

  • CacheAdmin

例如,考虑一个安装程序二进制文件名为 Setup.exe 的方案。请注意,实际的二进制文件名将因您选定的平台而异。以下示例介绍如何在服务器上在无提示的情况下安装 AppFabric 缓存功能。

Setup.exe /install /i cachingservice,cacheclient,cacheadmin /l:c:\temp\setup.log

请注意,在本示例中,我们还将日志文件定向到 c:\temp\setup.log。您可以检查该日志文件,以调查安装的结果。Microsoft AppFabric 1.1 for Windows Server 还新增了一个 p 选项,用以指定 AppFabric 的安装路径。

在计算机上安装 AppFabric 缓存功能之后,您需要配置这些功能。以下部分介绍自动执行此过程所需的步骤。

创建新的缓存群集

如果您创建新的缓存群集,则必须首先调用 New-CacheCluster Windows PowerShell 命令。创建新的缓存群集时,您必须决定存储群集配置设置的位置。您还可以选择使用 System.Data.SqlClient 提供程序、XML 提供程序或自定义提供程序。有关详细信息,请参阅配置模型

以下示例创建一个小型的缓存群集。它使用名为 CacheClusterConfigurationDB 的现有数据库将配置设置存储在名为 SQLServer1 的 SQL Server 计算机上。

New-CacheCluster -Provider System.Data.SqlClient -ConnectionString  "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True" -Size Small

备注

请注意,如果您使用 SQL Server 数据库镜像来增加缓存群集的可用性,则必须在连接字符串中指定故障转移合作伙伴。有关详细信息,请参阅基于 SQL Server 的群集配置

以下示例创建一个大型的缓存群集。它将配置设置存储在名为 \\Server1\CacheConfigShare 的网络共享上的 XML 文件中。

New-CacheCluster -Provider XML -ConnectionString  "\\Server1\CacheConfigShare" -Size Large

在这两个示例中,调用方必须对配置存储位置拥有足够的权限。对于 System.Data.SqlClient,调用方必须是目标数据库上的 db_owner 或者 SQL Server 实例上 sysadmin 角色的成员。对于 XML,调用方必须对共享文件夹拥有所有者权限。

添加缓存主机

要向现有缓存群集中添加缓存主机,您不要按顺序执行以下步骤:

命令/步骤 说明

Register-CacheHost

向缓存群集注册缓存主机。

Add-CacheHost

将缓存主机配置为缓存群集的一部分。

Add-CacheAdmin

可以选择在当前缓存主机上配置缓存管理。

配置防火墙

允许 AppFabricCachingService 服务通过防火墙。还允许远程服务管理。

Start-CacheHost

启动新的缓存主机。

Register-CacheHost

使用 Register-CacheHost 命令向现有缓存群集注册缓存主机。这包括为缓存服务指定端口号和 Windows 帐户。ProviderConnectionString 参数指定新缓存主机的目标缓存群集。

以下示例将缓存主机 CacheServer1 添加到其配置存储位于文件共享 \\Server1\CacheConfigShare 上的 XML 文件中的缓存群集。为缓存服务的标识指定内置的 NT Authority\Network Service 帐户。

Register-CacheHost -Provider XML -ConnectionString "\\Server1\CacheConfigShare"  -Account "NT Authority\Network Service" -CachePort 22233 -ClusterPort 22234  -ArbitrationPort 22235 -ReplicationPort 22236 -HostName  CacheServer1

请注意,对于 XML 提供程序,调用方必须对目标网络共享拥有完全控制权限。对于 System.Data.SqlClient 提供程序,调用方必须对目标数据库拥有读取、写入、创建 SQL 登录以及添加权限的权限。

与很多其他配置命令不同,Register-CacheHost 命令接受 HostName 参数,因此它可以远程运行。

Add-CacheHost

Add-CacheHost 命令将缓存主机配置为现有缓存群集的一部分。ProviderConnectionString 参数指定新缓存主机的目标缓存群集。

以下示例演示如何调用 Add-CacheHost

Add-CacheHost -Provider XML -ConnectionString "\\Server1\CacheConfigShare" -Account "NT Authority\Network Service"

请注意,该命令必须在配置的缓存主机上本地运行。还必须使用管理员权限从提升权限的 Windows PowerShell 会话中运行该命令。

警告

必须为 Add-CacheHost 命令提供 Account 参数的值。如果您未指定帐户,则将无法为缓存服务正确配置权限。请注意,在启用安全的域环境中,必须使用 NT Autority\Network Service 帐户。

Add-CacheAdmin

也可以选择使用 Add-CacheAdmin 命令在缓存主机上配置缓存管理功能。这样您便能够使用 Windows PowerShell 命令从该计算机管理缓存群集。必须在该计算机上安装缓存管理功能。

以下示例演示如何调用 Add-CacheAdmin

Add-CacheAdmin -Provider XML -ConnectionString  "\\Server1\CacheConfigShare"

请注意,该命令必须在配置的缓存主机上本地运行。还必须使用管理员权限从提升权限的 Windows PowerShell 会话中运行该命令。

配置防火墙

要成功使用 AppFabric 缓存功能,您必须配置 DistributedCacheService.exe 服务。默认情况下,该服务安装到“C:\Program Files\Windows Server AppFabric”目录下。

如果您使用 Windows 防火墙,则可以启用一个与 AppFabric 一起自动安装的防火墙策略组。以下 Windows Powershell 命令可启用名为“Microsoft AppFabric 1.1 for Windows Server:AppFabric 缓存服务”的防火墙策略组。您还应该启用“远程服务管理”防火墙规则,以便能够远程控制 AppFabric 缓存服务。

netsh advfirewall firewall set rule group="Windows Server AppFabric: AppFabric Caching Service" new enable=Yes
netsh advfirewall firewall set rule name="Remote Service Management (RPC)" profile=domain new enable=Yes
netsh advfirewall firewall set rule name="Remote Service Management (RPC-EPMAP)" profile=domain new enable=Yes
netsh advfirewall firewall set rule name="Remote Service Management (NP-In)" profile=domain new enable=Yes

Start-CacheHost

如果您希望新缓存主机能够参与缓存群集,则必须启动该缓存主机。如果缓存群集已关闭,则必须启动整个缓存群集。如果所有主机都关闭,则缓存群集也关闭。这可以通过调用不带参数的 Get-CacheHost 来评估。

Get-CacheHost

如果所有主机都显示 DOWN 的服务状态,则使用 Start-CacheCluster 命令启动缓存群集。

Start-CacheCluster

但是,如果至少一个主机的服务状态为 UP,则缓存群集正在运行。在这种情况下,请使用 Start-CacheHost 命令。

Start-CacheHost -Hostname CacheServer2 -CachePort 22233

请注意,重新启动缓存主机之后,缓存服务不会自动启动;您应该使用 Start-CacheHostStart-CacheCluster,具体情况取决于缓存群集的状态。

还必须使用管理员权限从提升权限的 Windows PowerShell 会话中运行该命令。

警告

始终使用 Windows PowerShell 命令启动和停止缓存服务。一定不要从管理工具的服务程序中直接启动或停止 AppFabricCachingService 服务。

删除缓存主机

要从缓存群集中删除缓存主机,您需要按顺序执行以下步骤。

命令/步骤 说明

Stop-CacheHost

停止缓存主机(如果它正在运行)。

Unregister-CacheHost

向缓存群集注销缓存主机。

Remove-CacheHost

从计算机中删除缓存主机配置。

Remove-CacheAdmin

可选择删除缓存管理功能的配置。

配置防火墙

删除缓存服务的任何防火墙例外。

Stop-CacheHost

如果您想从现有群集删除缓存主机,则必须首先停止该缓存主机。通过调用 Get-CacheHost 命令可以确定缓存主机是否正在运行。以下示例演示如何查看本地缓存主机的缓存主机信息。

Get-CacheHost -HostName localhost -CachePort 22233

尽管上面的命令为您提供了有关特定缓存主机的信息,但在停止任何一个缓存主机之前,您应该始终考虑整个缓存群集的状态。可以通过调用不带参数的 Get-CacheHost 来完成该操作。

Get-CacheHost

下面显示了对于两个服务器的缓存群集该命令的示例输出。

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
CacheServer1:22233        AppFabricCachingService UP             1 [1,1][1,1]
CacheServer2:22233        AppFabricCachingService UP             1 [1,1][1,1]

在该示例中,正在运行 CacheServer1CacheServer2。您可以尝试停止其中一个缓存主机并通过其他缓存主机使缓存群集正常工作。以下示例显示如何使用 Stop-CacheHost 命令停止 CacheServer2

Stop-CacheHost -HostName CacheServer2 -CachePort 22233 -Graceful

请注意 Graceful 开关的使用。v1.1 版本中添加了此开关,以在其他缓存主机关闭之前将数据从缓存服务器移至这些缓存主机。如果没有 Graceful 开关,缓存在已停止缓存主机上的任何数据都将丢失。而且,如果它导致主要主机或辅助主机的仲裁丢失,则停止缓存主机的尝试将失败。有关主要主机的详细信息,请参阅主要主机和群集管理。有关辅助主机的详细信息,请参阅高可用性。在这些情况下,必须使用 Stop-CacheCluster 命令停止整个群集。

如果停止缓存主机是要停止缓存群集,则使用 Stop-CacheCluster 命令。例如,考虑来自 Get-CacheHost 命令的以下示例输出。

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
CacheServer1:22233        AppFabricCachingService DOWN           1 [1,1][1,1]
CacheServer2:22233        AppFabricCachingService UP             1 [1,1][1,1]

在该示例中,CacheServer1 已停止,但 CacheServer2 正在运行。停止 CacheServer2 将关闭群集。代替使用 Stop-CacheHost 命令停止 CacheServer2,请使用 Stop-CacheCluster 命令。

Stop-CacheCluster

必须使用管理员权限从提升权限的 Windows PowerShell 会话中运行该命令。

Unregister-CacheHost

Unregister-CacheHost 命令删除缓存群集中的缓存主机。

警告

在取消注册之前,必需调用 Stop-CacheHost 才能停止缓存主机。否则,可能会导致服务崩溃。

如果在 Remove-CacheHost 之前运行该命令,则您不需要为 ProviderConnectionString 参数指定值。如果本地运行该命令,则您还无需为 HostName 参数指定值。

Unregister-CacheHost -RemoveServicePermissions

以下示例通过指定提供程序、连接字符串以及主机名来注销缓存主机。它会从缓存群集中删除名为 CacheServer2 的缓存主机。该缓存群集使用 System.Data.SqlClient 提供程序,因此连接字符串为名为 SQLServer1 的数据库服务器以及名为 CacheClusterConfigurationDB 的配置数据库的 SQL Server 连接字符串。

Unregister-CacheHost -Provider System.Data.SqlClient -ConnectionString "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True"  + -HostName CacheServer2 -RemoveServicePermissions

请注意,对于 XML 提供程序,调用方必须对目标网络共享拥有完全控制权限。对于 System.Data.SqlClient 提供程序,调用方必须对目标数据库拥有读取、写入、删除 SQL 登录以及删除权限的权限。

与很多其他配置命令不同,Unregister-CacheHost 命令接受 HostName 参数,因此它可以远程运行。

Remove-CacheHost

Remove-CacheHost 命令删除服务器中的缓存主机配置。

Remove-CacheHost

请注意,该命令必须在配置的缓存主机上本地运行。还必须使用管理凭据从提升权限的 Windows PowerShell 会话中运行该命令。

Remove-CacheAdmin

如果在缓存主机上配置了缓存管理功能,则可以使用 Remove-CacheAdmin 命令删除该功能。

Remove-CacheAdmin

请注意,该命令必须在配置的缓存主机上本地运行。还必须使用管理凭据从提升权限的 Windows PowerShell 会话中运行该命令。

配置防火墙

您应该删除或禁用缓存服务 DistributedCacheService.exe 的防火墙中的任何例外。如果使用 Windows 防火墙,则您应该提前启用安装的防火墙组“Microsoft AppFabric 1.1 for Windows Server:AppFabric 缓存服务”。如果这样,您可以使用以下 PowerShell 命令禁用该策略组。如果您还启用了“远程服务管理”规则,则也可以禁用这些规则。但是,其他服务或应用程序可能启用了“远程服务管理”规则。在此方案中,您不应该禁用“远程服务管理”规则。

netsh advfirewall firewall set rule group="Windows Server AppFabric: AppFabric Caching Service" new enable=No
netsh advfirewall firewall set rule name="Remote Service Management (RPC)" profile=domain new enable=No
netsh advfirewall firewall set rule name="Remote Service Management (RPC-EPMAP)" profile=domain new enable=No
netsh advfirewall firewall set rule name="Remote Service Management (NP-In)" profile=domain new enable=No

删除缓存群集

如果您从群集中删除了最后一个缓存主机,则还可以选择删除缓存群集配置存储。要完成该操作,请使用 Remove-CacheCluster 命令。如果缓存群集使用 XML 提供程序,则该命令删除包含配置设置的 XML 文件。如果缓存群集使用 System.Data.SqlClient 提供程序,则该命令删除指定数据库中的表。请注意,不会删除文件共享和数据库。

Remove_CacheCluster -Provider System.Data.SqlClient -ConnectionString  "Data Source=SQLServer1;Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True"

另请参阅

概念

部署和配置 AppFabric 缓存功能(AppFabric 1.1 缓存)

  2012-03-05