当前位置: 首页 > news >正文

Windows Server 2016 Storage Replica

Windows Server 2016 Storage Replica


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

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

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

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

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

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

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

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

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

clip_image002[5]

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

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

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

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

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

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

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

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

clip_image004[5]

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

clip_image006

1、创建复制伙伴关系

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

SRNode1:

clip_image007

clip_image008[5]

SRNode2:

clip_image009

clip_image010[5]

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

Invoke-Command -ComputerName SRNode1,SRNode2 -Command {Install-WindowsFeature -Name Storage-Replica,FS-FileServer -Restart }

clip_image012[5]

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

Test-SRTopology -SourceComputerName SRNode1 -SourceVolumeName d: -SourceLogVolumeName e: -DestinationComputerName SRNode2 -DestinationVolumeName d: -DestinationLogVolumeName e: -DurationInMinutes 5 -ResultPath c:\Log\

clip_image014

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

clip_image016

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

clip_image018

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

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

clip_image020

创建完成,如下图所示:

clip_image022

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

clip_image023

2、监控复制性能:

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

clip_image025

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

clip_image027

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

clip_image029

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

clip_image031

3、配置反向复制

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

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

Set-SRPartnership -NewSourceComputerName SRNode2 -SourceRGName SR-SRNode2 -DestinationComputerName SRNode1 -DestinationRGName SR-SRNode1 -Confirm:$False

clip_image033

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

clip_image035

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

clip_image037

4、删除复制副本

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

以管理员身份打开Windows PowerShell:

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

clip_image039

clip_image040[5]

使用如下命令删除复制:

Get-SRPartnership | Remove-SRPartnership -Confirm:$False

clip_image042

Remove-SRGroup -Name SR-SRNode2:

clip_image043

成功删除,如下图所示:

clip_image045

切换到SRNode1删除SRGroup:

Remove-SRGroup -Name SR-SRNode1

clip_image046[5]

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

clip_image048clip_image050

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

clip_image051

 clip_image052


本文转自wuyvzhang 51CTO博客,原文链接:http://blog.51cto.com/wuyvzhang/1867094,如需转载请自行联系原作者


相关文章:

  • 用MVC做支付宝手机网页支付问题
  • .net core Swagger 过滤部分Api
  • 一位台湾学校校长的演讲
  • k8s使用glusterfs实现动态持久化存储
  • MFC CListCtrl 表格
  • Semaphore
  • L1与L2正则化
  • centos7配置postfix dovecot cyrus-sasl foxmail
  • python利用openpyxl库操作Excel来读取、修改、写入测试数据
  • nginx添加几十个域名
  • ffmpeg获取视频封面图片
  • 源码包安装 以及升级内核 上课内容
  • 实现 el-table 拖拽行排序,并获取当前拖拽行的数据传入服务器
  • js的面向对象编程
  • GitLab在centos7上安装和使用
  • python3.6+scrapy+mysql 爬虫实战
  • [case10]使用RSQL实现端到端的动态查询
  • __proto__ 和 prototype的关系
  • Android交互
  • Android组件 - 收藏集 - 掘金
  • java8-模拟hadoop
  • JavaScript学习总结——原型
  • laravel 用artisan创建自己的模板
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PHP 小技巧
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • underscore源码剖析之整体架构
  • vue-cli3搭建项目
  • vuex 笔记整理
  • 当SetTimeout遇到了字符串
  • 基于遗传算法的优化问题求解
  • 排序算法学习笔记
  • 前端技术周刊 2019-01-14:客户端存储
  • 深入浅出Node.js
  • 思考 CSS 架构
  • 算法-插入排序
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一个JAVA程序员成长之路分享
  • 译有关态射的一切
  • 带你开发类似Pokemon Go的AR游戏
  • ​configparser --- 配置文件解析器​
  • ​Java并发新构件之Exchanger
  • ​批处理文件中的errorlevel用法
  • # centos7下FFmpeg环境部署记录
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #考研#计算机文化知识1(局域网及网络互联)
  • (52)只出现一次的数字III
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (四)汇编语言——简单程序
  • (算法)Travel Information Center
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转) Android中ViewStub组件使用
  • .Mobi域名介绍