适用于:Windows Server 2019、Windows Server 2016
本主题包含存储副本相关的常见问题解答 (FAQ)。
Azure 上是否支持存储副本?
是的。 可以在以下场景中使用 Azure:
- Azure 内部的服务器到服务器复制(在一个或两个数据中心故障域中的 IaaS 虚拟机之间同步或异步复制,或者在两个单独的区域之间异步复制)
- Azure 和本地之间的服务器到服务器异步复制(使用 VPN 或 Azure ExpressRoute)
- Azure 内部的群集到群集复制(在一个或两个数据中心故障域中的 IaaS 虚拟机之间同步或异步复制,或者在两个单独的区域之间异步复制)
- Azure 和本地之间的群集到群集异步复制(使用 VPN 或 Azure ExpressRoute)
- 使用 Azure 共享磁盘的拉伸群集(在一个或两个数据中心故障域中的 IaaS 虚拟机之间同步或异步,或者在两个单独的区域之间异步)
有关 Azure 中的来宾群集的更多说明,请参阅:在 Microsoft Azure 中部署 IaaS VM 来宾群集。
重要说明:
- 创建具有存储副本的存储空间 Direct SOFS 群集,用于跨 Azure 区域的灾难恢复中介绍了基于存储空间直通的存储副本群集的 Azure 资源管理器模板。
- Azure 中的群集到群集 RPC 通信(群集 API 需要在群集之间授予访问权限)需要为 CNO 配置网络访问权限。 你必须允许 TCP 端口 135 和高于 TCP 端口 49152 的动态范围。 参考在 Azure IaaS 虚拟机上构建 Windows Server 故障转移群集 — 第 2 部分:网络和创建。
- 可以使用双节点的来宾群集,其中每个节点都使用由存储副本复制的非对称群集的回送 iSCSI。 但这可能会导致性能极差,并且应该仅用于非常有限的工作负载或测试。
如何在初始同步期间查看复制进度?
在目标服务器的存储副本管理员事件日志中显示的事件 1237 消息每 10 秒就会显示复制的字节数和剩余字节数。 还可以使用在显示一个或多个复制卷的 \Storage Replica Statistics\Total Bytes Received 的目标上使用存储副本性能计数器。 此外,可以查询使用 Windows PowerShell 的复制组。 例如,此示例命令获取目标上的组名,然后每隔 10 秒查询名为“复制 2”的组来显示进度:
Get-SRGroup
do{
$r=(Get-SRGroup -Name "Replication 2").replicas
[System.Console]::Write("Number of remaining bytes {0}`n", $r.NumOfBytesRemaining)
Start-Sleep 10
}until($r.ReplicationStatus -eq 'ContinuouslyReplicating')
Write-Output "Replica Status: "$r.replicationstatus
能否指定特定网络接口用于进行复制?
是,使用 Set-SRNetworkConstraint
。 此 cmdlet 在接口层进行操作,并可用于群集和非群集方案。
例如,对于(每个节点上)的独立服务器:
Get-SRPartnership
Get-NetIPConfiguration
记下网关和接口信息(在这两台服务器上)以及合作关系方向。 然后运行:
Set-SRNetworkConstraint -SourceComputerName sr-srv06 -SourceRGName rg02 -
SourceNWInterface 2 -DestinationComputerName sr-srv05 -DestinationNWInterface 3 -DestinationRGName rg01
Get-SRNetworkConstraint
Update-SmbMultichannelConnection
对于在拉伸群集上配置网络约束:
Set-SRNetworkConstraint -SourceComputerName sr-cluster01 -SourceRGName group1 -SourceNWInterface "Cluster Network 1","Cluster Network 2" -DestinationComputerName sr-cluster02 -DestinationRGName group2 -DestinationNWInterface "Cluster Network 1","Cluster Network 2"
能否配置一对多复制或可传递(A 到 B 到 C)复制?
不支持,存储副本仅支持服务器、群集或拉伸群集节点的一对一复制。 这可能会在后续版本中更改。 当然,你可以在特定卷对的各种服务器之间以任一方向配置复制。 例如,服务器 1 可以将其 D 卷复制到服务器 2,以及从服务器 3 复制其 E 卷。
能否增大或收缩由存储副本复制的已复制卷?
可以增大(扩展)卷,但不能收缩它们。 默认情况下,存储副本会阻止管理员扩展复制卷;请在调整大小之前对源组使用 Set-SRGroup -AllowVolumeResize $TRUE
选项。 例如:
- 针对源计算机使用:
Set-SRGroup -Name YourRG -AllowVolumeResize $TRUE
- 使用你喜欢的任何技术增大卷
- 针对源计算机使用:
Set-SRGroup -Name YourRG -AllowVolumeResize $FALSE
能否使目标卷联机以便进行只读访问?
在 Windows Server 2016 中不能。 存储副本可在复制开始时卸除目标卷。
但是,在 Windows Server 2019 和从版本 1709 开始的 Windows Server Semi-Annual Channel 中,现在可以使用用于安装目标存储的选项 - 此功能称为“测试故障转移”。 若要执行此操作,你必须具有当前未在目标位置进行复制的未使用的 NTFS 或 ReFS 格式卷。 然后,你可以临时安装复制的存储的快照以便进行测试或备份。
例如,若要创建一个测试故障转移,其中,你要在目标服务器“SRV2”上的复制组“RG2”中复制卷“D:”,并且 SRV2 上有未被复制的“T:”驱动器,可执行以下命令:
Mount-SRDestination -Name RG2 -Computername SRV2 -TemporaryPath T:\
复制的卷 D: 现在可以在 SRV2 上访问。 你可以正常对其进行读写、从其中复制文件或运行保存在其他地方(在 D: 路径下)妥善保管的联机备份。 T: 卷将只包含日志数据。
若要删除测试故障转移快照并放弃对其所做的更改,可执行以下命令:
Dismount-SRDestination -Name RG2 -Computername SRV2
测试故障转移功能只应该用于短期临时操作。 它不适合长期使用。 在使用过程中,复制操作会继续复制到真正的目标卷。
能否在拉伸群集中配置横向扩展文件服务器 (SOFS)?
虽然从技术上来说,这是可以实现的,但这不是建议的配置,因为联系 SOFS 的计算节点中缺少站点感知。 如果使用的是校园网,其延迟通常是亚毫秒级的,此配置通常会正常运行,而不会出现问题。
在两个群集间进行复制时,如果配置群集到群集复制,存储副本会完全支持横向扩展文件服务器,包括可以使用存储空间直通。
在拉伸群集中复制或在群集之间复制是否需要 CSV?
错误。 你可以使用群集资源(如文件服务器角色)拥有的 CSV 或永久磁盘保留 (PDR) 进行复制。
在两个群集间进行复制时,如果配置群集到群集复制,存储副本会完全支持横向扩展文件服务器,包括可以使用存储空间直通。
能否在具有存储副本的拉伸群集中配置存储空间直通?
Windows Server 中不支持此配置。 这可能会在后续版本中更改。 如果配置群集到群集复制,存储副本会完全支持横向扩展文件服务器和 Hyper-V 服务器,包括可以使用存储空间直通。
如何配置异步复制?
指定 New-SRPartnership -ReplicationMode
并提供参数 Asynchronous。 默认情况下,存储副本中的所有复制都是同步的。 还可以使用 Set-SRPartnership -ReplicationMode
更改模式。
如何防止拉伸群集的自动故障转移?
为了防止自动故障转移,可以使用 PowerShell 来配置 Get-ClusterNode -Name "NodeName").NodeWeight=0
。 这将在灾难恢复站点中删除每个节点上的投票。 然后,可以在主站点的节点上使用 Start-ClusterNode -PreventQuorum
,并在灾难站点的节点上使用 Start-ClusterNode -ForceQuorum
来强制进行故障转移。 没有阻止自动故障转移的图形选项,不建议阻止自动故障转移。
如何禁用虚拟机复原?
若要阻止新的 Hyper-V 虚拟机运行复原功能,以暂停虚拟机而不将其故障转移到灾难恢复站点,请运行 (Get-Cluster).ResiliencyDefaultPeriod=0
如何减少初始同步的时间?
可以使用精简配置的存储来缩短初始同步时间。 存储副本查询并自动使用精简配置的存储,包括非聚集存储空间、Hyper-V 动态磁盘和 SAN LUN。 启动初始复制后,无法收缩或剪裁。
还可以使用植入的数据卷,有时通过确保目标卷具有主卷的一些数据子集,然后使用故障转移群集管理器中的植入选项或使用 New-SRPartnership
来减少带宽的使用。 如果该卷大部分为空,则使用植入的同步会减少时间和带宽的使用量。 有多种方法可以播种数据,这些方法具有不同程度的功效:
- 以前的复制 - 在包含磁盘和卷的节点之间本地进行正常初始同步复制,删除复制,将目标磁盘寄送到其他位置,然后使用种子设定选项添加复制。 这是最有效的方法,因为存储副本保证了数据块拷贝镜像,并且只需要复制增量块。
- 还原的快照或还原的基于快照的备份 - 通过将基于卷的快照复原到目标卷,数据块布局中的差异应该最小。 这是次最有效的方法,因为由于卷快照是镜像,所以块很可能匹配。
- 复制的文件 - 通过在目标上创建以前从未使用过的新卷,并对数据执行完整的 Robocopy/MIR 树复制,很可能会出现块匹配。 使用 Windows 文件资源管理器或复制树的某些部分不会创建许多块匹配。 手动复制文件是效率最低的种子设定方法。
能否委托用户管理复制?
你可以使用 Grant-SRDelegation
cmdlet。 这样,可以设置特定用户在服务器到服务器、群集到群集以及拉伸群集复制方案中拥有创建、修改或删除复制的权限,而无需成为本地管理员组中的成员。 例如:
Grant-SRDelegation -UserName contso\tonywang
该 cmdlet 将提醒你,用户需要登录和注销他们计划进行管理的服务器,以便使更改生效。 可以使用 Get-SRDelegation
和 Revoke-SRDelegation
对此进行进一步控制。
针对已复制卷,我的备份和还原选项是什么?
存储副本支持对源卷进行备份和还原。 它还支持创建和还原源卷的快照。 当目标卷受存储副本保护时,你无法备份或还原目标卷,因为目标卷既未装载,也不可访问。 如果你遇到源卷丢失的灾难,使用 Set-SRPartnership
可将以前的目标卷升级为现在可读/写的源卷将允许你备份或恢复该卷。 还可以使用 Remove-SRPartnership
和 Remove-SRGroup
删除复制以将该卷重新安装为可读/写。
若要定期创建应用程序的一致性快照,可以在源服务器上使用 VSSADMIN.EXE 来截取复制数据卷的快照。 例如,使用存储副本复制 F: 卷:
vssadmin create shadow /for=F:
然后在切换复制方向后删除复制,或仍在同一个源卷上,可以及时将任何快照还原到其点。 例如,仍使用 F:
vssadmin list shadows
vssadmin revert shadow /shadow={shadown copy ID GUID listed previously}
还可以使用计划任务安排此工具定期运行。 有关使用 VSS 的详细信息,请参阅 Vssadmin。 备份日志卷没有必要,也没有价值。 若尝试执行此操作,VSS 将会忽略该操作。
存储副本支持使用 Windows Server 备份、Microsoft Azure 备份、Microsoft DPM 或其他快照、VSS、虚拟机或基于文件的技术,只要它们在卷层中运行。 存储副本不支持基于块的备份和还原。
存储副本需要哪些网络端口?
存储副本依赖 SMB 和 WSMAN 进行其复制和管理。 这意味着必需使用以下端口:
- 445(SMB - 复制传输协议,群集 RPC 管理协议)
- 5445(iWARP SMB - 仅在使用 iWARP RDMA 网络时需要)
- 5985(WSMANHTTP - WMI/CIM/PowerShell 的管理协议)
注意
Test-SRTopology cmdlet 需要 ICMPv4/ICMPv6,但不用于复制或管理。
日志卷最佳做法是什么?
日志的最佳大小因环境和工作负荷而大不相同,取决于工作负荷执行的写入 IO 数量。
- 日志大小与操作速度无关
- 例如,在对比 10 GB 数据卷与 10 TB 数据卷时日志大小无任何影响
较大的日志可在写入 IO 被换出之前简单收集和保留更多的写入 IO。这可允许源计算机和目标计算机之间的服务中断(例如网络中断或目标脱机)持续更长时间。 如果日志可以保存 10 小时的写入,而网络中断的时间为 2 小时,则当网络恢复的时候,源计算机可以非常轻松、快速地将未同步更改的增量同步至目标计算机,从而快速地再次提供保护。 如果日志可保存 10 小时的写入,而中断时间为 2 天,则源计算机必须从被称为位图的其他日志进行操作,并可能会较慢恢复同步。同步之后,它将恢复使用该日志。
存储副本依靠该日志来实现所有写入性能。 对复制性能至关重要的日志性能。 必须确保日志卷的性能优于数据卷,因为日志将对所有写入 IO 进行序列化和顺序化。 应始终在日志卷上使用闪存介质,例如 SSD。 不得允许其他任何工作负荷在日志卷上运行,同样不得允许其他工作负荷在 SQL 数据库日志卷上运行。
再次说明:Microsoft 强烈建议,日志存储应比数据存储速度快,并且日志卷不得用于其他工作负荷。
可以通过运行 test-srtopology 工具来获取日志大小调整建议。 或者,也可以使用现有服务器上的性能计数器来判断日志大小。 公式很简单:监视工作负载下的数据磁盘吞吐量(平均写入字节/秒),并使用它来计算填满不同大小的日志所需的时间。 例如,50MB/s 的数据磁盘吞吐量将导致 120GB 日志以 120GB/50MB 的速度包装,用时 2400 秒(40 分钟)。 因此,在日志被包装之前,目标服务器可能无法访问的时间长度为 40 分钟。 如果日志包装,但目标再次变得可访问,则源将通过位图日志(而不是主日志)重放块。 日志大小对性能没有影响。
只应备份源群集中的数据磁盘。 不应备份存储副本日志磁盘,因为备份可能会与存储副本操作发生冲突。
为何选择拉伸群集、群集到群集或服务器到服务器拓扑?
存储副本有三种主要配置:拉伸群集、群集到群集和服务器到服务器。 每种配置都具有不同的优势。
拉伸群集拓扑适用于需要带业务流程的自动故障转移的工作负荷,例如 Hyper-V 私有云群集和 SQL Server FCI。 此外还具有使用故障转移群集管理器的内置图形界面。 它通过永久保留采用存储空间的经典对称群集共享存储架构,即 SAN、iSCSI 和 RAID。 使用至少 2 个节点进行运行。
群集到群集拓扑使用两个独立群集,非常适用于需要手动故障转移的管理员,尤其是当预配第二个站点以进行灾难恢复以及无需每日使用的时候。 业务流程为手动操作。 与拉伸群集不同,可在此配置中使用存储空间直通(注意事项 - 请参阅“存储副本常见问题解答和群集到群集”文档)。 使用至少四个节点进行运行。
服务器到服务器拓扑适用于运行无法组成群集的硬件的客户。 这种配置需要手动故障转移和业务流程。 非常适用于分支机构和中央数据中心之间的低成本部署,尤其是当使用异步复制的时候。 此配置通常可替代用于单主机灾难恢复方案的受 DFSR 保护的文件服务器的实例。
在所有的情况下,拓扑支持在物理硬件和虚拟机运行。 在虚拟机上运行时,基础虚拟机监控程序无需 Hyper-V;可以是 VMware、KVM 和 Xen 等。
存储副本还具有一个服务器到自我模式,可以在此模式中将复制指定到同一台计算机上的两个不同卷。
存储副本是否支持重复数据删除?
是的,存储副本支持重复数据删除。 在源服务器上的卷上启用重复数据删除,在复制过程中,目标服务器将收到卷在删除重复数据后的副本。
虽然你应该在源服务器和目标服务器上都安装重复数据删除(请参阅安装和启用重复数据删除),但不要在目标服务器上启用重复数据删除,这一点很重要。 存储副本仅允许在源服务器上写入。 由于重复数据删除会对卷进行写入,因此应仅在源服务器上运行。
我可以在 Windows Server 2019 和 Windows Server 2016 之间复制吗?
遗憾的是,我们不支持在 Windows Server 2019 和 Windows Server 2016 之间建立新的合作伙伴关系。 你可以安全地将运行 Windows Server 2016 的服务器或群集升级到 Windows Server 2019,并且任何现有的合作伙伴关系都将继续工作。
但是,要提高 Windows Server 2019 的复制性能,伙伴关系的所有成员都必须运行 Windows Server 2019,并且你必须删除现有的伙伴关系和关联的复制组,然后使用种子数据重新创建它们(在 Windows 管理中心中创建伙伴关系时或使用 New-SRPartnership cmdlet)。
如何报告存储副本或本指南中的问题?
如需存储副本的技术援助,可以通过 Microsoft 论坛 发布。 你还可以通过发邮件给 srfeed@microsoft.com 来询问有关存储副本的问题。 有关此文档的问题,请参阅本页底部的“反馈”部分,然后选择“此页”。
是否可以将存储副本配置为双向复制?
存储副本是一种单向复制技术。 它仅以每个卷为单位从源复制到目标。 这个方向可以随时反转,但仍然只有一个方向。 但是,这并不意味着你不能让一组卷(源和目标)沿一个方向复制,而让另一组驱动器(源和目标)沿相反方向复制。 例如,你希望配置服务器到服务器的复制。 Server1 和 Server2 的驱动器号分别为 L:、M:、N: 和 O:,你希望将驱动器 M: 从 Server1 复制到 Server2,而将驱动器 O:从 Server2 复制到 Server1。 只要每个组都有单独的日志驱动器,就可以执行此操作。 即
- Server1 源驱动器 M:,源日志驱动器 L: 复制到 Server2 目标驱动器 M:,目标日志驱动器为 L:
- Server2 源驱动器 O:,源日志驱动器 N: 复制到 Server1 目标驱动器 O:,目标日志驱动器为 N:
是否可以将群集磁盘置于维护模式?
存储副本将阻止任何群集磁盘进入维护模式。 对于启用或禁用 BitLocker 等任务,磁盘必须处于维护模式。 若要执行要求磁盘处于维护模式的任务,需要先断开伙伴关系,并在伙伴关系完成后重新创建。