使用远程直接内存访问(RDMA)复制数据制造技术

技术编号:14706795 阅读:82 留言:0更新日期:2017-02-25 14:05
示例实现方式涉及使用远程直接内存访问(RDMA)复制数据。在示例实现方式中,可响应于映射命令而注册地址。可使用RDMA复制数据。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
应用程序可以使用虚拟地址从易失性高速缓存读取数据并且将数据写入易失性高速缓存。写入易失性高速缓存的数据的主副本可以存储在本地非易失性存储器中。由应用程序使用的虚拟地址可以与本地非易失性存储器的相应物理地址对应。附图说明以下详细说明参考附图,其中图1是包括编码有响应于映射命令而注册地址的指令的机器可读存储介质的示例装置的框图;图2是包括编码有使恢复点目标能够实施的指令的机器可读存储介质的示例装置的框图;图3是包括编码有使能够跟踪数据远同步的完成的指令的机器可读存储介质的示例装置框图;图4是响应于映射命令而使地址能够注册的示例系统的框图;图5是用于实施一顺序的示例系统的框图,其中数据以该顺序在远程存储实体中复制。图6是用于数据远程同步的示例系统的框图。图7是用于为远程直接内存访问注册地址的示例方法的流程图。图8是用于在远程存储实体中复制数据的示例方法的流程图;以及图9是用于实施恢复点目标的示例方法的流程图。具体实施方式在应用程序服务器上运行的应用程序可以将数据写入易失性高速缓存,并且将数据的本地副本存储在应用程序服务器的非易失性存储器中。数据的远程副本可以存储在远程位置(诸如存储服务器)的非易失性存储器中。使用远程直接内存访问(RDMA),数据可以从应用程序服务器传输到远程服务器。RDMA可以减少CPU在数据传输方面的开销,但是与内存访问相比,可能具有长的等待时间。每次启动RDMA,就会产生数据的本地副本,并且在将附加数据写入易失性高速缓存之前等待将要完成的RDMA,与通过使用RDMA进行数据传输节省的时间和资源相比,会消耗更多的时间和资源。鉴于以上所述,本专利技术的公开提供:响应于映射命令而注册地址,减少RDMA的等待时间。此外,本专利技术的公开在启动RDMA之前,使应用程序能够累积来自多个本地写入操作的数据,减少用于将数据传输到远程位置的RDMA的数量。现在参考附图,图1是包括编码有响应于映射命令而注册地址的指令的机器可读存储介质的示例装置100的框图。如本文所使用的,术语“包含”、“具有”、以及“包括”是可互换的并且应该被理解为具有相同的含义。在一些实现方式中,装置100可以操作为应用程序服务器和/或可以是应用程序服务器的一部分。在图1中,装置100包括处理器102和机器可读存储介质104。处理器102可以包括中央处理单元(CPU)、微处理器(例如,基于半导体的微处理器),和/或其它适于获取和/或执行存储在机器可读存储介质104中的指令的其它硬件器件。处理器102可以提取、解码和/或执行指令106、108和110。作为获取和/或执行指令的可替代方案或者除了获取和/或执行指令之外,处理器102可以包括电子电路,该电子电路包括用于执行指令106、108和/或110的功能的电子部件。机器可读存储介质104可以是任何合适的电子的、磁性的、光学的、或者其它包含或存储可执行指令的物理存储装置。因此,机器可读存储介质104可以包括,例如,RAM、电可擦除可编程只读存储器(EEPROM)、存储装置、光盘等。在一些实现方式中,机器可存储介质104可以包括非瞬态存储介质,其中术语“非瞬态”不包括瞬态传播的信号。如在下面详细描述的,机器可读存储介质104可以编码有一组可执行指令106、108和110。指令106可以响应于映射命令而注册由映射命令指定的多个第一虚拟地址。映射命令可以由在应用程序服务器上运行的应用程序发出,并且可以促使多个第一虚拟地址中的每一个第一虚拟地址被分配到应用程序服务器的非易失性存储器(NVM)的相应物理地址。如本文所使用的,术语“非易失性存储器”(缩写为“NVM”),应该被理解为指的是即使没有供电也会保留存储的数据的存储器。应用程序可以使用多个第一虚拟地址来访问在应用程序服务器的易失性存储器上的数据。应用程序写入到多个第一虚拟地址中的一个第一虚拟地址的数据也可以写入到与应用程序服务器的NVM的相应物理地址对应的位置,以使万一应用程序服务器断电,也可以获得数据的本地副本。数据副本也可以在远程存储实体中产生,以使在数据的本地副本损坏或丢失的情况下可以获得数据副本。如在本文中所使用的,术语“远程存储实体”应该被理解为指的是存储数据且不同于发出映射命令的实体的实体。例如,映射命令可以来自应用程序服务器,其可以包括其中数据副本可以本地存储的NVM。数据副本也可以存储在远程存储实体的NVM中,其可以是存储服务器。在远程存储实体中存储数据副本的动作在本文中指的是“复制数据”。注册多个第一虚拟地址会导致多个第一地址被传送到远程存储实体,其会生成要被用于远程存储实体的NVM的RDMA的多个第二虚拟地址。RDMA可以用于将数据传输到远程存储实体,使得用于复制数据的CPU开销可以被最小化。在一些实现方式中,多个第二虚拟地址可以由远程存储实体上的网络适配器生成。在一些实现方式中,多个第二虚拟地址可以由本地网络适配器(例如在应用程序服务器上)生成。网络适配器可以针对每个映射命令而生成虚拟地址的单独集合。虽然注册了多个第一虚拟地址,但是多个第一虚拟地址以及远程存储实体的NVM的数据复制在其中的地址可以被固定,以防止操作系统(OS)修改或移动存储在那些地址处的数据。可以由在应用程序服务器上运行的应用程序发出同步命令。存储在由同步命令指定的虚拟地址处的数据在本文中指的是与同步命令“相关联”。响应于同步命令,与同步命令相关联的数据可以存储在应用程序服务器的NVM中。例如,响应于同步命令,应用程序服务器上的易失性高速缓存或者缓冲器可以被刷新到应用程序服务器的NVM,使得在易失性高速缓存/缓冲器中的数据的本地副本可以在应用程序服务器的NVM中被创建。在一些实现方式中,同步命令可以指定多个虚拟地址、虚拟地址范围或者多个虚拟地址范围。每个同步命令可以包括相应同步命令中的最后地址的端部处的边界指示。尽管与同步命令相关联的数据在执行同步命令之后可以被立即复制,但是如果在远程存储实体中复制与同步命令相关联的数据之前执行多个同步命令,则资源(例如,用于注册地址和建立RDMA连接的时间和处理能力)可能被更加有效地使用。指令108可以识别与指定多个第一虚拟地址中的任意第一虚拟地址的多个同步命令相关联的数据。在一些实现方式中,指令108可以将与多个同步命令相关联的数据复制到用于累积要被复制的数据的数据结构。在一些实现方式中,指令108可以设定在页面表中的页面的复制位元,其包括与任意多个同步命令相关联的数据。在与多个同步命令相关联的数据被复制之前,多个同步命令可都被执行(例如,与多个同步命令相关联的数据可以被复制到应用程序服务器上的NVM)。与多个同步命令相关联的数据可以响应于远程同步命令(rsync)而被复制。远程同步命令可以促使复制与在先前远程同步命令之后发出的任意同步命令相关联的所有数据。如果应用程序服务器上没有完成同步命令的执行(例如,如果响应于同步命令而从应用程序服务器的易失性高速缓存刷新的数据还没有到达应用程序服务器的NVM),则应用程序服务器不会将远程同步命令传送到远程存储实体;应用程序服务器可以等待,直到在传送远程同步命令之前已经完成所有未完成的同步命令的执行。执行远程同步命令可以产生应用程序一致性点,在该一本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201480079789.html" title="使用远程直接内存访问(RDMA)复制数据原文来自X技术">使用远程直接内存访问(RDMA)复制数据</a>

