存储副本 (Storage Replica) 是一种 Windows Server 技术,它允许针对灾难恢复在服务器或群集之间进行卷的同步复制。 它还允许你使用异步复制来创建跨越两个站点的故障转移群集,同时保持所有节点同步。
存储副本支持同步和异步复制:
- 同步复制映射低延迟网络站点中的数据和在崩溃时保持一致的卷,以确保在故障发生过程中文件系统级别的数据损失为零。
- 异步复制通过较高延迟网络链接映射都市范围外的站点之间的数据,但不保证在出现故障时两个站点具有完全相同的数据副本。
同步复制
同步复制可确保应用程序在 IO 完成之前将数据一次写入两个位置。 由于这种复制要求网络和存储投资且有降低应用程序性能的风险,所以它更适合于任务关键数据。
当源数据副本上发生应用程序写入操作时,源存储不会立即确认 IO。 相反,那些数据更改对远程目标副本的复制,并返回一条确认。 此时,应用程序才会收到 IO 确认。 这可确保远程站点与源站点的固定同步,有效地跨网络扩展存储 IO。 在源站点故障时,应用程序可以故障转移到远程站点并恢复其运行,同时保证零数据丢失。
异步复制
相反,异步复制意味着当应用程序写入数据时,将在没有立即确认保证的情况下将该数据复制到远程站点。 此模式允许更迅速地响应应用程序以及按地理位置工作的 DR 解决方案。
当应用程序写入数据时,复制引擎将捕获该写入并立即向应用程序确认。 然后,捕获的数据将复制到远程位置。 远程节点处理数据的副本,并延迟返回向源副本确认。 由于复制性能不再处于应用程序 IO 路径中,因此远程站点的响应速度和距离都是不太重要的因素。 如果源数据丢失,并且数据的目标副本仍在缓冲区而没有离开源,则存在数据丢失的风险。
使用其比 zero RPO 更高的版本,异步复制不太适用于 HA 解决方案,如故障转移群集,因为它们是为具有冗余和无数据丢失的连续操作而设计。
应用场景
可以在拉伸群集中、在群集到群集配置之间和服务器到服务器配置之间部署存储复制。
拉伸群集允许在单个群集中配置计算机和存储,其中某些节点共享一组非对称存储,而另一些节点共享另一组,然后通过站点感知进行同步或异步复制。 此方案可以利用具有共享的 SAS 存储的存储空间、连接了 SAN 和 iSCSI 的 LUN。 它通过 PowerShell 和故障转移群集管理器图形工具进行管理,并允许自动化工作负载故障转移。
图 1:在拉伸群集中使用存储副本的存储复制
群集到群集允许两个独立群集之间的复制,其中一个群集与另一个群集进行同步复制或异步复制。 此方案可以利用存储空间直通、具有共享的 SAS 存储的存储空间以及连接了 SAN 和 iSCSI 的 LUN。 它通过 PowerShell 和 Azure Site Recovery 进行管理,并且需要手动干预故障转移。
图 2:使用存储副本的群集到群集存储复制
服务器到服务器允许使用具有共享的 SAS 存储的存储空间、连接了 SAN 和 iSCSI 的 LUN 以及本地驱动器,在两个独立服务器之间进行同步和异步复制。 它通过 PowerShell 和服务器管理器工具进行管理,并且需要手动干预故障转移。
图 3:使用存储副本的服务器到服务器存储复制
在WindowsServer 2016中,存储副本并没有GUI界面可以进行配置,所以本次实验环境我们统一采用PowerShell进行配置:
必备条件
- Active Directory 域服务林(无需运行 Windows Server 2016)。
- 两个安装了 Windows Server 2016 Datacenter Edition 的服务器。
- 两个使用 SAS JBOD、光纤通道 SAN、iSCSI 目标或本地 SCSI/SATA 存储的存储集。存储需包含 HDD 和 SSD 媒体的组合。将每个存储设置为仅对每个服务器可用(没有共享的访问)。
- 每个存储集必须允许至少创建两个虚拟磁盘,一个用于复制的数据,另一个用于日志。 物理存储在所有数据磁盘上的扇区大小必须相同。物理存储在所有日志磁盘上的扇区大小必须相同。
- 每个服务器上必须具有至少一个用于同步复制的以太网/TCP 连接,但最好是 RDMA。
- 合适的防火墙和路由器规则,以允许所有节点之间的 ICMP、SMB(端口 445 以及用于 SMB 直通的 5445)和 WS-MAN(端口 5985)双向通信。
- 服务器间的网络具有足够的带宽,以包含 IO 写入工作负载和平均值为 5 毫秒的往返行程延迟(对于同步复制)。异步复制没有延迟建议。
- 复制的存储不能位于包含 Windows 操作系统文件夹的驱动器上。
-------------------------------------------------------------------------------
实现环境:
一台DC,2台加入域的数据中心版本Server2016,srv02,srv03,至少2G内存,测试环境建议4G,添加2块大小一样的磁盘。
1.创建复制伙伴关系
为Srv02和Srv03安装存储副本角色
在DC上,打开Power shell窗口,输入:
Invoke-Command -ComputerName SRV02,SRV03 -Command {Install-WindowsFeature -Name Storage-Replica,rsat-storage-replica,FS-FileServer -Restart }
检查安装状态
get-windowsFeature -computer srv02 -name Storage-Replica
get-windowsFeature -computer srv03 -name Storage-Replica
在SRV02,在C盘新建文件夹Logs,
使用Test-SRTopology命令来进行存储副本测试,运行如下PS命令:
Test-SRTopology -SourceComputerName SRV02 -SourceVolumeName e: -SourceLogVolumeName f: -DestinationComputerName SRV03 -DestinationVolumeName e: -DestinationLogVolumeName f: -DurationInMinutes 5 -ResultPath c:\Logs\
测试完成以后会生产测试报告,如下图所示:
确认测试报告没问题,使用New-SRPartnership命令来进行创建存储副本,具体命令如下:
New-SRPartnership -SourceComputerName SRV02 -SourceRGName SR-SRNode1 -SourceVolumeName e: -SourceLogVolumeName f: -DestinationComputerName SRV03 -DestinationRGName SR-SRNode2 -DestinationVolumeName e: -DestinationLogVolumeName f: -LogSizeInBytes 5GB -Verbose
创建完成后,发现SRV03数据盘已不可用
2.使用性能监示器监控复制性能
点击绿色添加按钮,添加名称为Storage ReplicaStatistics 所有的计数器
输入”CTRL+G”调整显示为”报告”模式
切换到Powershell窗口 输入命令:
Copy-Item C:\Windows\System32\Drivers e: -Recurse
切换到性能监视器,查看数据变化
3.配置反向复制
在这个步骤中我会将SRV03配置为源服务器,SRV02配置为目标服务器。
在Srv02上以管理员身份打开Windows PowerShell,键入如下PS命令:
Set-SRPartnership -NewSourceComputerName SRV03 -SourceRGName SR-SRNode2 -DestinationComputerName SRV02 -DestinationRGName SR-SRNode1 -Confirm:$False
结果看到SRV02的数据盘不可用。
3.删除复制副本
使用Get-SRGroup、Get-SRPartnership查询存储副本组和存储的伙伴关系
在SRV02上打开PS,输入:
Get-SRPartnership | Remove-SRPartnership -Confirm:$False
再输入:Remove-SRGroup -Name SR-SRNode1 选择”Y”删除复制
切换到SRV03打开PS,输入:
Remove-SRGroup -Name SR-SRNode2 选择”Y”删除复制
查看SRV02和SRV03的磁盘驱动器都已正常