04-华为HyperReplication中的多时间片技术
简介
多时间片技术,是应用于HyperReplication的异步远程复制;提高效率, 在同步远程复制中,没有这个概念;
时间片:在Cache中管理一段时间内写入数据的逻辑空间(数据大小没有限定);
HyperReplication,基于cache多时间快照技术,主端需要做COW时,主机IO写入Cache即可返回,不需要等COW完成后才返回,减少了COW对主机性能的影响,极大降低了远程复制同步数据时对主机的性能影响,同时远程复制拷贝数据时,主端直接从Cache读取拷贝数据,拷贝时延较小,使异步远程复制支持秒级RPO。
实现原理:
HyperReplication LUN异步远程复制基于多时间片缓存技术,周期性的同步主、从LUN的数据,上一次同步以来主LUN上发生的所有变化会在下一次同步时写到从LUN上。
OceanStor存储系统异步远程复制采用了创新的多时间片缓存技术(专利号:PCT/CN2013/080203),其实现原理如下:
1) 与同步远程复制类似,当主站点的主LUN和远端复制站点的从LUN建立异步远程复制关系以后,默认情况下会启动一个初始同步,将主LUN数据全量拷贝到从LUN;
2) 初始同步完成后,从LUN数据状态变为完整(即从LUN为主LUN的过去某个时刻的一致性拷贝),然后开始按照下面的流程进行I/O处理:
① 每当间隔一个同步周期(由用户设定,范围为3s~1440min),系统会自动启动一个将主站点数据增量同步到从站点的同步过程(如果同步类型为手动,则需要用户来触发同步)。每个复制周期启动时在主LUN(LUN A)和从LUN(LUN B)的缓存中产生新的时间片(TPN+1和TPX+1);
② 主站点接收生产主机写请求;
③ 主站点将写请求的数据写入Cache时间片TPN+1中,立即响应主机写完成;
④ 同步数据时,读取前一个周期主LUN(LUN A)Cache时间片TPN的数据,传输到从站点,写入从LUN(LUN B)Cache时间片TPX+1中;
若主站点Cache写缓存达到高水位时会自动将数据从Cache写入硬盘中,此时时间片TPN的数据会在盘上生成快照,同步时已写入硬盘的数据从快照中读取并复制到从LUN(LUN B);
⑤ 同步数据完成后,按照刷盘策略将主LUN(LUN A)和从LUN(LUN B)Cache中时间片TPN和TPX+1的数据下盘(生成的快照自动删除),等待下一个同步的到来。
多时间片缓存技术对LUN异步远程复制的影响
秒级RPO
HyperReplication基于多时间片缓存技术,可以使LUN异步远程复制的RPO指标达到秒级。
基于多时间片缓存技术,Cache中的数据和与Cache交互的IO都携带时间片信息,在进行复制时,可以直接从主LUN Cache中读取相应时间片的数据复制到从LUN,写从LUN时写入其Cache即可返回。而传统异步复制,每个周期需要创建、删除快照,复制时读数据需要从快照读取,写数据需要做快照处理。相对于传统技术,HyperReplication极大的缩短了复制周期,可以达到秒级RPO。
从LUN数据完全保护
OceanStor存储系统的异步远程复制支持对从LUN数据的完全保护。在从站点,主机对从LUN的读、写有权限控制,当同步中断或从LUN数据不可用时,可以将前一个TPX周期的数据恢复到从LUN,覆盖第TPX+1个周期的数据,使从LUN回退到最近一次同步开始前时间点的可用数据。
从LUN可写
OceanStor存储系统异步远程复制支持从LUN可写。默认情况下,异步远程复制从LUN是只读的,设置从LUN可写需满足以下两个条件:
1) 远程复制处于***或异常断开状态;
2) 远程复制从LUN数据必须是完整的(当从LUN数据不完整时,从LUN数据此时不可用,不能设置为从LUN可写)。
当设置从LUN可写时,若从LUN存在保护时间点TPX,则会触发回滚,将从LUN的数据回滚到TPx,使从LUN数据恢复到最近一次可用数据。
OceanStor存储系统支持对从LUN的写记录差异,当主站点生产阵列恢复后,可通过比较主从差异,进行增量同步来使得灾难恢复后业务快速回切。
04-华为HyperReplication中的多时间片技术的更多相关文章
- 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端
在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...
- Linux 中的零拷贝技术,第 1 部分
概述 本系列由两篇文章组成,介绍了当前用于 Linux 操作系统上的几种零拷贝技术,简单描述了各种零拷贝技术的实现,以及它们的特点和适用场景.本文是本系列文章的第一部分,主要是介绍一些零拷贝技术的相关 ...
- CSS3中新出现的技术
CSS3中新出现的技术 CSS媒体查询 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定 ...
- Android中通过进程注入技术改动广播接收器的优先级
前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...
- [转帖]Linux 中的零拷贝技术,第 1 部分
Linux 中的零拷贝技术,第 1 部分 https://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/index.html 引言 传统的 ...
- Android中通过进程注入技术修改广播接收器的优先级
前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broa ...
- 【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
(转自:http://blog.csdn.net/reille/article/details/7161942) 作者:reille 本博客网址:http://blog.csdn.net/reille ...
- 【Cocos2d-x游戏开发】Cocos2d-x中的数据存储技术
一.引言 数据存储和网络功能可以说是一款游戏中必不可少的功能,如果一款游戏不能保存进度那么它的可玩性必然大打折扣(试想一下,玩家辛辛苦苦玩了一整天的游戏,结果退出时告诉人家不能保存关卡信息,你明天还得 ...
- OpenGL中实现双缓冲技术
在OpenGL中实现双缓冲技术的一种简单方法: 1.在调用glutInitDisplayMode函数时, 开启GLUT_DOUBLE,即glutInitDisplayMode(GLUT_RGB | G ...
- Android中的接口回调技术
Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...
随机推荐
- 使用selenium、xpath、半自动点赞、自动登录
selenium等待元素加载 # 程序执行速度很快--->获取标签--->标签还没加载好--->直接去拿会报错 # 显示等待:当你要找一个标签的时候,给它单独加等待时间 # 隐士等待 ...
- ZEGO全新语音聊天室方案,2小时复刻 Clubhouse
真的火了! 新晋带货王马斯克在 Clubhouse"开房"之后,直接让 Clubhouse 爆火出圈,据说,Clubhouse 平台邀请码现在在ebay上已经卖到了快200刀一个. ...
- java学习中的一些总结
最近java要考试了,在复习的时候就发现什么成员变量,成员函数,静态,非静态,里面的一些东西都乱七八糟的(其实是我太菜了,没有理解透彻) 我查了很多相关的资料,网上很多大佬总结的非常好 知识点一 成员 ...
- Struts2 小知识点
配置struts.xml文件,选择开发模式 在实际应用开发或者是产品部署的时候,对应着两种模式: 开发模式(devMode):此时 DevMode=ture: 产品模式(proMode):此时 Dev ...
- Java解析CSV文件并导出数据
Java解析CSV文件并导出筛选过得数据 pom.xml引入jar包 <!--csv--> <dependency> <groupId>com.opencsv< ...
- 【问题解决】docker版本v23.0后,构建Dockerfile中FROM私库镜像报错构建失败
问题情况 Docker版本在v23.0以后,只要Dockerfile中FROM的私库镜像不存在本地,就会报错: # 我本地是v24.0.2版本Docker [root@localhost ipd]# ...
- Centos 8 时钟同步
Centos 8 时钟同步使用的是 chrony 参考:https://www.cnblogs.com/my-show-time/p/14658895.html $ rpm -qa | grep ch ...
- python: ImportError: cannot import name '_unicodefun' from 'click'
报错 报错原因 click模块版本问题 解决方案 指定click版本为8.0.4 参考链接 https://github.com/psf/black/issues/2964
- Cobalt Strike使用教程二
0x00 前言 继前一章介绍了Cobalt Strike的基本用法,本章接着介绍如何攻击.提权.维权等. 0x01 与Metasploit联动 Cobalt Strike → Metasploit m ...
- [golang]使用logrus自定义日志模块
简介 logrus是一个第三方日志库,性能虽不如zap和zerolog,但方便易用灵活.logrus完全兼容标准的log库,还支持文本.JSON两种日志输出格式. 特点 相较于标准库,logrus有更 ...