Server2022冗余配置:故障转移群集、AlwaysOn、IIS
本文摘要介绍了服务器冗余配置的关键步骤,主要包括:
- 创建三台Windows Server 2022虚拟机(Server1作为域控制器,Server2/3用于群集);
- Server1配置域控制器;
- Server2和Server3加入域;
- Server2和Server3建立故障转移群集;
- 设置共享文件夹见证;
- Server2和Server3安装SQL Server 2019;
- 启用AlwaysOn高可用性组;
- Server2和Server3配置IIS实现自动切换;
一、创建虚拟机
下载虚拟机镜像
下载地址:windows-server-2022
三个虚拟机用途
Server1:域控制器
Server2和Server3做故障转移群集、AlwaysOn、还有IIS
启动前将三个虚拟机做如下修改
设置虚拟机,确保DVD驱动器在第一位
取消勾选启用安全启动
网络适配器改为Default Switch
给Server2和Server3增加第二个网络适配器,作为心跳网络使用,网络适配器同样需改为Default Switch
启动三台虚拟机,修改计算机名分别为Server1、Server2、Server3
关闭所有防火墙,启用所有网络发现
对应IP地址为
Server1
IP地址:10.18.224.10
子网掩码:255.255.255.0
首选DNS服务器:10.18.224.10
Server2
以太网
IP地址:10.18.224.11
子网掩码:255.255.255.0
首选DNS服务器:10.18.224.10
以太网 2
IP地址:192.168.1.11
子网掩码:255.255.255.0
高级→DNS→取消勾选在DNS中注册此连接的地址
Server3
IP地址:10.18.224.12
子网掩码:255.255.255.0
首选DNS服务器:10.18.224.10
以太网 2
IP地址:192.168.1.12
子网掩码:255.255.255.0
高级→DNS→取消勾选在DNS中注册此连接的地址
二、创建域控制器
Server1添加域控制器
安装完成后,将此服务器提升为域控制器
添加新林,输入域名
林功能级别和域功能级别:都选择最新的操作系统版本(如Windows Server 2016)。
指定域控制器功能:默认勾选"域名系统(DNS)服务器"和"全局编录"即可。
键入目录服务还原模式(DSRM)密码:这是一个用于灾难恢复的重要密码,务必牢记并妥善保管!
一直点击下一步直到安装完成
三、两台服务器加入域
将Server2和Server3加入域
计算机右键单击→属性→高级系统设置→计算机名→更改→输入域名→确定→输入Server1域管理员的账号密码
Server2和Server3加入域后重启,使用域账户登录,如CORP\Administrator
四、创建故障转移群集
登录后进入添加角色或功能,添加故障转移群集
打开Server2故障转移群集管理器,点击创建群集
添加Server2和Server3
一直下一步,中间有验证测试,等待完成即可
选择虚拟 IP 地址:从 10.18.224.0/24 中选取一个未被占用的静态 IP,例如 10.18.224.100。
可以在域控制器或任一服务器上用 ping 10.18.224.100 确认无人使用。
取消勾选心跳网络 IP 地址
下一步直到完成,可以看到创建后的群集,Server2当前投票为1,Server3当前投票为0
五、创建共享文件夹见证
指定见证服务器:找一台单独的、不在群集中的文件服务器(例如域控制器 10.18.224.10),或一个专门用来存放见证文件的网络存储(NAS),专门存储见证数据,以保证见证的独立性。
例:在Server1创建共享文件夹ClusterWitness,并共享此文件夹
在安全中添加Everyone的完全控制
创建完成后确保Server2和Server3可以访问
进入Server2故障转移群集管理器,右击群集名称→更多操作→配置群集仲裁设置
选择仲裁见证
配置共享文件夹见证
输入创建的共享文件夹路径\Server1\ClusterWitness
下一步到完成,可以看到群集见证
六、安装数据库
在Server2和Server3安装SQLServer2019标准版及以上(免费版不支持AlwaysOn,也可以使用开发者版和评估版)
在Feature Selection 界面选择所有Feature,取消勾选Machine Learning Services and
Language Extensions 和PolyBase Query Service for External Data,点击Next
开启sa登录,后续有Add Current User的全部添加进去,直至安装完成
七、启用Always On
启用Server2和Server3Always On
配置为域管理员登录
进入Sql Server Configuration Manager,点击SQL Server Services→右击SQL Server(MSSQLSERVER),选择属性→点击Log On→输入域管理员账号密码→点击确定
点击Always On Availability Groups→勾选Enable Always On Availability Groups→点击确定
右击SQL Server(MSSQLSERVER)重启服务
在Server2上还原数据库,然后做下数据库备份(Always On要求)
可以看到我们要启用Always On的数据库,右击Always On高可用性→新建可用性组向导
输入可用性组名称,群集类型选择Windows Server 故障转移群集,勾选数据库级别运行状况检测
勾选数据库,检查状态为满足先决条件
添加Server3,勾选自动故障转移
配置端点,改为心跳网络IP,注意SQL Server 服务账户为域管理员
创建侦听器
下一步直到完成,检查Server2和Server3都是正常状态
使用侦听器IP登录数据库
Always On配置完成,以后数据库连接全部使用侦听器IP
八、配置IIS
在Server2和Server3启用IIS
安装完成后,重新进入勾选应用程序开发及其中ASP.NET 4.8,其余内容会自动勾选,然后安装
在Server2和Server3添加网站,IP先不设置,端口为8080(根据自己需要设置)
确保Server2和Server3网站可以正常使用,点击浏览后页面正常访问
修改IP为Always On侦听器IP
WIN + R输入services.msc进入服务,右击Windows Process Activation Service启动类型改为自动(不要用延迟启动)
在Server1浏览器输入http://10.18.224.20:8080/测试可以访问
然后关闭Server2,测试还能正常访问
启动Server2然后关闭Server3,测试还能正常访问
以下内容为可选优化项,根据自己需求配置
观察发现后台服务器切换时有一定延迟
在Server2Server3上,以管理员身份打开 PowerShell,然后执行以下命令:
Get-Cluster | Format-List -Property *Subnet*, *Cross*, *Heartbeat*
参数 当前值 含义
SameSubnetDelay 1000 毫秒 (1秒) 每1秒发送一次心跳
SameSubnetThreshold 20 次 允许连续 20 次心跳失败
CrossSubnetDelay 1000 毫秒 (1秒) 跨子网心跳间隔(此处与同子网相同)
CrossSubnetThreshold 20 次 跨子网允许失败次数
集群判定一个节点宕机所需的时间 = Delay × Threshold
当前计算:1 秒 × 20 次 = 20 秒(最快检测出节点故障)
加上 IP 资源切换、ARP 更新等额外开销,客户端实际感受到的延迟约为 25~30 秒。
改为3次失败判为故障
Get-Cluster | ForEach-Object {
$_.SameSubnetThreshold = 3 # 同子网:连续3次失败判为故障
$_.CrossSubnetThreshold = 3 # 跨子网:同上
# 心跳间隔保持 1 秒(1000 毫秒)不变
}
改后检查是否更改成功
Get-Cluster | Format-List -Property *Subnet*, *Cross*, *Heartbeat*
测试方法:
在Server1上,以管理员身份打开 PowerShell,然后执行以下命令(改为你自己的地址):
while ($true) {
try {
# 用你的实际地址,如果该方法需要参数会导致失败,请改用 .asmx 的默认帮助页(不加方法名)
$response = Invoke-WebRequest -Uri "http://10.18.224.20:8080/WeighingSystemWebService.asmx" -TimeoutSec 2 -ErrorAction Stop
Write-Host "$(Get-Date -Format 'HH:mm:ss') OK" -ForegroundColor Green
} catch {
Write-Host "$(Get-Date -Format 'HH:mm:ss') FAIL - $_" -ForegroundColor Red
}
Start-Sleep -Milliseconds 500
}
测试结果,7秒左右
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)