一、环境准备
服务器要求:
主服务器:Windows Server 2022 Standard(已启用 Hyper-V 角色)
副服务器:Windows Server 2022 Standard(已启用 Hyper-V 角色)
网络互通:确保两台服务器可通过 IP 或主机名互相访问,防火墙开放端口 80(HTTP)或 443(HTTPS)。
二、副服务器配置
- 启用 Hyper-V Replica 功能
启用复制功能并指定存储路径
Set-VMReplicationServer -ReplicationEnable $true -AllowedAuthenticationType Kerberos -DefaultStorageLocation "D:\ReplicaStorage" -ReplicationAllowedFromAnyServer $true
- 配置防火墙规则
允许入站复制流量(HTTP 80 端口)
New-NetFirewallRule -DisplayName "Hyper-V Replica HTTP" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
- 授权主服务器
添加主服务器授权条目
New-VMReplicationAuthorizationEntry -AllowedPrimaryServer "主服务器IP或主机名" -TrustGroup "ReplicaGroup" -ReplicaStorageLocation "D:\ReplicaStorage"
注意:若提示授权冲突,需先删除旧授权:
Remove-VMReplicationAuthorizationEntry -AllowedPrimaryServer "*"
三、主服务器配置
- 配置防火墙规则
允许出站复制流量New-NetFirewallRule -DisplayName "Allow Outbound Replica" -Direction Outbound -RemotePort 80 -Protocol TCP -Action Allow - 启用虚拟机复制
启用复制到副服务器Enable-VMReplication -VMName "虚拟机名称" -ReplicaServerName "副服务器IP或主机名" -ReplicaServerPort 80 -AuthenticationType Kerberos -CompressionEnabled $true启动初始全量同步(必须手动执行)
Start-VMInitialReplication -VMName "虚拟机名称"四、同步机制详解
初始同步:
需手动执行 Start-VMInitialReplication,传输完整虚拟机数据。
增量同步:
自动触发,每隔 5 分钟 同步变化数据。
主服务器生成日志文件(.hrl),默认保留 24 小时。
断网恢复:
网络恢复后自动续传未同步的日志,无需手动干预。
若中断超过 24 小时,需重新执行初始同步。
五、验证与监控
- 检查复制状态
主服务器查看状态Get-VMReplication -VMName "虚拟机名称"输出关键字段:
- ReplicationHealth: Normal(正常) / Warning(警告)
- PendingReplicationCount: 待同步日志数量
- 测试网络连通性
Test-NetConnection -ComputerName "副服务器IP" -Port 80输出应为 TcpTestSucceeded: True。
六、手动干预场景
- 强制恢复同步
网络恢复后若未自动续传,手动触发Resume-VMReplication -VMName "虚拟机名称" -Confirm:$false - 调整日志保留时间
延长日志保留时间至 48 小时Set-VMReplication -VMName "虚拟机名称" -ReplicationHealthCheckInterval 48七、备份策略(必做!)
Hyper-V Replica 不替代备份,需额外操作:
定期完整备份:
使用 Windows Server Backup 示例
wbadmin start backup -backupTarget:D: -include:C:\VM\MyVM -quiet
副本快照:
在副服务器为副本创建检查点
Checkpoint-VM -Name "副本虚拟机名称" -SnapshotName "DailySnapshot"
云备份:
将关键数据同步至 Azure/AWS,实现异地容灾。
八、故障排查
- 常见错误
授权失败:检查 -TrustGroup 和 -ReplicaStorageLocation 参数拼写。
端口阻塞:使用 Test-NetConnection 验证端口连通性。
时间不同步:确保两台服务器时间误差 ≤ 5 分钟。
- 日志分析
查看 Hyper-V 事件日志Get-WinEvent -LogName "Microsoft-Windows-Hyper-V-VMMS-Admin" -MaxEvents 50 | Where-Object {$_.LevelDisplayName -eq "Error"}九、最终总结
同步流程:副服务器配置授权 → 主服务器启用复制 → 手动初始同步 → 自动增量同步。
高可用性:Replica 提供实时容灾,结合备份策略防范逻辑错误。
自动化:日常同步无需手动操作,重点监控日志和存储空间。
十、日常问题
1.我备份服务器坏了,被黑客入侵,所有数据被加密了,重做了系统,主服务器无法同步过来,需要先删除主服务器的复制进程。
查看主服务器虚拟机状态
Get-VMReplication | Select-Object VMName, State, Health, Mode | Format-Table -AutoSize
有返回值,不为空则需要删除:
Get-VMReplication | ForEach-Object {
Write-Host "正在移除 $($_.VMName) 的复制配置..." -ForegroundColor Yellow
try {
Remove-VMReplication -VMName $_.VMName -Confirm:$false
Write-Host "✓ $($_.VMName) 复制配置已移除" -ForegroundColor Green
} catch {
Write-Host "✗ $($_.VMName) 移除失败: $($_.Exception.Message)" -ForegroundColor Red
}
}
然后再进行重跑一遍流程即可
2.我备份的服务器与主机失联超过4天
需要删除副机的所有虚拟机,然后去主机移除复制状态:
Remove-VMReplication -VMName *
Enable-VMReplication `
-VMName "*" `
-ReplicaServerName 副本服务器名 `
-ReplicaServerPort 80 `
-AuthenticationType Kerberos `
-CompressionEnabled $true
重新启用复制
Start-VMInitialReplication -VMName "*"
最后再初始化一下。
评论一下?