部署AlwaysOn第一步:搭建Windows服务器故障转移集群

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

在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),活跃结点是由集群决定的,对用户完全透明。

1,健康检测和自动故障转移

AlwaysOn高可用技术利用Windows服务器故障转移集群的健康检测和自动故障转移特性,因此,AlwaysOn必须建立在WSFC之上:

健康检测:结点之间,通过私有网络互相发送心跳信号来感知彼此是否工作正常,这类信号称作“心跳线”,一旦某台服务器因为异常而无法回应信号,那么剩余的结点就认为该结点“Dead”,把该结点从当前集群排除;集群的整体健康状况,是由集群中结点的仲裁投票决定的。

自动故障转移:以“心跳信号”监视各个结点服务器的健康状况,如果主结点(Primary Node)不能响应心跳信号,那么另一台服务器自动升级为Primary Node,继续处理任务,故障转移的过程不会对应用程序造成影响,用户甚至察觉不到虚拟服务器内部的故障转移;

WSFC提供的功能很多,但是,部署AlwaysOn只需要了解这两个机制,对于WSFC的其他应用,可以暂时不用了解,下面的第三,四,五章节,分步骤搭建WSFC。

2,集群的仲裁配置

仲裁投票(Quorum Voting):Quorum是仲裁,法定数量的意思,在仲裁模式下,仲裁配置决定集群在正常提供服务时,能够容忍多少个结点发生故障。在集群中的故障结点达到仲裁(Quorum)规定的数量之前,集群能够继续提供服务。

WSFC在集群的结点之间进行健康检测和仲裁投票,每一个结点通过周期性地发送心跳信号,检测其他其他结点的健康状态,并和其他结点共享健康数据,无法响应心跳信号的结点被认为处于异常状态,集群的所有健康结点都会很快知道该结点出现故障。

仲裁结点集合是投票结点和见证结点(Witness)结合,仲裁结果由多数(Majority)结点决定,集群整体的健康状态是由周期性的仲裁投票的结果决定的,WSFC根据仲裁投票的结果,执行自动故障转移或者使集群离线:如果仲裁结点集合(Quorum Node Set)的投票结果表明大多数结点是健康的,那么集群将进行故障转移,继续提供服务;如果投票结果是少数结点,那么集群将处于离线状态。关于集群的仲裁配置,请参考我的随笔:《故障转移集群的仲裁》。

3,集群的资源组

资源组:资源组是由一个或多个资源组成的组,故障转移是以资源组为单位发生的,在任何时候,每个资源组都仅属于集群中的一个结点,该结点是活跃结点。在配置资源组时,一个资源所依赖的其他资源必须和该资源配置在同一个资源组中,跨资源组的依赖关系是不存在的。

活跃结点拥有集群的资源组,能够处理客户端的请求,也就是说,拥有资源的结点为用户提供服务。活跃结点也称作主结点(Primary Node),集群中的其他结点称作辅助结点(Secondary Nodes),在Primary Node出现故障时,集群自动将资源转移到其他辅助结点。基于健康检测的策略控制自动故障转移的过程,故障转移实际上是资源拥有关系(Resource Ownership)的转移。

三,安装Windows Server Failover Clustering(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,在故障转移管理器中,创建集群

用户在故障转移管理器(Failover Cluster Manager)中,能够对已经创建成功的Failover Cluster进行管理,查看集群的信息,监控集群的状态和验证(Validate)集群的配置等。在截图的标记处,点击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 服务器故障转移集群搭建完成,用户可以在WSFC的基础之上,部署AlwaysOn高可用技术,创建可用性组(Availability Group)。

 

参考文档:

Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster

从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

Windows Server Failover Clustering (WSFC) with SQL Server

AlwaysOn Failover Cluster Instances (SQL Server)

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: AlwaysOn







本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/4929237.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
定位技术
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
|
1月前
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
39 4
|
30天前
|
Shell Windows
Windows服务器 开机自启动服务
Windows服务器 开机自启动服务
14 0
|
7天前
|
安全 Unix Linux
Windows如何远程连接服务器?服务器远程连接图文教程
服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:Windows Server、Netware、Unix和Linux。今天驰网飞飞将和你分享Windows server远程连接图文教程,希望可以帮助到你
22 4
Windows如何远程连接服务器?服务器远程连接图文教程
|
3天前
|
域名解析 网络协议 安全
服务器部署访问出错的原因和解决办法
部署到服务器后无法访问可能是由于配置错误、权限问题或网络设置不当。解决办法包括检查服务器配置文件、确保文件路径正确、调整权限设置以及检查防火墙和端口设置。
13 4
|
4天前
|
人工智能 安全 机器人
AI电销机器人系统源码部署:freeswitch安装Windows
在Windows上安装FreeSWITCH:访问官网下载安装程序,运行并按提示安装;选择安装路径和组件;等待安装完成;配置FreeSWITCH,修改设置;启动服务;测试其功能;如遇问题,参考官方文档或进行调试故障排除。记得定期更新维护以保证稳定安全。
|
8天前
|
Apache 数据安全/隐私保护 Windows
如何在Windows部署TortoiseSVN客户端并实现公网连接内网VisualSVN服务端
如何在Windows部署TortoiseSVN客户端并实现公网连接内网VisualSVN服务端
|
8天前
|
存储 安全 文件存储
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
|
9天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
9天前
|
弹性计算 Java Linux
阿里云服务器搭建部署宝塔详细流程
该内容是一个阿里云服务器和域名的配置指南。首先,需注册阿里云账号并进行企业实名认证。接着,选购服务器如2核2G1兆的Linux系统,并购买域名。完成域名备案后,进行域名解析和ICP备案。然后,通过远程连接登录服务器,重置密码,安装宝塔面板。在安全组中开启宝塔面板随机生成的端口。最后,登录宝塔面板安装LNMP环境,配置数据库如MySQL和Redis,部署JDK、Tomcat,上传前端和后端项目以实现上线。