香港服务器部署 Windows Server 2019:我如何用「存储复制(Storage Replica)」把异地灾备做“硬”了

台风夜,香港湾仔机房里空调声像海浪一样翻卷。楼下海风正狂,值班电话却格外安静。我靠在42U机柜前的折叠凳上,盯着 Windows Admin Center 的进度条——这是我们把香港主站文件服务同步到深圳前海容灾点的最后一步。说实话,做了这么多年运维,我最怕的不是出事,而是出事时没有“第二把钥匙”。这一次,我决定把第二把钥匙交给 Windows Server 2019 的「存储复制」功能。
我们的目标与场景
目标:在香港(主站)与深圳(容灾)之间实现块级、持续复制,在近城距离内尽量做到零丢失(同步);跨城/跨国时可切换为异步以抗高延迟。存储复制是卷级复制,不是文件级,也不是应用级。它基于 SMB 3 协议,支持多通道/SMB Direct(RDMA)。
为什么选它:Windows 自带、运维面熟、和现有 AD/ACL/备份体系兼容,管理面既有 PowerShell 又有 Windows Admin Center。
重要许可提醒:Windows Server 2019 Standard 也支持存储复制,但被限制为仅 1 个复制伙伴、1 个资源组、且仅 1 个卷(最大 2TB);Datacenter 则不限卷数/容量。如果你只需保护“最关键的那块盘”,Standard 足够;否则上 Datacenter。
拓扑与硬件(实打实落地)
物理与网络拓扑
站点:香港主站(机柜 A) ←→ 深圳 DR(机柜 B)
业务:文件服务 + 部分中间件共享数据
链路:运营商专线(L2VPN),双 10GbE 复用一对独立 VLAN 承载复制流量;管理面独立 1GbE
延迟测得(业务时段):
- HK ↔ SZ:3.8–5.6 ms(均值 4.7 ms)——可跑同步
- 若跑到新加坡备用站,延迟 38–45 ms,只能异步
同步复制适合城域级低延迟网络,异步用在更远距离/更高延迟链路。
香港服务器与存储清单(两站对称)
| 角色 | 型号/CPU | 内存 | 系统盘 | 数据盘(E:) | 日志盘(F:) | 网卡 |
|---|---|---|---|---|---|---|
| SR-HK01 | 2× Xeon Silver 4214R | 128GB | 480GB SATA SSD | 3.84TB NVMe(GPT、NTFS) | 480GB NVMe(仅日志) | 2×10GbE(支持 RDMA 的更佳) |
| SR-SZ01 | 同上 | 同上 | 同上 | 同上 | 同上 | 同上 |
关键注意:
数据卷(E:)与对端数据卷必须“同尺寸”,日志卷尺寸也建议一致;两端磁盘扇区大小必须一致(512e/4Kn 不能混)。卷一律 GPT 初始化。
日志盘对性能至关重要,务必用 SSD/NVMe,且专用(不跑别的工作负载)。默认日志大小约 8GB,可根据评估调优。
上线前健康检查与容量评估
1)安装与特性启用(两端)
# 以管理员身份
Install-WindowsFeature -Name Storage-Replica,FS-FileServer -IncludeManagementTools
Restart-Computer
2)网络与防火墙
确保 SMB(TCP 445)、WinRM(5985/5986)、WMI/CIM、RPC(135)可达;复制流量走专用 VLAN。
若网卡支持 RDMA(RoCE/iWARP/IB),开启 SMB Direct 与 SMB Multichannel 可显著降 CPU、提吞吐。
3)一致性检查与基准测试
必跑:Test-SRTopology(自动帮你评估链路与日志大小建议)
# 在任意一端跑 5 分钟评估
Test-SRTopology `
-SourceComputerName SR-HK01 -SourceVolumeName E: -SourceLogVolumeName F: `
-DestinationComputerName SR-SZ01 -DestinationVolumeName E: -DestinationLogVolumeName F: `
-DurationInMinutes 5 -IgnorePerfTests:$false | Tee-Object .\sr-topo-report.txt
这一步会给出推荐日志大小、同步/异步可行性与预计吞吐,作为正式上线参数的“锚”。
(可选)预热数据:如果 E: 已有大量存量文件,先用 robocopy /MIR /COPYALL /R:1 /W:1 做种子拷贝,可显著缩短初次全量同步时间。
正式部署(我惯用的两条路)
路线 A:Windows Admin Center(图形向导,简单直观)
Windows Admin Center(1910+)内置“服务器到服务器复制”向导,逐步指定两端服务器、数据卷(E:)、日志卷(F:)、复制模式(同步/异步),就能创建 Partnership 并开始初始同步;也支持一键反向。
路线 B:PowerShell(可编排、可回放)
# 1)两端创建复制组(也可由 New-SRPartnership 隐式创建)
New-SRPartnership `
-SourceComputerName SR-HK01 -SourceRGName rg-hk -SourceVolumeName E: -SourceLogVolumeName F: `
-DestinationComputerName SR-SZ01 -DestinationRGName rg-sz -DestinationVolumeName E: -DestinationLogVolumeName F: `
-ReplicationMode Synchronous `
-LogSizeInBytes 17179869184 # 16GB,来自 Test-SRTopology 的建议
# 查看状态
Get-SRGroup
Get-SRPartnership
Get-SRStatistics -Verbose
New-SRPartnership 支持指定 -ReplicationMode(同步/异步),也支持异步场景的 -AsyncRPO 目标。
运行与演练:我在线上的“操作手感”
观察初始同步
初始同步阶段,Get-SRStatistics 的 Remaining Bytes 会较大;完成后进入 Continuously Replicating。
我通常在交换机上对复制 VLAN 做限速(或用 SMB 带宽限制),避免把备份/夜窗以外时段的业务挤爆:
# 例如把“Storage”分类限到 7Gbps,给业务留出余量
New-SmbBandwidthLimit -Category Storage -BytesPerSecond (7GB)
计划内“演练式”故障切换(不破坏线上)
2019 起可以测试性挂载目标端的“快照副本”,做只读/验证/备份,不影响正在进行的复制:
# 在深圳端,把复制组 rg-sz 暂时挂到一个未参与复制的临时盘符 T:
Mount-SRDestination -ComputerName SR-SZ01 -Name rg-sz -TemporaryPath T:
# 验证完毕后卸载
Dismount-SRDestination -ComputerName SR-SZ01 -Name rg-sz
这招我每季度跑一次,校验 ACL、业务读取与备份链路是否健康。
真正的切换/回切(有计划/应急)
计划切换(两端在线、零丢失)——反转复制方向即可:
# 把深圳升为新源(主),香港转为目标(从)
Set-SRPartnership -NewSourceComputerName SR-SZ01 `
-SourceRGName rg-sz -DestinationComputerName SR-HK01 -DestinationRGName rg-hk
应急切换(主站故障离线)——在存活端执行,必要时加 -Force。切换后业务改指向新主;待原主修复完成,再同法回切。
我踩过的坑 & 现场解法
卷大小/扇区大小不一致
现象:New-SRPartnership/Test-SRTopology 报卷尺寸或扇区大小不匹配。
排查:Get-PhysicalDisk / fsutil fsinfo ntfsinfo E:;核对 512e vs 4Kn。
处理:确保数据卷两端尺寸完全一致、扇区大小一致,日志卷也保持一致。必须 GPT 初始化。
远程跑 Test-SRTopology 报权限/连接错误
现象:从管理机远程校验常见报错(找不到卷/无法连接)。
处理:短时开启 CredSSP 委派进行测试,测完关闭;并检查目标端的 WMI/WinRM/防火墙策略。
移除复制后磁盘离线/残留元数据
现象:拆复制或重装系统后,磁盘离线、无法重新配置复制。
处理:在相关节点执行 清理 SR 元数据,然后重启:
Clear-SRMetadata -AllPartitions
Clear-SRMetadata -AllLogs
日志盘“挤爆”导致写延迟
现象:业务写入抖动、复制落后(异步)。
处理:把日志盘换 NVMe、增大日志大小(依据 Test-SRTopology 建议或用 Set-SRGroup 调整),并识别突发写入窗口做业务限速。
对外暴露读写访问的误解
事实:复制进行时,目标卷不提供常态读写访问(2019 可用“测试挂载”做临时验证/只读窗口)。
性能调优清单(我在线上真的用)
日志盘:优先 NVMe,只做日志,不混合其他 I/O;根据评估把默认 8GB 调到 16–32GB。
网络:启用 SMB 多通道/SMB Direct(RDMA),复用多条 10GbE 链路提升吞吐与韧性。
带宽治理:用 New-SmbBandwidthLimit 或交换机 QoS 避免复制在白天“顶满”专线。
监控:
# 复制统计、延迟与积压
Get-SRStatistics -Verbose
Get-WinEvent -ProviderName "Microsoft-Windows-StorageReplica" -MaxEvents 50
模式选择:HK↔SZ 低延迟用同步,跨区/跨国必须异步。
可复用的“最小上线步骤”(从零到有)
两端安装功能与重启:
Install-WindowsFeature Storage-Replica -IncludeManagementTools
准备 E:(数据卷,大小 X TB)与 F:(日志卷,NVMe,至少 8GB,建议 16GB+),GPT,NTFS/ ReFS 皆可。
跑 Test-SRTopology 获取日志大小与模式建议。
创建 Partnership(示例:同步,16GB 日志):
New-SRPartnership -SourceComputerName SR-HK01 -SourceRGName rg-hk `
-SourceVolumeName E: -SourceLogVolumeName F: `
-DestinationComputerName SR-SZ01 -DestinationRGName rg-sz `
-DestinationVolumeName E: -DestinationLogVolumeName F: `
-ReplicationMode Synchronous -LogSizeInBytes 17179869184
观察 Get-SRStatistics,待 Continuously Replicating。
做一次 Mount-SRDestination 的测试性挂载核验数据/备份链路(卸载恢复复制)。
编写计划切换与回切脚本,用 Set-SRPartnership -NewSourceComputerName。
数据与结果:我落地后的关键数字(节选)
| 指标 | 上线前评估 | 首周运行 | 优化后(RDMA + 带宽限速) |
|---|---|---|---|
| HK↔SZ RTT(ms) | 4.7(均值) | 4.9 | 4.9 |
| 初始同步速率(MB/s) | 320–380 | 360 | 920(夜窗,双 10G) |
| 业务时段复制占用 | —— | 峰值 9 Gbps(曾挤占备份) | 限速 7 Gbps(业务稳定) |
| Test-SRTopology 建议日志 | 8–16 GB | —— | 16 GB(最终采用) |
| 演练切换时长 | —— | 3–5 分钟(含业务切换) | 约 2 分钟 |
注:RDMA 取决于网卡/交换机支持与正确配置;没有 RDMA 也能跑,但 CPU 占用会更高(SMB 多通道仍有帮助)。
FAQ:一些常见“灵魂拷问”
能不能一对多? 不能,一对一。
能不能复制系统盘? 不建议,选专用数据卷;灾备系统层面应走镜像/备份。
卷能扩吗? 能扩不能缩;扩容前对源组 Set-SRGroup -AllowVolumeResize $True,完成后再关闭。
Standard 怎么破 2TB? 这是产品限制,要么上 Datacenter,要么只挑最关键的数据卷复制。
收尾:再次台风将临
又一个台风预警挂起。我在 WAC 里点开“更改方向”,看见复制方向从香港指向深圳的箭头轻轻转了身。演练完成,告警面板一片绿。我把凳子收回机柜边,顺手合上外套拉链——
容灾这件事,最难的不是技术,而是“当它被需要时,你已经准备好”。
现在,我有把握让任何一个站点在出事时,三步回魂:一键反向、切换业务、回切复原。
风还在吹,但心里已经不慌了。
参考与延伸阅读(核心要点出处)
- 总览/特性与模式:Storage Replica 概览(SMB3/多通道/RDMA、同步/异步、三种形态)与 Standard 版限制。
- 服务器到服务器部署:官方 Server-to-Server 指南(WAC 与 PowerShell 双路径)。
- 评估工具:Test-SRTopology 用法与报告。
- 创建/反向复制:New-SRPartnership、Set-SRPartnership。
- 测试性挂载(演练):2019 起支持 Mount-SRDestination/Dismount-SRDestination。
- 日志盘与默认 8GB:日志盘必须 SSD/独占,默认 8GB,按评估调整。
- 常见坑:CredSSP 远程评估、清理 SR 残留元数据的 Clear-SRMetadata。
如果你也在香港或周边机房做 DR,照着这份清单和脚本走一遍,从零到上线是完全可复刻的。剩下的,就是坚持做演练,别把“容灾”仅仅停在 PPT。