在Windows Server 2012 R2 DataCenter 环境中搭建集群之前,首先要对Windows服务器故障转移集群(Windows Server Failover Cluster,简称WSFC)有基本的了解。WSFC必须部署在域管理环境中,由多台服务器组成,每台服务器称作一个“结点”(Node),每个结点上都运行了Windows服务器故障转移集群服务,整个集群系统允许部分结点掉线、故障或损坏而不影响整个系统的正常运作。集群自动检测结点的健康状态,一旦活跃结点发生异常,变为不可用,则另一台结点服务器自动接管发生故障的服务器,升级为活跃服务器,并继续处理任务,一台服务器接管发生故障的服务器的过程称为"故障转移"。
一,Windows故障转移集群的基本组成要素
结点和活跃结点(Active Node):组成集群的每台Server叫做一个结点,在同一时刻,只能有一个结点处理用户的请求,提供服务,该结点叫做活跃结点;活跃结点是由集群决定的,对用户完全透明;
虚拟服务器(Virtual Server):集群中的所有结点组成一个虚拟服务器,也就是说,从集群的外部看,只能看到一个服务器,而看不到背后的一堆结点服务器,虚拟服务器拥有自己的机器名和IP地址,也称作“虚拟网络名”和“虚拟IP”,用户通过虚拟网络名和虚拟IP地址来访问集群,实际上,虚拟网络名和虚拟IP都在DNS服务器上登记在册,和物理服务器的网络名和IP地址没有任何区别;
共享磁盘(Shared Array):所有需要在结点之间共享的资源,例如,SQL Server数据文件,错误日志等,都被存储在Shared Array上,不需要共享的文件则被存储在每个结点的本地磁盘(Local Disk)上;
私有网络和公共网络:组成集群的多个结点之间,通过私有网络(Private Network)和公共网络(Public Network)连接起来,结点之间通过私有网络发送“心跳信号”来感知彼此是否工作正常;公共网络用来被集群外部的客户端使用的网络,外部客户端通过公共网络访问集群节点;
二,Windows 集群提供的功能
Windows集群无法提供负载均衡的能力,在任意时刻,集群中只有一个结点能够处理用户的请求,而其他结点都处于空闲状态,处理用户请求的结点叫做活跃(Active Node),活跃结点是由集群决定的,对用户完全透明。
AlwaysOn高可用技术利用Windows服务器故障转移集群的健康检测和自动故障转移特性,因此,AlwaysOn必须建立在WSFC之上:
健康检测:结点之间,通过私有网络互相发送心跳信号来感知彼此是否工作正常,这类信号称作“心跳线”,一旦某台服务器因为异常而无法回应信号,那么剩余的结点就认为该结点“Dead”,把该结点从当前集群排除;
自动故障转移:以“心跳信号”监视各个结点服务器的健康状况,如果Primary Node不能响应心跳信号,那么另一台服务器自动升级为Primary Node,继续处理任务,故障转移的过程不会对应用程序造成影响,用户甚至察觉不到虚拟服务器内部的故障转移;
WSFC提供的功能很多,但是,部署AlwaysOn只需要了解这两个机制,对于WSFC的其他应用,可以暂时不用了解,下面的第三,四,五章节,分步骤搭建WSFC。
三,安装Windows Server Failover Clustering(WSFC)组件
1,打开服务器管理器(Server Manager),选择“Add roles and features”
2,在添加功能向导中,勾选“Failover Clustering”,点击“Next”,开始安装
3,在“Confirmation” Tab中,进行确认,点击“Instanll”按钮,进行安装操作
四,配置故障转移集群
1,打开故障转移机器管理器
安装Failover Clustering 功能完成之后,打开Server Manager,在菜单Tools中选择“FailOver Cluster Manager”,打开故障转移机器管理器
2,在故障转移管理器中,创建集群
在Management面板中,点击Create Cluster,开始创建集群
3,添加集群的结点服务器
输入集群的结点服务器名称,节点服务器必须位于相同网段中,能够相互访问;
4,验证警告
如果需要对集群的基本环境,包括硬件,进行WSFC需求验证,可以选择“Yes”,本例选择“No”,不验证
5,定义“用于管理群集的访问点”
为集群命名,Cluster Name实际上是虚拟服务器的网络名;集群的IP地址由系统自动配置,该IP地址实际上是虚拟服务器的IP地址;
6,确认配置信息,点击“Next”,创建新的集群
五,配置集群仲裁设置
当集群中的结点发生故障时,会由其他结点接手继续提供服务,不过,当结点之间通信出现问题,或太多节点发生故障时,集群就会停止服务,可是集群可以容忍多少个结点发生故障呢?这要由仲裁配置(Quorum Configuration)决定,只要集群中仍然正常运行的结点数量达到仲裁规定的数量,集群就会继续提供服务,否则就停止服务。在停止服务期间,正常结点监听故障结点是否恢复正常,一旦正常结点的数量恢复到仲裁规定的数量,集群恢复正常,继续提供服务。
1,返回到故障转移集群管理器,在“Failover Cluster Manage”下拉列表中展示创建成功的集群
2, 右击群集节点,在上下文菜单中点击“More Actions”,在扩展菜单中选择“Configure Cluster Quorum Settings”为该集群配置仲裁
3,打开配置集群仲裁的向导
4,选择仲裁配置选项,使用默认的仲裁配置,由集群决定仲裁管理选项
最为最佳实践,推荐配置一个Quorum Witness,帮助实现集群的最高可用性,对仲裁配置不是很了解的话,使用默认选项,由集群决定仲裁配置。
5,确认仲裁配置选项,点击“Next”,开始配置集群的仲裁设置
至此,Windows 服务器故障转移集群搭建完成。
参考文档:
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)