Hyper-V 虚拟机同步与备份完整教程

2025-3-18 / 0 评论 / 85 阅读

一、环境准备

服务器要求:

主服务器:Windows Server 2022 Standard(已启用 Hyper-V 角色)

副服务器:Windows Server 2022 Standard(已启用 Hyper-V 角色)

网络互通:确保两台服务器可通过 IP 或主机名互相访问,防火墙开放端口 80(HTTP)或 443(HTTPS)。

二、副服务器配置

  1. 启用 Hyper-V Replica 功能

启用复制功能并指定存储路径

Set-VMReplicationServer -ReplicationEnable $true -AllowedAuthenticationType Kerberos -DefaultStorageLocation "D:\ReplicaStorage" -ReplicationAllowedFromAnyServer $true
  1. 配置防火墙规则

允许入站复制流量(HTTP 80 端口)

New-NetFirewallRule -DisplayName "Hyper-V Replica HTTP" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
  1. 授权主服务器

添加主服务器授权条目

New-VMReplicationAuthorizationEntry -AllowedPrimaryServer "主服务器IP或主机名" -TrustGroup "ReplicaGroup" -ReplicaStorageLocation "D:\ReplicaStorage"

注意:若提示授权冲突,需先删除旧授权:

Remove-VMReplicationAuthorizationEntry -AllowedPrimaryServer "*"

三、主服务器配置

  1. 配置防火墙规则
    允许出站复制流量
    New-NetFirewallRule -DisplayName "Allow Outbound Replica" -Direction Outbound -RemotePort 80 -Protocol TCP -Action Allow
  2. 启用虚拟机复制
    启用复制到副服务器
    Enable-VMReplication -VMName "虚拟机名称" -ReplicaServerName "副服务器IP或主机名" -ReplicaServerPort 80 -AuthenticationType Kerberos -CompressionEnabled $true

    启动初始全量同步(必须手动执行)

    Start-VMInitialReplication -VMName "虚拟机名称"

    四、同步机制详解

    初始同步:

需手动执行 Start-VMInitialReplication,传输完整虚拟机数据。

增量同步:

自动触发,每隔 5 分钟 同步变化数据。

主服务器生成日志文件(.hrl),默认保留 24 小时。

断网恢复:

网络恢复后自动续传未同步的日志,无需手动干预。

若中断超过 24 小时,需重新执行初始同步。

五、验证与监控

  1. 检查复制状态
    主服务器查看状态
    Get-VMReplication -VMName "虚拟机名称"

    输出关键字段:

    • ReplicationHealth: Normal(正常) / Warning(警告)
    • PendingReplicationCount: 待同步日志数量
  2. 测试网络连通性
    Test-NetConnection -ComputerName "副服务器IP" -Port 80

    输出应为 TcpTestSucceeded: True。

六、手动干预场景

  1. 强制恢复同步
    网络恢复后若未自动续传,手动触发
    Resume-VMReplication -VMName "虚拟机名称" -Confirm:$false
  2. 调整日志保留时间
    延长日志保留时间至 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,实现异地容灾。

八、故障排查

  1. 常见错误
    授权失败:检查 -TrustGroup 和 -ReplicaStorageLocation 参数拼写。

端口阻塞:使用 Test-NetConnection 验证端口连通性。

时间不同步:确保两台服务器时间误差 ≤ 5 分钟。

  1. 日志分析
    查看 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 "*"

最后再初始化一下。

评论一下?

OωO
取消