使用RDMA来扫描内存用于删除重复制造技术

技术编号:14024664 阅读:75 留言:0更新日期:2016-11-18 20:36
一种用于存储的方法,包括将多个内存页(42B)存储在第一计算节点(24B)的内存(36B)。使用经由通信网络(28)与第一计算节点进行通信的第二计算节点(24A),通过直接访问第一计算节点的内存来识别在第一计算节点的内存中存储的内存页中的重复的内存页。将所识别的重复的内存页中的一个或多个从第一计算节点中逐出。

【技术实现步骤摘要】
【国外来华专利技术】专利
本专利技术大体上涉及计算系统,并且具体涉及用于在计算节点中资源共享的方法和系统。专利技术背景机器虚拟化常用在各种计算环境中,诸如在数据中心和云计算中。在本领域中已知各种的虚拟化解决方案。例如,VMware公司(帕罗奥多,加州)提供用于诸如数据中心、云计算、个人桌面和移动计算的环境的虚拟化软件。在一些计算环境中,计算节点可以使用远程直接内存访问(RDMA)技术来直接访问其他计算节点的内存。例如,RDMA协议是在2007年10月的请求注解(RFC)5040的“A Remote Direct Memory Access Protocol Specification”中由Internet工程任务组的网络工作组指定,该文件通过引用并入本文。例如,在2003年4月的“RDMA Protocol Verbs Specification”版本1.0中对支持RDMA的网络接口卡(NIC)进行描述,该文件通过引用并入本文。专利技术概述本文描述的本专利技术的实施例提供用于存储的方法,该方法包括将多个内存页存储在第一计算节点的内存中。使用经由通信网络与第一计算节点进行通信的第二计算节点,通过直接访问第一计算节点的内存来识别在第一计算节点的内存中存储的内存页中的重复的内存页。将所识别的重复的内存页的一个或多个从第一计算节点中逐出。在实施例中,直接访问第一计算节点的内存包括使用远程直接内存访问(RDMA)协议来访问第一计算节点的内存。在一些实施例中,逐出重复的内存页包括对重复的内存页中的一个或多个删除重复,或者将重复的内存页中的一个或多个从第一计算节点转移到另一个计算节点。在其他实施例中,该方法包括计算内存页上相应的哈希值,以及识别重复的内存页包括直接从第一计算节点的内存读取哈希值并且识别具有相同的哈希值的内存页。在另外其他实施例中,计算哈希值包括使用网络接口卡(NIC)中的硬件来生成哈希值,该网络接口卡(NIC)将第一计算节点连接到通信网络。在实施例中,计算哈希值包括预计算第一计算节点中的哈希值并且将与相应的内存页相关的预计算的哈希值存储在第一计算节点中,以及读取哈希值包括直接从第一计算节点的内存中读取预计算的哈希值。在另一个实施例中,计算哈希值包括直接从第一计算节点的内存中读取相应的内存页的内容,并且在第二计算节点中计算关于该相应的内存页的内容的哈希值。在一些实施例中,逐出重复的内存页包括向第一计算节点提供候选内存页的逐出信息,该逐出信息指示第一计算节点中哪些内存页是用于逐出的候选。在其他实施例中,逐出重复的内存页包括重新计算候选内存页的哈希值,并且避免逐出自被第二计算节点扫描后已改变的内存页。在另外其他实施例中,逐出重复的内存页包括将写时复制保护应用于至少候选内存页,使得对于已改变的给定的候选内存页,第一计算节点将给定的候选内存页的相应的修改的版本存储在不同于给定的候选内存页的位置的位置中,并且不管候选内存页是否已经改变,逐出该候选内存页。在实施例中,该方法包括将逐出信息存储在一个或多个计算节点中,并且直接在一个或多个计算节点的相应的内存中访问该逐出信息。在另一个实施例中,逐出重复的内存页包括从第一计算节点接收实际被逐出的内存页的响应报告,并且根据该响应报告更新逐出信息。在又一个实施例中,该方法包括直接在第一计算节点和第二计算节点的内存之间共享响应报告。在一些实施例中,逐出重复的内存页包括共享关于第一计算节点中的页使用统计的信息,并且基于该页使用统计,决定用于逐出的候选内存页。在其他实施例中,该方法包括在第二计算节点中维护所逐出的内存页的访问信息,并且允许第一计算节点通过直接从第二计算节点的内存中读取访问信息来访问逐出的内存页。根据本专利技术的实施例,本专利技术另外提供了包括第一计算节点和第二计算节点的装置。第一计算节点包括内存并且被配置为在内存中存储多个内存页。第二计算节点被配置为经由通信网络与第一计算节点进行通信,通过直接访问第一计算节点的内存来识别在第一计算节点的内存中存储的内存页中重复的内存页,并且通知第一计算节点所识别的重复的内存页,以便促使第一计算节点将所识别的重复的内存页的一个或多个从第一计算节点中逐出。根据本专利技术的实施例,本专利技术另外提供了一种计算机软件产品,该计算机软件产品包括其中存储程序指令的非暂时性计算机可读介质,当指令被经由通信网络与存储多个内存页的第一计算节点进行通信的第二计算节点的处理器读取时,促使处理器通过直接访问第一计算节点的内存来识别在第一计算节点的内存中存储的内存页中重复的内存页,并且通知第一计算节点将所识别的重复的内存页的一个或多个从第一计算节点中逐出。根据结合附图进行的本专利技术的实施例的以下详细描述,本专利技术将被更完全地理解,其中:附图简述图1是根据本专利技术的实施例示意性示出计算系统的框图;以及图2是根据本专利技术的实施例示意性示出用于删除重复内存页的方法的流程图,该方法包括使用RDMA扫描其他计算节点中重复的内存页。具体实施方式概述各种计算系统(诸如,数据中心、云计算系统和高性能计算(HPC)系统)在由通信网络连接的计算节点的集群上运行虚拟机(VM)。为简洁起见,计算节点还被简称为“节点”。在许多的实际情况下,限制VM性能的主要瓶颈是缺乏可用内存。例如,有限的内存资源可以限制计算节点能同时托管的VM的数量。增加可用内存的一种可能的方式是对重复的内存页的删除重复。本文描述的本专利技术的实施例提供用于内存页删除重复的改进的方法和系统。在下面的描述中,虽然我们假设基本存储单元被称为内存页,但是所公开的技术适合于其他种类的基本存储单元。本文描述的方法和系统使得给定的计算节点能够使用直接内存访问技术来扫描另一个节点上或甚至跨整个节点集群的重复的内存页。在本专利技术的上下文中以及在权利要求中,诸如“对计算节点的内存的直接访问”和“直接从计算节点的内存读取”的术语指的是一种并不加载或以其他方式涉及该节点的CPU的内存访问。在一些实施例中,执行直接内存访问的示例协议包括RDMA协议,该RDMA协议例如,在计算节点的NIC上被实现为例如,一组RDMA协议原语。虽然我们主要将RDMA称为直接访问协议,但是也可以使用用于直接访问远程内存的任何其他合适的方法。内存资源使用效率低下的一个主要原因是单独的计算节点内和/或跨节点集群的某些内存页的复制副本的存储。例如,运行在一个或多个计算节点中的多个VM可以执行诸如例如操作系统(OS)的公用程序的重复的实例。用于通过将一个节点配置为使用RDMA来扫描另一个节点的内存页同时搜索要合并的重复的内存页来提高内存利用率的几个技术将在下面详细地进行描述。一种执行删除重复的方式是执行两个阶段。首先,应该识别重复的内存页,并且然后应该丢弃或以其他方式处理至少一些重复的页。通常,节点中的超级管理器将CPU资源分配给VM和分配给删除重复过程两者。由于重复的内存页的识别需要大量的CPU资源,CPU忙碌(例如,运行VM)的节点可能没有足够的CPU资源用于内存删除重复。因此,减少该节点中的重复的内存页可能是差的或被延迟。因为将扫描的内存页加载到CPU缓存中(还被称为缓存污染影响),另外,由本地CPU识别重复的内存页往往会降低VM性能。在所公开的技术中,在搜索重复的内存页中扫描给定的计算节点的内存页的任务本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201580016582.html" title="使用RDMA来扫描内存用于删除重复原文来自X技术">使用RDMA来扫描内存用于删除重复</a>

