主要主机和群集管理(Windows Server AppFabric 缓存)
Windows Server AppFabric 缓存群集是相互协作以为应用程序数据提供单一统一逻辑缓存的动态组服务器。为此,需要一些开销才能安排缓存主机之间的群集操作。群集管理角色负责管理缓存主机,并最终管理缓存群集。
根据您部署分布式缓存系统的方式,对于由谁来执行群集管理角色有两种选项。如果在 SQL Server 数据库中存储群集配置设置,则该 SQL Server 实例还可以用于执行群集管理角色。
如果您选择在共享网络文件夹中存储您的群集配置设置,则群集管理角色始终由称为主要主机的特殊缓存主机执行。主要主机与未指定为主要主机的其他缓存主机执行相同的任务,但它们还额外负责与其他主要主机协同工作来执行群集管理角色。
下表显示了您在安装时的选择如何与您用于群集管理的选项相关联。有关选择适合您的配置选项的详细信息,请参阅群集配置存储选项(Windows Server AppFabric 缓存)。
群集配置存储类型 | 群集配置存储位置 | 群集管理 |
---|---|---|
XML 文件 |
共享网络文件夹 |
主要主机 |
SQL Server 数据库 |
SQL Server |
SQL Server(默认)或主要主机 |
自定义提供程序 |
自定义存储 |
自定义存储 |
群集管理角色职责
以下是两个主要的配置设置,用于确定在群集管理方面,群集的工作方式:
leadHostManagement
:此群集级别设置确定将由谁来执行群集管理角色。如果为 true,则主要主机执行群集管理角色。如果您选择在共享网络文件夹中存储群集配置设置,则此设置唯一有效的值是 true。False 表明 SQL Server 或自定义提供程序会执行群集管理角色。当使用 SQL Server 或自定义提供程序存储群集配置设置时,您可以将此设置设为 true,让主要主机执行群集管理角色。leadHost
:此缓存主机级别设置确定当主要主机执行群集管理角色时,哪些缓存主机将作为主要主机。即使 SQL Server 将执行群集管理角色,安装程序也会指定主要主机,以防您稍后更改leadHostManagement
设置。
有关详细信息,请参阅设置群集管理角色和主要主机指定(Windows Server AppFabric 缓存)。
对于这两个属性,有四种可能的情况用于确定缓存主机如何运行。下表对这些情况进行了介绍。
leadHostManagement 群集级别设置 |
leadHost 缓存主机设置 |
设置组合说明 | 有效的缓存主机责任 |
---|---|---|---|
|
|
SQL Server 或自定义提供程序执行群集管理角色。这不是主要主机。 |
仅正常的缓存主机操作。 |
|
|
SQL Server 执行群集管理角色。如果您将 |
仅正常的缓存主机操作。 |
|
|
主要主机执行群集管理角色,但它不是主要主机。 |
仅正常的缓存主机操作。 |
|
|
主要主机执行群集管理角色。这是主要主机。 |
正常的缓存主机操作,并与其他主要主机一起管理群集。 |
当主要主机执行群集管理角色时
如果 leadHostManagement
和 leadHost
设置都为 true
,则缓存主机会在群集中提升至责任更大的级别,并被指定为主要主机。主要主机除了执行普通缓存主机缓存数据相关的操作之外,它还要与其他主要主机一起管理群集操作。
当主要主机出现故障时
为了缓存群集保持可用,大多数主要主机必须保持可用。这在小型群集中的风险远高于大型群集,因为只要几个服务器故障即可导致群集本身关闭。
备注
在主要主机执行群集管理角色时,如果大多数主要主机出现故障,则整个缓存群集将会关闭。
例如,设想下图中显示的六服务器缓存群集。在此示例中,主要主机执行群集管理角色,并将两个缓存主机指定为主要主机。
如果群集中的任一普通缓存主机出现故障,此群集可能会一直运行。非主要主机上的数据会丢失(假定未启用高可用性),但群集的其余部分会继续提供服务并存储数据。实际上,即使未指定为主要主机的四个缓存主机全部失去,群集仍可以保持运行。
只要其中一个主要主机出现故障,整个缓存群集就会关闭,因为不再是大多数主要主机在运行。若要减少此问题,您可以选择指定其他主要主机。
备注
如果缓存主机在执行群集管理角色,则 Stop-CacheHost
命令不会停止该缓存主机 Windows 服务。如果停止该服务,会导致整个群集关闭。
指定其他主要主机
AppFabric 配置向导使用 Cluster Size
下拉列表帮助确定应该位于群集中的主要主机的合适数量。如果您希望在安装之后指定其他主要主机,则也可以执行此操作。但是,应考虑到分配过多主要主机可能也存在问题,这一点很重要:
为了让缓存群集保持在运行状态,必须始终有大多数的主要主机可用。指定为主要主机的主机越多,群集能够承受并保持可运行的服务器故障越少。
在小群集中,一个或两个主要主机故障可能会导致群集故障,我们建议您指定更多的主要主机。
在大群集中,五到七个主要主机应该足以确保在 50 个缓存服务器范围内的群集响应速度更快。
有关主要主机指定的详细信息,请参阅设置群集管理角色和主要主机指定(Windows Server AppFabric 缓存)。
当 SQL Server 执行群集管理角色时
如果群集的 leadHostManagement
设置为 false
,则无论 leadHost
设置如何,每个缓存主机仅承担与缓存数据相关的非主要主机的普通责任。在这种情况下,用于存储群集配置设置的 SQL Server 实例还用于执行群集管理角色。
如果发生服务器故障时
在 SQL Server 执行群集管理角色时,为了使群集保持可用,一个或多个缓存主机必须能够访问 SQL Server 数据库。
例如,设想下图中显示的六服务器缓存群集。
在此示例中,SQL Server 执行群集管理角色,所有六个缓存主机可以将其资源专用于缓存客户端的数据访问。
如果群集中的任何一个缓存主机发生故障,则这些服务器上的数据都会丢失(假定未启用高可用性),但群集会继续运行。其他缓存主机上的数据会继续提供给缓存客户端。事实上,在这种情况下,如果群集丢失了六个缓存主机中的五个,它仍可以继续工作。
如果 SQL Server 出现故障,则整个群集会在几分钟之内关闭。若要减小此问题,强烈建议您使用 Microsoft Windows Server 2008 故障转移群集 (https://go.microsoft.com/fwlink/?LinkId=130692)(可能为英文网页)承载缓存群集配置存储位置的群集数据库资源和群集管理角色。
另请参阅
概念
Windows Server AppFabric 缓存物理体系结构示意图
Windows Server AppFabric 缓存逻辑体系结构示意图
群集配置设置(Windows Server AppFabric 缓存)
设置群集管理角色和主要主机指定(Windows Server AppFabric 缓存)
2011-12-05