简介

  多时间片技术,是应用于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中的多时间片技术的更多相关文章

  1. 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端

    在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...

  2. Linux 中的零拷贝技术,第 1 部分

    概述 本系列由两篇文章组成,介绍了当前用于 Linux 操作系统上的几种零拷贝技术,简单描述了各种零拷贝技术的实现,以及它们的特点和适用场景.本文是本系列文章的第一部分,主要是介绍一些零拷贝技术的相关 ...

  3. CSS3中新出现的技术

    CSS3中新出现的技术 CSS媒体查询 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定 ...

  4. Android中通过进程注入技术改动广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...

  5. [转帖]Linux 中的零拷贝技术,第 1 部分

    Linux 中的零拷贝技术,第 1 部分 https://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/index.html   引言 传统的 ...

  6. Android中通过进程注入技术修改广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broa ...

  7. 【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处

    (转自:http://blog.csdn.net/reille/article/details/7161942) 作者:reille 本博客网址:http://blog.csdn.net/reille ...

  8. 【Cocos2d-x游戏开发】Cocos2d-x中的数据存储技术

    一.引言 数据存储和网络功能可以说是一款游戏中必不可少的功能,如果一款游戏不能保存进度那么它的可玩性必然大打折扣(试想一下,玩家辛辛苦苦玩了一整天的游戏,结果退出时告诉人家不能保存关卡信息,你明天还得 ...

  9. OpenGL中实现双缓冲技术

    在OpenGL中实现双缓冲技术的一种简单方法: 1.在调用glutInitDisplayMode函数时, 开启GLUT_DOUBLE,即glutInitDisplayMode(GLUT_RGB | G ...

  10. Android中的接口回调技术

    Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...

随机推荐

  1. React后台管理系统07 首页布局

    注释掉App.tsx中的几个路由组件: 将Home.tsx中的代码使用ant Design网站中的布局进行替换 复制的代码如下: import { DesktopOutlined, FileOutli ...

  2. Task Execution and Scheduling In SpringBoot

    开天辟地 Task Execution and Scheduling In the absence of an Executor bean in the context, Spring Boot au ...

  3. 我坚定的认为,这个源码肯定是有 BUG 的!

    你好呀,我是歪歪. 上周我不是发了<我试图给你分享一种自适应的负载均衡.>这篇文章嘛,里面一种叫做"自适应负载均衡"的负载均衡策略,核心思路就是从多个服务提供者中随机选 ...

  4. 如何洞察 .NET程序 非托管句柄泄露

    一:背景 1. 讲故事 很多朋友可能会有疑问,C# 是一门托管语言,怎么可能会有非托管句柄泄露呢? 其实一旦 C# 程序与 C++ 语言交互之后,往往就会被后者拖入非托管泥潭,让我们这些调试者被迫探究 ...

  5. 怎样优雅地增删查改(一):从0开始搭建Volo.Abp项目

    @ 目录 项目介绍 模块化 由框架实现的 需要实现的 创建项目 创建业务模块 配置引用和依赖 配置DbContext 创建实体和Dto 配置AutoMapper 软件系统中数据库或者持久层的基本操作功 ...

  6. 【从0开始编写webserver·基础篇#03】TinyWeb源码阅读,还是得看看靠谱的项目

    [前言] 之前通过看书.看视频和博客拼凑了一个webserver,然后有一段时间没有继续整这个项目 现在在去看之前的代码,真的是相当之简陋,而且代码设计得很混乱,我认为没有必要继续在屎堆上修改了,于是 ...

  7. 将mongodb注册成windows(win10)的服务

    首先参考这个大佬的文章: 下载mongodb 然后解压 为了方便路径,我改了个名字MongoDB, 然后把它拖到了c盘的Program Files文件夹中 这样他的路径就是 (这个路径在很多地方都要用 ...

  8. 【教程】青少年CTF机器人使用教程

    前言 本期教程适用于版本号为2.0.1-Beta的青少年CTF机器人,其他版本可能与当前版本不同. 由于之前版本的机器人重构,所以我们细化了本次的机器人逻辑,并且对机器人的功能进行了一些升级. 机器人 ...

  9. [nginx]防范空主机头

    空主机头防范主要是防止别人恶意将域名解析到服务器IP上. 配置示例 方式一,增加vhost # http的空主机头防范 server { listen 80 default; server_name ...

  10. pentaho(keetle)数据同步实践

    pentaho(keetle)数据同步实践 1 pentaho简介 pentaho可读作"彭塔湖",在keetle被pentaho公司收购后改名而来. pentaho是一款开源ET ...