SQLServerAlwaysOn多站点故障转移群集实例.docx
- 文档编号:25765333
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:14
- 大小:446.47KB
SQLServerAlwaysOn多站点故障转移群集实例.docx
《SQLServerAlwaysOn多站点故障转移群集实例.docx》由会员分享,可在线阅读,更多相关《SQLServerAlwaysOn多站点故障转移群集实例.docx(14页珍藏版)》请在冰豆网上搜索。
SQLServerAlwaysOn多站点故障转移群集实例
SQLServer2012AlwaysOn:
多站点故障转移群集实例
SQLServer技术文章
作者:
MikeWeiner、SanjayMishra、MinHe
供稿人:
LingweiLi、MikeAnderson(EMCCorporation)
技术审校:
ShaunTinline-Jones、SteveHoward、PremMehra、PaulBurpo、MikeRuthruff、JimmyMay、MattNeerincx、DanBenediktson、MichaelSteineke(EdgenetInc.)、
DavidP.Smith(ServiceUCorporation)
发布时间:
2011年12月
适用范围:
SQLServer2012
摘要:
SQLServer故障转移群集是SQLServer2012AlwaysOn整体实现的一部分。
它同时支持本地以及多站点故障转移配置,旨在为SQLServer提供高可用性和灾难恢复功能。
多站点故障转移群集技术在SQLServer2012中得到显著增强。
本文重点介绍多站点故障转移群集的体系结构、SQLServer2012中对该技术的增强以及有助于部署该技术的一些最佳做法。
版权信息
本文档按“原样”提供。
本文档中的信息和表达的观点(包括URL和其他Internet网站引用)如有更改,恕不另行通知。
您应承担使用本文档所带来的风险。
本文档中提及的某些示例只是为了便于说明,纯属虚构。
不应据此联想或妄加推断。
本文档不向您提供对任何Microsoft产品中的任何知识产权的任何法律权利。
您可以出于内部参考目的复制和使用本文档。
©2011Microsoft。
保留所有权利。
简介
本白皮书讨论了SQLServer2012中有关多站点故障转移群集技术的增强功能及其注意事项。
其内容编排如下所示:
∙从体系结构角度探讨多站点故障转移群集。
∙部署多站点故障转移群集涉及的组件。
∙介绍一下我们的实验室测试。
实验室测试是在SQLServer2012的预发行版本基础之上执行的,但是您仍然可以从中了解多站点配置中的故障转移方案和行为。
∙我们将讨论面临的挑战、解决之道和获得的一些经验,以帮助在生产环境中部署此技术。
此测试使用的是预发行软件。
但是,实验室中所测试的功能在此版本中已基本完成,在最终的生产版本中不会有大的更改。
SQLServer2012多站点故障转移群集体系结构
在评估MicrosoftSQLServer环境的高可用性选项时,您可能注意到SQLServer中提供了很多功能,它们可帮助应用程序实现您组织的可用性目标。
SQLServer故障转移群集技术在产品中作为高可用性策略已经有十多年的时间了。
通过SQLServer故障转移群集,SQLServer实例在任意时间点都能够在群集内的单个节点上运行。
如果SQLServer实例因为某些原因(如硬件故障)无法在某个节点上运行,它可以故障转移到另一个节点,这样就在SQLServer实例级别上提供了高可用性。
许多企业在多个位置运行数据中心,或可能在不同的站点备有辅助数据中心,以此提供冗余来实现灾难恢复机制。
这样做的一个主要原因是防止站点因为网络、电源、基础结构或其他站点灾难等原因而导致全面故障。
许多解决方案都使用此多站点模型实现了WindowsServer和SQLServer故障转移群集。
多站点故障转移群集的节点分散在多个不同的物理站点或数据中心,目的是在某个站点出现灾难时能够在其他数据中心上提供可用性。
有时多站点故障转移群集也称为地理分散的故障转移群集、拉伸群集或多子网群集。
目前,想要部署SQLServer2008R2多站点故障转移群集,除了SQLServer故障转移群集之外,
您还需要部署以下技术:
∙SAN复制和故障转移技术–提供跨站点的数据复制和故障转移功能
∙拉伸虚拟LAN(VLAN)技术–用于公开可以在站点间进行故障转移的单个IP地址(如果环境中存在多个子网)。
在WindowsServer2003中,所有群集资源之间的依赖关系均为AND依赖关系。
(注意:
在WindowsServer2003中,故障转移群集称为服务器群集。
)例如,如果“SQLServer”资源依赖于“IP地址”和“磁盘1”资源,仅当“IP地址”和“磁盘1”资源均联机时,Windows群集才能使“SQLServer”资源联机。
WindowsServer2008引入了指定资源间OR依赖关系的能力;有关详细信息,请参阅博客文章群集资源依赖关系表达式(Server”资源依赖于“磁盘1”AND(“IP地址1”OR“IP地址2”)。
此配置允许多子网群集中的每个站点注册为不同的IP地址,同时允许“SQLServer”资源只需要依赖于至少一个与之绑定的IP地址。
但是,SQLServer2008R2不支持WindowsServer2008中的IP地址OR依赖关系。
在SQLServer2008R2和以前的版本中,SQLServer在启动时将遍历故障转移群集资源组中的所有IP地址并尝试与它们全部绑定。
如果任何绑定失败,则SQLServer的启动也会失败。
因此,在SQLServer2008R2和以前的版本中,需要使用拉伸VLAN来启用SQLServer多站点故障转移群集。
但是很多客户因为安全、成本、复杂性或与公司标准不兼容等原因不愿意部署拉伸VLAN。
这是限制部署SQLServer多站点和多子网群集的重要因素。
在SQLServer2012中,多站点特别是多子网故障转移群集实现方面有了诸多的改进,其中就包括下面两项支持多子网群集的重要增强功能:
∙群集安装支持-现在AddNode(对于集成安装)和CompleteFailoverCluster(对于高级安装)都可以智能检测多子网环境并自动将IP地址资源依赖关系设置为OR。
∙SQLServer引擎支持-为了使SQLServer资源联机,SQLServer引擎启动逻辑将不再需要绑定到不处于联机状态的所有IP地址。
IP地址的状态和OR依赖关系配置显示在“挑战、解决之道和经验”一节的示意图中。
在SQLServer客户实验室,我们已使用SQLServer2012的预发行版本测试了这个新功能。
本文档的其余部分将提供进一步的背景信息,以使您了解如何在SQLServer2012中配置多站点SQLServer故障转移群集并介绍实验室设置、测试过程和相关经验。
构建多站点故障转移群集所需的组件
构建多站点SQLServer故障转移群集时,需要考虑很多组件。
我们将在此处讨论这些组件和其他一些注意事项。
服务器硬件和操作系统
硬件配置:
根据下面文章中所列的准则,群集硬件必须是受支持的配置(WindowsServer2008R2或更高版本):
WindowsServer2008或WindowsServer2008R2故障转移群集的Microsoft支持策略(
Microsoft软件:
WindowsServer和SQLServer。
WindowsServer和SQLServer的每个版本所支持的故障转移群集(实例)节点数各不相同,而且不同的版本所支持的故障转移群集功能也各不相同。
有关详细信息,请参阅WindowsServer2008R2中故障转移群集的新增功能(SQLServer2012中的一些更改,如果想要全面了解所有的更改,请参考SQLServer2012最终版本推出前后发布的SQLServer联机丛书以及其他文章。
注意:
WindowsServer故障转移群集(WSFC)实现有一个特殊的要求,那就是群集内的所有节点必须是同一域的一部分。
存储设备
对于存储设备,要考虑以下几个事项:
∙第一个注意事项是与存储设备的连接性:
∙通常来说,本地连接采用的是光纤通道交换的连接,其中单个节点具有LUN的独占所有权,并可以在任意指定时间实现连接。
在故障转移时,另一个节点可以获得对该存储设备的独占所有权。
∙在多站点群集方案中,这两个站点通常都有独立的存储设备。
当本地节点需要访问存储设备时,两个存储设备之间也存在一个连接,以便将这两个设备链接起来。
两个存储阵列之间的连接机制的类型和性能是影响解决方案的故障转移和I/O性能的重要因素。
∙其次是存储复制技术,它用于复制各站点存储设备之间的I/O。
此技术由存储供应商提供。
∙最后,存储供应商还提供一个软件组件来自动执行存储设备之间的故障转移并确定在故障转移时群集内哪些磁盘是可访问的和已装载的。
网络
网络组件在多站点(和多子网)环境中也很重要。
配置SQLServer实例时,确保每个子网有一个有效的IP地址,这一步很关键。
还需要考虑到SQLServer2012和以前版本之间的一些区别。
首先,尽管SQLServer2012中集成了多子网配置支持,然而在SQLServer配置为使用VLAN或单个网络时,配置仍旧有效并受支持。
其次,在SQLServer2008和SQLServer2008R2中,生存时间(TTL)和其他DNS复制配置是故障转移方案和客户端连接的一个重要考虑因素。
这些配置问题不再需要在SQLServer2012故障转移群集中解决,因为SQLServer2012版本中提供了一些网络配置和客户端驱动程序的增强功能。
有关详细信息,请参阅本文后面的“挑战、解决之道和经验”。
最后,还要考虑一些其他网络注意事项,例如Windows群集的检测信号网络,它们很重要,但是不在本文的讨论范围内。
WindowsServer故障转移群集(WSFC)仲裁模型
使用WindowsServer2008和WindowsServer2008R2时,支持四种仲裁配置类型。
这些仲裁模型在故障转移群集分步指南:
在故障转移群集中配置仲裁(cc770620(WS.10).aspx)中讨论。
在多站点故障转移群集中,仲裁模型还有一些特殊的注意事项。
有关这些注意事项的详细讨论,请参阅多站点故障转移群集的要求和建议(中的“节点数和相应的仲裁配置”部分。
以下是链接中所述信息的汇总:
对于节点数为偶数的多站点故障转移群集,建议采用“节点和文件共享多数”仲裁配置。
应该使用一些打破平局的机制(无论是磁盘、节点还是文件共享见证服务器)。
一般建议使用文件共享见证服务器,因为它通常更易于保持文件共享对两个站点均可访问。
对于节点数为奇数的情况,请考虑使用“节点多数”选项。
但是,在此配置中,如果具有更多节点的站点(通常是主站点)失败,则需要进行人工干预以强制群集在辅助站点启动,因为仲裁已丢失。
关于多站点故障转移群集改进功能的SQLServer客户实验室测试
为了了解某些新的多子网功能,我们在美国华盛顿州Redmond的SQLServer客户咨询实验室(SQLCAT)执行了一些测试。
在这些测试中,我们的主要目标是在两个站点间配置多子网故障转移群集并针对配置运行客户工作负荷。
实验室配置如下所示。
硬件和软件:
∙两个WindowsServer2008R2服务器位于“站点A”,两个WindowsServer2008R2服务器位于“站点B”
∙配置为一个多站点故障转移群集实例(FCI)的SQLServer2012预发行软件
存储设备:
配置两个EMCSymmetrixVMAX企业级存储阵列,每个站点一个。
这些阵列均配置有两个VMAX存储引擎和240个磁盘驱动器。
驱动器由企业级闪存驱动器(EFD)、光纤通道和SATA组成。
为了满足测试要求,将光纤通道驱动器的一部分提供给镜像配置中的WindowsServer2008R2故障转移群集。
将九个112GB的卷用于数据和日志存储。
将一个300GB的卷用于存储数据和日志备份。
每个阵列使用双8Gbps光纤通道连接与测试服务器相连。
存储阵列使用Symmetrix远程数据工具(SRDF,在附录中提供了相关链接)将数据从源阵列发送到目标阵列。
名为R1卷的源存储设备将数据发送到名为R2卷的目标存储设备。
当站点发生故障转移时,SRDF/CE(群集启用器)会检测到阵列复制状态(因为它与WSFC活动节点关联)。
SRDF/CE还处理所有复制状态更改。
这些阵列使用双1Gbps以太网连接进行通信。
使用以太网链路是为了方便测试团队通过网络延迟生成设备在测试过程中加入一定的延迟,从而模拟长距离通信情况。
图1:
多站点配置示意图(在站点和存储设备之间进行存储复制)
网络:
为了模拟多站点网络,我们创建了三个逻辑站点。
“站点A”承载两个故障转移群集节点和一个存储阵列。
“站点A”还针对它自己的子网进行了配置。
“站点B”位于另一个子网中,该子网承载群集中的其他存储阵列和节点。
第三个站点/子网承载ActiveDirectory结构、WindowsServer仲裁配置的文件共享以及单个DNS服务器。
尽管第三个站点可能不匹配所有实际实现的体系结构,但是从实验室得到的测试结果仍提供了一些可应用到您的组织环境的有用信息。
若要详细了解有关SQLServerFCI故障转移时客户端连接和网络注册的注意事项,请参阅本文后面的“挑战、解决之道和经验”。
仲裁模型:
我们在测试中使用了仲裁模型“节点和文件共享多数”。
我们将文件共享放在第三个子网中,它可供其他子网访问。
这只是多子网故障转移群集方案中仲裁模型的多个选项之一。
您应选取最适合您组织的总体实现的模式。
有关仲裁模型的详细信息,请参阅本文前面所述的“WindowsServer故障转移群集(WSFC)仲裁模型”。
工作负荷:
为了让测试方案更加真实,运行的客户工作负荷以写为主(占90%以上)、每秒大约执行2,000个批处理,以便向所用的故障转移群集环境施加一个I/O负载。
这些I/O规模很小,用于模拟高吞吐量的OLTP应用程序。
我们通过各种不同的机制测试了众多的故障转移方案,包括在运行SQLServerFCI的服务器上手动故障转移(“移动组”)和断电。
无论服务器上是否正在运行工作负荷,故障转移行为都符合我们的预期。
我们在测试中发现了一些重要经验和注意事项,将在以下章节中与大家分享。
挑战、解决之道和经验
从我们进行的测试以及有关SQLServer2012预发行版本多站点故障转移群集的其他经验中,我们总结了一些对客户很重要的注意事项,有助于您使用SQLServer2012开始构建和部署自己的故障转移群集解决方案。
存储验证检查要求
在使用SAN复制的多站点群集环境中,要求一个站点上的存储卷只能对同一站点上的节点可见,另一个站点上的存储卷也只能对该站点上的节点可见。
因此,所有存储设备不能同时对所有节点都可见,这导致一些存储验证检查可能无法通过并/或发出警告。
如果您跳过存储验证测试,将显示与缺乏支持有关的消息,如:
“否。
不需要Microsoft对该群集的支持,因此不希望运行验证测试。
单击‘下一步’时,继续创建群集。
”
在此环境中,应该可以跳过存储验证测试,因为多站点群集解决方案不要求通过存储验证测试就可成为完全受支持的解决方案。
有关详细信息,请参阅知识库文章WindowsServer2008或WindowsServer2008R2故障转移群集的Microsoft支持策略(中的“地理位置分散的群集”。
注意:
只能跳过存储验证检查。
如果跳过所有验证,或者验证报告中出现警告或失败,SQLServer安装程序会检测到此情况并阻止安装。
在故障转移群集管理器中使用OR依赖关系配置IP地址
当您配置多子网故障转移群集时,只能有一个IP地址必须处于联机状态。
其他IP地址可以保持脱机状态,直到故障转移到该子网。
由于这看起来可能不正确或配置出错,我们提供了一个示例来说明故障转移群集管理器如何显示此配置。
请注意,根据当前承载FCI的子网,一个IP地址的“状态”列设置为“脱机”,另一个IP地址的“状态”列则设置为“联机”。
图2:
多子网故障转移群集管理器中IP地址OR依赖关系设置示例
合适的仲裁模型
多站点故障转移群集通常分布在多个地理区域,并且每个站点都包含存储组件。
因此,在这种环境中,仲裁模型有一些特殊的注意事项。
有关这些注意事项的详细信息,请参阅本文前面所述的“WindowsServer故障转移群集(WSFC)仲裁模型”。
但是,当您对多站点故障转移群集运行WindowsServer群集验证时,将显示一条消息,建议采用“节点和磁盘多数”选项作为仲裁模型,如图3中所示。
图3:
群集验证工具关于仲裁配置的输出显示
群集验证工具中的向导不检测特定群集是否为多站点群集。
可以放心忽略此建议并使用更合适的仲裁模型,如“节点和文件共享多数”。
多子网SQLServerFCI故障转移后的网络注册和客户端连接
在SQLServer2012中,SQLServer故障转移群集网络名称针对“网络名称”资源(虚拟网络名称)启用了RegisterAllProvidersIP属性。
对于多子网FCI,此属性表示要将SQLServer配置使用的所有IP地址都在DNS中注册为SQLServer虚拟网络名称。
因为所有IP都在DNS中注册,跨数据中心的故障转移不需要对DNS中注册的IP地址进行任何更改。
因为不再需要更新DNS,所以在故障转移后,客户端连接可以更快解析为SQLServer故障转移群集(虚拟网络名称)。
较新的SQLServer客户端驱动程序(包括SQLServerNativeClient)增加了对关键字MultiSubnetFailover的支持。
如果客户端可以启用MultiSubnetFailover连接选项,则SQLServerFCI可以使用的所有IP地址将在连接时进行计算并由客户端进行解析。
这个增强功能还有助于在故障转移后改进客户端连接性。
如果客户端所使用的驱动程序不支持MultiSubnetFailover关键字(或未启用它),则需要考虑以下几个事项:
∙客户端驱动程序以串行方式计算IP地址。
此IP计算可能延长客户端连接所需的时间。
建议增加ConnectionTimeout值,对于SQLServer网络名称可能解析的每个额外IP地址,此时间都需要增加21秒。
因此,如果在新站点上又添加了一个IP地址,可以将新的ConnectionTimeout值配置为:
[以前的ConnectionTimeout值]+21秒。
公式为:
(X+(N-1)*21),其中X=[当前ConnectionTimeout值],N=具有IP地址的站点数。
∙在我们的测试中,使用SQLServerBrowser服务将实例名称解析为端口号有时会失败。
这会导致客户端无法解析为SQLServer命名实例。
因此,对于不支持MultiSubnetFailover关键字且要连接到SQLServer命名实例的驱动程序,我们建议您对SQLServer实例使用静态端口配置。
在这种情况下,可以通过直接在连接参数中指定SQLServer和端口号来建立客户端连接。
结论
SQLServer2012AlwaysOn为客户提供了实现高可用性和灾难恢复的多种设计选择。
多站点故障转移群集可以提供实例级的高可用性和灾难恢复,是SQLServerAlwaysOn体系结构的一个不错的选择。
我们对多站点故障转移群集技术做了重大改进,使它成为在很多环境中实现高可用性和灾难恢复功能的切实可行的选项。
本文档旨在帮助用户熟悉该技术,帮助他们成功实施部署,同时了解我们对SQLServer2012多站点群集进行了哪些改进。
参考信息及本文中引用的文章:
∙Server2012高可用性
∙ServerAlwaysOn博客
∙群集资源依赖关系表达式博客:
∙WindowsServer2008或WindowsServer2008R2故障转移群集的Microsoft支持策略:
∙WindowsServer2008R2中故障转移群集的新增功能:
∙故障转移群集分步指南:
在故障转移群集中配置仲裁:
∙多站点故障转移群集的要求和建议:
∙WindowsServer2008或WindowsServer2008R2故障转移群集的Microsoft支持策略:
∙:
SQLServer客户咨询团队站点
∙
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServerAlwaysOn 站点 故障 转移 群集 实例