一 WSFC 简介
1.1 WSFC 概述
“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性。SQL Server 2012 利用 WSFC 服务和功能支持 AlwaysOn 可用性组和 SQL Server 故障转移群集实例。
Windows Server 故障转移群集提供了各种基础结构功能来支持所承载的服务器应用程序(如 Microsoft SQL Server 和 Microsoft Exchange)的高可用性和灾难恢复方案。 如果一个群集节点或服务失败,则该节点上承载的服务可通过“故障转移”的过程自动或手动转移到另一个可用节点。
WSFC 群集中的节点协同工作,共同提供如下所示功能:
群集中的每个节点上维护着 WSFC 服务和承载的应用程序元数据。除了承载的应用程序设置之外,此元数据还包括 WSFC 配置和状态。对一个节点的元数据或状态进行的更改会自动传播到群集中的其他节点。
群集中的各节点可能提供物理资源,如直接连接存储、网络接口和对共享磁盘存储的访问。承载的应用程序将其本身注册为群集资源,并可配置启动和运行状况对于其他资源的依赖关系。
节点间和主节点运行状况检测是通过结合使用信号样式的网络通信和资源监视来实现的。群集的总体运行状况是由群集中节点仲裁的投票决定。
每个资源都配置为由主节点承载,并且每个资源均可自动或手动转移到一个或多个辅助节点。基于运行状况的故障转移策略控制节点之间资源所有权的自动转移。在发生故障转移时通知节点和承载的应用程序,以便其做出适当的响应。
1.2 WSFC 术语和定义
“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性。
- 故障转移群集实例 (Failover cluster instance)
一个 Windows 服务实例,用于管理 IP 地址资源、网络名称资源和运行一个或多个应用程序或服务所需的其他资源。客户端可以使用网络名称访问组中的资源,类似于使用计算机名称访问物理服务器上的服务。但是,因为故障转移群集实例是一个组,所以该实例可以故障转移到另一个节点,而不会影响基础名称或地址。
作为服务器群集的活动或非活动成员的 Microsoft Windows Server 系统。
节点可以拥有的物理实体或逻辑实体,可联机和脱机、在节点间移动和作为群集对象进行管理。在任何时间点,群集资源只能为单个节点所拥有。
作为单个群集对象管理的群集资源集合。通常,资源组包含运行特定应用程序或服务所需的所有群集资源。故障转移和故障回复始终作用于资源组。
- 资源依赖项 (Resource dependency)
一个资源所依赖的另一个资源。如果资源 A 依赖于资源 B,则 B 是 A 的依赖项。
- 网络名称资源 (Network name resource)
作为群集资源进行管理的逻辑服务器名称。网络名称资源必须与一个 IP 地址资源结合使用。
资源组优先运行的节点。每个资源组都按优先顺序与首选的所有者列表关联。在自动故障转移过程中,资源组将移动到首选所有者列表中的下一个首选节点。
可在其上运行资源的辅助节点。每个资源组都与一系列可能的所有者关联。资源组仅可故障转移到作为可能的所有者列出的节点。
故障转移群集中的仲裁配置,用于确定群集可以承受的节点故障数。
即使仅有仲裁所需的少数元素进行通信,该过程也会启动群集。
二 SQL Server AlwaysOn 和 WSFC
2.1 结合概述
SQL Server 2012 AlwaysOn 是一个充分利用 WSFC 的新的高可用性和灾难恢复解决方案。AlwaysOn 提供一个集成、灵活的解决方案,用于提高应用程序可用性,并提供更好的硬件投资回报,还简化高可用性部署和管理。
AlwaysOn 可用性组和 AlwaysOn 故障转移群集实例将 WSFC 用作一种平台技术,将组件注册为 WSFC 群集资源。相关的资源将合并为一个“资源组”,这些资源可能依赖于其他 WSFC 群集资源。这样,WSFC 群集服务就可以感测并标明是否需要重新启动 SQL Server 实例,或自动将其故障转移到 WSFC 群集中的不同服务器节点上。
2.2 实例级高可用性以及 AlwaysOn 故障转移群集实例
一个 AlwaysOn“故障转移群集实例”(FCI) 是一个安装在 WSFC 群集中的节点上的 SQL Server 实例。这种类型的实例的资源依赖于共享磁盘存储(通过 Fibre 通道或 iSCSI SAN)和虚拟网络名称。虚拟网络名称的资源依赖于一个或多个虚拟 IP 地址(每个地址位于不同子网中)。SQL Server 服务和 SQL Server 代理服务均注册为资源,且都依赖于虚拟网络名称资源。
发生故障转移时,WSFC 服务将实例的资源所有权转移到指定的故障转移节点。然后,SQL Server 实例在故障转移节点上重新启动,数据库恢复如常。在任何给定时刻,群集中只有一个节点可以承载 FCI 和基础资源。
注意:AlwaysOn 故障转移群集实例要求使用对称共享磁盘存储,如存储区域网络 (SAN) 或 SMB 文件共享。 共享磁盘存储卷必须可用于 WSFC 群集中所有可能的故障转移节点。
2.3 数据库级高可用性与 AlwaysOn 可用性组
“可用性组”是一组共同实现故障转移的用户数据库。一个可用性组包含一个主“可用性副本”和一至四个辅助副本,这些副本通过基于 SQL Server 日志的数据移动来实现数据保护以进行维护,无需共享存储。每个副本均由 WSFC 群集的不同节点上的 SQL Server 实例承载。可用性组和相应的虚拟网络名称注册为 WSFC 群集中的资源。
主副本节点上的“可用性组侦听器”响应要求连接到虚拟网络名称的传入客户端请求,侦听器基于连接字符串中的属性将每个请求重定向到相应的 SQL Server 实例。
当发生故障转移时,不是将共享物理资源的所有权转移到另一个节点,而是利用 WSFC 重新配置另一个 SQL Server 实例上的辅助副本,使其成为可用性组的主副本。然后,将可用性组的虚拟网络名称资源转移到该实例。
在任何给定时刻,只有单个 SQL Server 实例可承载可用性组数据库的主副本,而所有关联的辅助副本都必须分别驻留在单独的实例上,并且每个实例必须驻留在单独的物理节点上。
注意:AlwaysOn 可用性组不要求部署故障转移群集实例或使用异步共享存储(SAN 或 SMB)。
故障转移群集实例 (FCI) 可与可用性组结合使用,以提高可用性副本的可用性。但是,为了防止 WSFC 群集中出现潜在的争用情况,不支持可用性组自动故障转移到驻留在 FCI 上的副本,也不支持从驻留在 FCI 上的副本自动故障转移到可用性组。
三 WSFC 运行状况监视和故障转移
3.1 概述
AlwaysOn 解决方案的高可用性是通过积极主动地监视物理和逻辑 WSFC 群集资源的运行状况,以及自动故障转移到冗余硬件和重新配置冗余硬件来实现的。系统管理员还可以对可用性组或 SQL Server 实例启动从一个节点到另一个节点的“手动故障转移”。
3.2 节点、故障转移群集实例和可用性组的故障转移策略
“故障转移策略”是在 WSFC 群集节点、SQL Server 故障群集实例 (FCI) 以及可用性组级别配置的。这些策略基于非正常运行的群集资源状态和节点响应的严重性、持续时间和频率,它们可以触发服务重新启动或将群集资源从一个节点“自动故障转移”到另一个节点,或者可以触发将可用性组主副本从一个 SQL Server 实例移到另一个此类实例。
可用性组副本的故障转移不影响基础 SQL Server 实例。FCI 的故障转移将随实例一起移动所承载的可用性组副本。
3.3 WSFC 资源运行状况检测
WSFC 群集节点中的每个资源都可以定期或按需报告其状态和运行状况。很多情况可以指示资源故障;例如,电源故障、磁盘或内存错误、网络通信错误或服务不响应。
WSFC 群集资源(如网络、存储或服务)可能彼此依赖。资源的累计运行状况由持续汇总其运行状况和其每个资源依赖项的运行状况来确定。
3.4 WSFC 节点间运行状况检测和仲裁投票
WSFC 群集中的每个节点都参与周期性信号通信,以便与其他节点共享该节点的运行状况。未响应的节点被认为是处于故障状态。
“仲裁”节点集是 WSFC 群集中的大多数投票节点和见证服务器。WSFC 群集的总体运行状况和状态是由定期“仲裁投票”确定的。仲裁的存在意味着群集运行状况正常,且能提供节点级别的容错能力。
“仲裁模式”在 WSFC 群集级别配置,用于指示用于仲裁投票的方法以及执行自动故障转移或使群集脱机的时间。
提示:WSFC 群集中最好始终有奇数数目的仲裁投票。为进行仲裁投票,不必在群集的所有节点上安装 SQL Server。其他服务器可以充当仲裁成员,或者可以将 WSFC 仲裁模式配置为将远程文件共享用作补救措施。
3.5 通过强制仲裁进行灾难恢复
根据操作实践和 WSFC 群集配置,您可以引发自动故障转移和手动故障转移,同时仍保持可靠、容错的 SQL Server AlwaysOn 解决方案。但是,如果 WSFC 群集中合格投票节点的仲裁彼此之间无法通信,或者 WSFC 群集无法执行运行状况验证,则 WSFC 群集可能会脱机。
如果 WSFC 群集由于计划外灾难或由于持续的硬件或通信故障而导致脱机,则需要管理员手动干预才能“强制仲裁”,并在非容错配置中将仍有效的群集节点变为联机状态。
之后,还必须执行一系列步骤来重新配置 WSFC 群集,恢复受影响的数据库副本,并重新建立一个新仲裁。
四 SQL Server AlwaysOn 组件与 WSFC 的关系
SQL Server AlwaysOn 和 WSFC 功能和组件之间存在多层关系。
- AlwaysOn 可用性组承载于 SQL Server 实例上。
指定将连接到主数据库或辅助数据库的逻辑可用性组侦听器名称的客户端请求将重定向至基础 SQL Server 实例或 SQL Server 故障转移群集实例 (FCI) 的相应实例网络名称。
- “SQL Server 实例”当前承载于单个节点上。
如果存在,则独立的 SQL Server 实例始终驻留在具有静态实例网络名称的单个“节点”上。如果存在,则 SQL Server FCI 在两个或多个具有单个虚拟“实例网络名称”的可能的故障转移节点之一上处于活动状态。
每个节点上存储了所有节点的WSFC 配置元数据和状态。每个服务器都为用户或系统数据库提供非对称存储或共享存储 (SAN) 卷。在一个或多个 IP 子网上,每个服务器都至少具有一个物理网络接口。
- WSFC 服务监视一组服务器的运行状况和管理它们的配置。
“Windows Server 故障转移群集 (WSFC)”服务将对“WSFC 配置”元数据和状态的更改传播到群集中的所有节点。部分元数据和状态可能存储在 WSFC 仲裁见证服务器远程文件共享上。两个或更多活动的节点或见证服务器构成一个仲裁,以便对 WSFC 群集的运行状况进行投票。
- AlwaysOn 可用性组注册表项是 WSFC 群集的子项。
如果您删除后重新创建了 WSFC 群集,则必须在原始 WSFC 群集上启用了 AlwaysOn 可用性组的每个服务器实例上都禁用然后重新启用 AlwaysOn 可用性组功能。
SQL Server AlwaysOn 组件上下文关系图
参考官方:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/hh270278(v%3dsql.110)
- Windows故障转移群集(WSFC)的备份和恢复
使用wbadmin进行备份和恢复将C盘数据备份到E盘查看备份的版本以及包含的items模拟群集角色被误删除进行恢复操作检查恢复的效果 WSFC群集的备份和恢复功能是使用Windows Server B ...
- Windows 2008 故障转移群集介绍
转载:http://dufei.blog.51cto.com/382644/902026 今天有客户问起Windows 群集的相关内容,毕竟Windows Server2008所支持的群集技术和Win ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Windows故障转移群集
WSFC 群集 (WSFC cluster)“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性. 故障转移群集实例 (Fail ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域、DNS服务器和Windows故障转移群集(准备工作)
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...
- Windows 2016 无域故障转移群集部署方法 超详细图文教程 (二)
上一章我们配置了一台设备,接着根据那个配置,配置其它设备.这里我配置了三台设备: 创建故障转移群集,并添加设备. 之前的操作都是每台服务器都要做的,而这个操作,只需要任选一台去做即可,我这里选d1 1 ...
- 01-WIN2012R2+SQL2016故障转移群集的搭建
一.前期准备 1.1.准备4台机器 机器名 IP 功能 jf-yukong 192.168.10.200 做域控服务器 Jf-storage 192.168.10.201 做ISCSI存储服务器 J ...
- 搭建Windows故障转移群集
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/windows 概述 本章内容主要讲述搭建windows故障转移群集 环境: 域服务器:windows server 2008 R ...
- SQL Server--疑难杂症之坑爹的Windows故障转移群集(转)
估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也SQL SERVER,败也SQL SERVER. --======================================= ...
- SQL Server--疑难杂症之坑爹的Windows故障转移群集
--============================================================== 估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也S ...
随机推荐
- HDU1529-Casher Emploryment(最最...最经典的差分约束 差分约束-最长路+将环变线)
A supermarket in Tehran is open 24 hours a day every day and needs a number of cashiers to fit its n ...
- 【ZooKeeper系列】1.ZooKeeper单机版、伪集群和集群环境搭建
ZooKeeper安装模式主要有3种: 单机版(Standalone模式)模式:仅有一个ZooKeeper服务 伪集群模式:单机多个ZooKeeper服务 集群模式:多机多ZooKeeper服务 1 ...
- redis第一讲【redis的描述,linux和docker下的安装使用】
Redis(REmote DIctionary Server):是什么 redis(远程字典服务器),是完全开源免费的,高性能的k/v分布式内存数据,热门的Nosql数据库 Redis可以干什么: 内 ...
- Django 07
目录 ORM查询优化 only与defer(单表) select_related与prefetch_related(跨表) choices参数 MTV与MVC模型 Ajax简介 前后端传输数据编码格式 ...
- springboot使用api操作HBase之shell
HBase的基本读写流程写入流程读取流程HBase的模块与协作HBase启动RegionServer失效HMaster失效HBase常用的Shell命令进入shellhelp命令查询服务器状态查看所有 ...
- docker-数据管理的备份与恢复
一.数据备份 备份示例如下: 要求:备份nfs数据卷里的data目录里的test-nfs.txt文件到宿主机/data/backup目录下 语法:docker run --volumes -f ...
- 【同步工具类】CountDownLatch闭锁任务同步
[同步工具类]CountDownLatch闭锁任务同步 转载:https://www.cnblogs.com/yangchongxing/p/9214284.html 打过dota的同学都知道,多人一 ...
- 2019百度阿里Java面试题(基础+框架+数据库+分布式+JVM+多线程)
前言 很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不够了解,因此成功率不高.通常情况下校招生面试的成功率低于1%,而社招的面试成功率也低于5%,所以对于候选人一定要知道设立面试的初 ...
- Spring Boot 如何自定义返回错误码错误信息
说明 在实际的开发过程中,很多时候要定义符合自己业务的错误码和错误信息,而不是统一的而不是统一的下面这种格式返回到调用端 INTERNAL_SERVER_ERROR(500, "Intern ...
- 【CV现状-1】磨染的初心——计算机视觉的现状:缘起
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...