【技术保护点】
一种用于存储的方法,包括:将多个内存页存储在第一计算节点的内存中;使用经由通信网络与所述第一计算节点进行通信的第二计算节点,通过直接访问所述第一计算节点的内存来识别在所述第一计算节点的内存中存储的内存页中的重复的内存页;以及将所识别的重复的内存页中的一个或多个从所述第一计算节点中逐出。

【技术特征摘要】
【国外来华专利技术】2014.04.03 US 61/974,489;2014.11.18 US 14/543,9201.一种用于存储的方法,包括:将多个内存页存储在第一计算节点的内存中;使用经由通信网络与所述第一计算节点进行通信的第二计算节点,通过直接访问所述第一计算节点的内存来识别在所述第一计算节点的内存中存储的内存页中的重复的内存页;以及将所识别的重复的内存页中的一个或多个从所述第一计算节点中逐出。2.根据权利要求1所述的方法,其中,直接访问所述第一计算节点的内存包括使用远程直接内存访问(RDMA)协议来访问所述第一计算节点的内存。3.根据权利要求1所述的方法,其中,逐出所述重复的内存页包括对所述重复的内存页中的一个或多个进行删除重复,或者将所述重复的内存页中的一个或多个从所述第一计算节点转移到另一个计算节点。4.根据权利要求1-3中任一项所述的方法,还包括计算关于所述内存页的相应的哈希值,其中,识别重复的内存页包括直接从所述第一计算节点的内存读取所述哈希值并且识别具有相同的哈希值的内存页。5.根据权利要求4所述的方法,其中,计算所述哈希值包括使用网络接口卡(NIC)中的硬件来生成所述哈希值,所述网络接口卡将所述第一计算节点连接到所述通信网络。6.根据权利要求4所述的方法,其中,计算所述哈希值包括预计算所述第一计算节点中的哈希值并且将与相应的内存页相关联的预计算的哈希值存储在所述第一计算节点中,以及其中,读取所述哈希值包括直接从所述第一计算节点的内存中读取所述预计算的哈希值。7.根据权利要求4所述的方法,其中,计算所述哈希值包括直接从所述第一计算节点的内存中读取相应的内存页的内容,并且在所述第二计算节点中计算关于所述相应的内存页的内容的哈希值。8.根据权利要求1-3中任一项所述的方法,其中,逐出所述重复的内存页包括向所述第一计算节点提供候选内存页的逐出信息,所述逐出信息指示所述第一计算节点中的哪些内存页是用于逐出的候选。9.根据权利要求8所述的方法,其中,逐出所述重复的内存页包括重新计算所述候选内存页的哈希值,并且避免逐出自由所述第二计算节点扫描以来已改变的内存页。10.根据权利要求8所述的方法,其中,逐出所述重复的内存页包括将写时复制保护至少应用于所述候选内存页,使得对于已改变的给定的候选内存页,所述第一计算节点将所述给定的候选内存页的相应的修改的版本存储在不同于所述给定的候选内存页的位置的位置中,并且不管所述候选内存页是否已经改变,逐出所述候选内存页。11.根据权利要求8所述的方法,还包括将所述逐出信息存储在一个或多个计算节点中,并且直接访问在所述一个或多个计算节点的相应的内存中的所述逐出信息。12.根据权利要求8所述的方法,其中,逐出所述重复的内存页包括从所述第一计算节点接收实际被逐出的内存页的响应报告,并且根据所述响应报告更新所述逐出信息。13.根据权利要求12所述的方法,还包括直接在所述第一计算节点的内存和所述第二计算节点的内存之间共享所述响应报告。14.根据权利要求1-3中任一项所述的方法,其中,逐出所述重复的内存页包括共享关于所述第一计算节点中的页使用统计的信息,并且基于所述页使用统计,决定用于逐出的候选内存页。15.根据权利要求1-3中任一项所述的方法,还包括在所述第二计算节点中维护对所逐出的内存页的访问信息,并且允许所述第一计算节点通过直接从所述第二计算节点的内存中读取所述访问信息来访问所述逐出的内存页。16.一种装置,包括:第一计算节点,其包括内存并且其被配置为在所述内存中存储多个内存页;以及第二计算节点,其被配置为经由通信网络与所述第一计算节点进行通信,通过直接访问所述第一计算节点的内存来识别在所述第一计算节点的内存中存储的内存页中重复的内存页,并且...

【专利技术属性】
技术研发人员:阿贝尔·戈登穆利·本耶胡达本诺特·纪尧姆·查尔斯·胡德奇亚埃戴·博格纳
申请(专利权)人:斯特拉托斯卡莱有限公司
类型:发明
国别省市:以色列;IL

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

1