【技术保护点】
一种编码有由处理器可执行的指令的机器可读存储介质,所述机器可读存储介质包括:用于响应于映射命令而注册由所述映射命令指定的多个第一虚拟地址的指令;用于识别与指定所述多个第一虚拟地址中的任意第一虚拟地址的多个同步(sync)命令相关联的数据的指令;以及用于响应于远程同步(rsync)命令而发起远程直接内存访问(RDMA)以根据所述多个同步命令中的边界指示而在远程存储实体中复制所识别的数据的指令。

【技术特征摘要】
【国外来华专利技术】1.一种编码有由处理器可执行的指令的机器可读存储介质,所述机器可读存储介质包括:用于响应于映射命令而注册由所述映射命令指定的多个第一虚拟地址的指令;用于识别与指定所述多个第一虚拟地址中的任意第一虚拟地址的多个同步(sync)命令相关联的数据的指令;以及用于响应于远程同步(rsync)命令而发起远程直接内存访问(RDMA)以根据所述多个同步命令中的边界指示而在远程存储实体中复制所识别的数据的指令。2.根据权利要求1所述的机器可读存储介质,进一步包括:用于将多个第二虚拟地址中的每一个第二虚拟地址与所述多个第一虚拟地址中的相应一个第一虚拟地址相关联的指令,其中所识别的数据在所述远程存储实体的存储器位置中复制,所述存储器位置对应于所述多个第二虚拟地址中的、与所述多个第一虚拟地址中由所述多个同步命令指定的相应第一虚拟地址相关联的相应第二虚拟地址。3.根据权利要求1所述的机器可读存储介质,其中所识别的数据在所述远程存储实体的基于忆阻器的非易失性存储器中复制。4.根据权利要求1所述的机器可读存储介质,进一步包括:用于响应于所述映射命令而启动计时器的指令;以及用于当所述计时器达到预定值时生成所述远程同步命令的指令。5.根据权利要求1所述的机器可读存储介质,进一步包括:用于在所述多个同步命令已经执行之后使用所述RDMA传送所述远程同步命令的指令。6.根据权利要求1所述的机器可读存储介质,进一步包括:用于保持确认计数器以跟踪与所述多个同步命令相关联的数据的复制完成的指令。7.一种系统,包括:地址识别模块,所述地址识别模块用于响应于映射命令而识别非易失性存储器(NVM)中的多个存储器地址,其中所述映射命令包括多个第一虚拟地址;地址生成模块,所述地址生成模块用于响应于所述映射命令而生成多个第二虚拟地址;其中:所述多个第二虚拟地址中的每一个第二虚拟地址针对NVM的远程直接内存访问(RDMA)进行注册,并且与所述多个第一虚拟地址中的相应一个第一虚拟地址相关联;并且所述多个第二虚拟地址中的每一个第二虚拟地址与所识别的所述NVM中的多个存储器地址中的相应一个存储器地址对应;以及复制模块,所述复制模块用于使用RDMA并响应于远程同步(rsync)命令而复制与指定所述多个第一虚拟地址中的任...

【专利技术属性】
技术研发人员:道格拉斯·L·弗格特
申请(专利权)人:慧与发展有限责任合伙企业
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1