首页 > 代码库 > Windows2016副本服务技术探讨

Windows2016副本服务技术探讨

同步复写机制:当采用「同步」复写机制时,系统将会保证每次的数据 IO 作业完成之前,都会将数据写入至少两个不同的位置之后,才会回复给上层的应用程序已完成 IO 作业。 所以,当来源端节点主机发生故障损坏事件时,便可以进行容错备援的切换动作,接着让应用程序使用目的端节点主机的数据快速恢复运作。因此,它适合应用于需要高可用性及灾难复原,也就是「零数据损失(Zero Data Loss)」的营运服务。

存储副本是Windows Server 2016中的一个新的功能,它是一种与传统存储设备种类(NAS/DAS/SAN)无关,基于Block级别的存储副本机制。存储副本支持采用同步复制和异步复制两种不同的数据复写方式,存储副本以SMB通讯协议来进行数据的复写和传送。它可以使用任何固定的磁盘存储,以及任何的存储结构。存储副本不需要群集技术,并且它可以使用故障转移群集管理器、PowerShell、WMI进行管理。

同步复制和异步复制两种不同的复写方式的区别如下:

下列为采用同步复写机制时,两端主机之间数据复写的动作如下:

1.应用程序发出写入数据需求。

2.来源端节点主机将数据写入至本地端储存资源「日志」当中,同时透过 SMB 3 协议将数据传输至目的端节点主机。

3.目的端节点主机,将所收到的数据写入至本地端储存资源「日志」当中。

4.目的端节点主机写入完成后,回复给来源端主机已完成 IO 动作。

5.来源端节点主机回复应用程序确认已完成 IO 动作。

技术分享

异步复写机制:当采用「异步」复写机制时,系统会在本地端完成 IO 作业后便立即回复给上层的应用程序,之后才将数据复写到另一个位置。因此,这样的数据复写机制仍然有数据遗失的风险存在,只能达成「近乎零数据损失(Near Zero Data Loss)」的运作环境,因此并不适合用于需要高可用性的运作环境中(例如,故障转移丛集)。

下列为采用异步复写机制时,两端主机之间数据复写的动作如下:

1.应用程序发出写入数据需求。

2.来源端节点主机将数据写入至本地端储存资源「日志」当中。

3.来源端节点主机回复应用程序确认已完成 IO 动作。

4.目的端节点主机,将所收到的数据写入至本地端储存资源「日志」当中

5.透过 SMB 3 协议将数据传输至目的端节点主机。

6.目的端节点主机写入完成后,回复给来源端主机已完成 IO 动作。

技术分享

在本次实验中,我将使用两台Windows Server 2016 Datacenter进行测试,两台服务器位于同一域(VCloud.Lab)内。我们假设两台服务器在不同楼层,以能够应对故障损坏。在Windows Server 2016中,并没有GUI界面可以进行配置,所以本次实验环境我们统一采用PowerShell进行配置。

 

1、创建复制伙伴关系

在本次实验中我分别为两台服务器增加了两块磁盘,分别是数据盘(Data),大小50GB;日志盘(Log),大小15GB。如下图所示:

SRNode1:

 

技术分享

SRNode2:

 

技术分享

为两台服务器安装存储副本角色,使用如下PS命令:

Command {Install-WindowsFeature -Name Storage-Replica,FS-FileServer -Restart }

 

使用Test-SRTopology命令来进行存储副本测试,运行如下PS命令:

Test-SRTopology -d: -SourceLogVolumeName e: -DestinationComputerName SRNode2 -DestinationVolumeName 

 

测试完成以后如下图所示:

技术分享

测试完成以后会生产测试报告,如下图所示:

 

使用New-SRPartnership命令来进行创建存储副本,具体命令如下所示:

New-SRPartnership D: -SourceLogVolumeName E: -DestinationComputerName SRNode2 -DestinationRGName SR-SRNode2 -DestinationVolumeName D: -DestinationLogVolumeName E: -LogSizeInBytes 5GB -Verbose

技术分享

创建完成,如下图所示:

技术分享

创建完成以后切换到节点SRNode2会发现其Data(D)盘已经不可用:

 

2、监控复制性能:

打开性能监视器,点击绿色的+:

技术分享

点击 Storage Replica Statistics,然后点击添加,点击确定:

 

运行如下PS命令进行测试Copy-Item C:\Windows\System32\Drivers 

 

数据开始复制以后观察性能监视器,如下图所示:

 

3、配置反向复制

在这个步骤中我会将SRNode2配置为源服务器,SRNode1配置为目标服务器。

以管理员身份打开Windows PowerShell,键入如下PS命令:

Set-SRPartnership -DestinationComputerName SRNode1 -DestinationRGName SR-SRNode1 -Confirm:$False

技术分享

命令执行完成,如下图所示:

技术分享

登陆到SRNode1可以看到D盘以标记为不可用:

技术分享

4、删除复制副本

在此步骤中我将删除Windows卷复制。

以管理员身份打开 PowerShell:

在开始删除之前,我将通过以下两个PS命令查询存储副本组和存储的伙伴关系:Get-SRGroup、Get-SRPartnership.如下图所示:

 

技术分享

使用如下命令删除复制:

Get-SRPartnership | Remove-SRPartnership -Confirm:False

 

Remove-SRGroup -Name SR-SRNode2:

技术分享

成功删除,如下图所示:

 

切换到SRNode1删除SRGroup:

Remove-SRGroup SR-SRNode1

技术分享

查看SRNode1和SRNode2的磁盘驱动器都已正常:

技术分享

确认每个服务器的D盘都存在之前复制的Drivers文件夹:

 

Windows2016副本服务技术探讨