CN105980991A - 在多个计算节点之间的存储资源共享 - Google Patents

在多个计算节点之间的存储资源共享 Download PDF

Info

Publication number
CN105980991A
CN105980991A CN201480075283.4A CN201480075283A CN105980991A CN 105980991 A CN105980991 A CN 105980991A CN 201480075283 A CN201480075283 A CN 201480075283A CN 105980991 A CN105980991 A CN 105980991A
Authority
CN
China
Prior art keywords
memory page
node
storage
agency
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480075283.4A
Other languages
English (en)
Inventor
穆利·本-耶胡达
埃戴·博格纳
阿里尔·麦斯罗斯
沙洛莫·马蒂钦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Stratos Calle Co Ltd
Strato Scale Ltd
Original Assignee
Stratos Calle Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stratos Calle Co Ltd filed Critical Stratos Calle Co Ltd
Publication of CN105980991A publication Critical patent/CN105980991A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种方法,包括:在多个计算节点(24)上运行相应的存储共享代理(48),存储共享代理在通信网络(28)上相互通信。访问存储页面的一个或多个本地虚拟机(VM‑70)运行在给定的计算节点上。通过使用存储共享代理,将由本地VM访问的存储页面储存在计算节点中的至少两个计算节点上,并将所储存的存储页面供应给本地VM。

Description

在多个计算节点之间的存储资源共享
发明领域
本发明总体上涉及计算系统,尤其是涉及在计算节点之间共享资源的方法和系统。
发明背景
机器虚拟化经常用于多种计算环境,诸如用于数据中心和云计算。在本领域中已知多种虚拟化方案。例如,加利福尼亚州Palo Alto市的VMware,Inc.提供了用于各种环境(诸如,数据中心、云计算、个人桌面和移动计算)的虚拟化软件。
公开内容以引用的方式并入本文的美国专利8,266,238描述了一种装置,其包括设置成储存数据的物理存储器以及设置成支持虚拟机监控器(VMM)的芯片组。VMM设置成将虚拟机的虚拟存储器地址空间的区域内的虚拟存储器地址映射到网络地址,以便收集由客操作系统做出的存储器读取或写入访问,以便确定针对大于装置的物理存储器上可用的物理存储器地址范围的存储器地址,发生了存储器读取或写入访问,并从而将对应于存储器读取或写入访问的数据读取或写入请求转发至与多个虚拟存储器地址之一对应的多个网络地址之一相关的网络设备。
公开内容以引用的方式并入本文的美国专利8,082,400描述了用于共享存储池的固件,该存储池包括系统的多个计算节点中的至少一个计算节点中的至少一个物理存储器。固件将存储池分区为多个存储器空间,该存储器空间被分配成给至少一些计算节点中的一些对应的计算节点,并且固件将至少一个物理存储器的一部分映射到存储器空间。存储空间中的至少一个包括来自多个计算节点中的另一个计算节点的物理存储器部分。
公开内容以引用的方式并入本文的美国专利8,544,004描述了基于聚类的操作系统-未知虚拟计算系统。在实施例中,使用常规的计算机硬件实现了节点的基于聚类的收集。提供了一种软件,该软件使至少一个VM能够存在于客操作系统,其中采用虚拟机参与的每个节点具有自身的模拟器或VMM。通过钩子(hook)提供了VM存储一致性和I/O一致性,这导致对内部处理器结构的处理。专用网络提供了多个节点之间的通信。
发明概述
本文中描述的本发明的实施例提供了一种方法,包括:在多个计算节点上运行相应的存储共享代理,所述存储共享代理在通信网络上相互通信。访问存储页面的一个或多个本地虚拟机(VM)运行在给定的计算节点上。通过使用存储共享代理,将由本地VM访问的存储页面储存在计算节点中的至少两个计算节点上,并将所储存的存储页面供应给本地VM。
在一些实施例中,运行存储共享代理包括:根据预定义的准则,将由本地VM访问的存储页面分类为经常访问的存储页面和很少访问的存储页面,并通过使用存储共享代理仅仅处理很少访问的存储页面。在一些实施例中,运行存储共享代理包括:将储存在给定的计算节点上的存储页面分类为主要由本地VM写入的并且很少由本地VM读取的存储页面、主要由本地VM读取的并且很少由本地VM写入的存储页面、以及很少由本地VM写入并且很少由本地VM读取的存储页面,并基于给定的存储页面的分类,决定是否从给定的计算节点输出给定的存储页面。
在一个公开的实施例中,储存存储页面包括:将存储页面引入到存储共享代理,将存储共享代理中的一个定义为拥有引入的存储页面,并通过使用存储共享代理中的所述一个来储存引入的存储页面。在一个实施例中,运行所述存储共享代理包括:在多个计算节点上保持给定的存储页面的不多于预定义数量的副本。
在另一个实施例中,储存存储页面包括:响应于在给定的计算节点中的存储压力状况,选择储存在给定的计算节点上的存储页面,并且在通过使用存储共享代理证实了在多个计算节点中储存了至少预定数量的副本的所选择的存储页面的条件下,从给定的计算节点删除所选择的存储页面。在又一个实施例中,储存存储页面包括:响应于在给定的计算节点中的存储压力状况,选择储存在给定的计算节点上的存储页面,并通过使用存储共享代理,将所选择的存储页面输出给另一个计算节点。
在一个实施例中,供应存储页面包括:响应于本地VM访问没有储存在给定的计算节点上的存储页面,通过使用存储共享代理提取存储页面。提取存储页面可包括:从给定的计算节点的本地存储共享代理向被定义为拥有存储页面的第一计算节点的第一存储共享代理发送针对其上储存有存储页面的第二计算节点的身份的查询,并向第二计算节点请求存储页面。在一个实施例中,提取存储页面包括:与发送查询无关,向已知储存了存储页面的副本的计算节点请求存储页面。
根据本发明的实施例,另外提供了一种系统,包括:多个计算节点,其包括相应的存储器和相应的处理器,其中,给定的计算节点的处理器被设置成运行访问存储页面的一个或多个本地虚拟机(VM),且其中,处理器被设置成运行相应的在通信网络上相互通信的存储共享代理,并且处理器被设置成通过使用存储共享代理,将由本地VM所访问的存储页面储存在计算节点中的至少两个计算节点上,并将所储存的存储页面供应给本地VM。
根据本发明的实施例,还提供了包括存储器和处理器的计算节点。处理器设置成:运行访问存储页面的一个或多个本地虚拟机(VM),并运行存储共享代理,所述存储共享代理在通信网络上与运行在相应的其他计算节点上的一个或多个其他存储共享代理进行通信,从而将由所述本地VM访问的存储页面储存在所述计算节点的所述存储器中和在所述其他计算节点中的至少一个计算节点上,以及从而将所储存的存储页面供应给所述本地VM。
根据本发明的实施例,还提供了一种计算机软件产品,所述产品包括:在其中储存了程序指令的有形非暂时性计算机可读介质,当由运行了访问存储页面的一个或多个本地虚拟机(VM)的计算节点的处理器读取时,所述指令使得所述处理器运行存储共享代理,所述存储共享代理在通信网络上与运行在相应的其他计算节点上的一个或多个其他存储共享代理进行通信,从而将所述本地VM访问的存储页面储存在所述计算节点的存储器中和在其他计算节点中的至少一个计算节点上,以及从而将所储存的存储页面供应给所述本地VM。
从结合附图进行的本发明的实施例的以下详细描述,本发明将被更完全地理解,其中:
附图简述
图1为根据本发明的实施例示意性示出计算节点的集群的方框图;
图2是根据本发明的实施例,示意性示出用于保持或输出存储页面的准则的图示;
图3是根据本发明的实施例,示意性示出分布式存储共享架构的图示;
图4为根据本发明的实施例,示意性示出用于在计算节点的集群之间共享存储页面的后台过程的流程图;
图5是根据本发明的实施例,示意性示出用于减轻在计算节点中的存储压力的方法的流程图;
图6是根据本发明的实施例,示意性示出用于将存储页面提取到计算节点的方法的流程图;并且
图7为根据本发明的实施例,示意性示出存储页面的生命周期的状态图。
具体实施方式
综述
多种计算系统(诸如,数据中心、计算系统和高性能计算(HPC)系统)在由通信网络连接的计算节点的集群上运行虚拟机(VM)。在很多实际情况中,限制VM性能的主要瓶颈是缺乏可用的存储器。当使用常规虚拟化方案时,节点的平均利用趋向于近似于10%或以下,主要是因为存储器的低效使用。这样的低利用意味着节点的昂贵的计算资源很大程度上是空闲的或浪费的。
本文描述的本发明的实施例提供用于在集群范围中共享存储资源的方法和系统。本文描述的方法和系统使得在给定的计算节点上运行的VM能够无缝地使用在集群中的其他节点的存储资源。特别是,经受存储压力的节点能够利用具有空闲存储器的其他节点的存储资源。
在一些实施例中,每个节点运行相应的存储器共享代理,本文中称之为分布式页面储存(DPS)代理。统称为DPS网络的DPS代理相互通信,以便协调存储页面的分布式储存。通常,每个节点旨在使其本地存储器中仅保存有少量经常由本地VM访问的存储页面。其他存储页面可作为针对从节点可能的迁出的候补,而被引入到DPS网络。将存储页面引入到DPS网络通常由本地管理程序(如后台进程)在每个节点中执行。
DPS网络可采用多种方式将之前引入的存储页面从本地节点迁出。例如,如果在集群范围中存在足够数量的页面的副本,则可从本地节点删除页面。这种处理被称为重复数据删除(de-duplication)。如果页面的副本的数量不允许重复数据删除,则页面可被输出至另一个节点。后者的处理被称为远程交换。下面具体描述示例存储共享架构、示例重复数据删除和远程交换进程。还描述了示例“页面调入”过程,其提取远程储存页面供由本地VM使用。
本文描述的方法和系统解决了限制集群节点利用的存储可用性瓶颈。当使用所公开的技术时,给定的计算强度中的一个集群可执行较重的工作负载。可选地,使用较小且较少的昂贵的集群可执行给定的工作负载。在任一情况中,集群的成本效益都得到相当大地改善。对于运行很多VM的较大的集群来说,所公开的技术的性能收益特别显著,但可采用任何合适的集群大小或环境,来使用本文描述的方法和系统。
系统描述
图1是根据本发明的实施例示意性示出计算系统20的方框图,计算系统20包括许多计算节点24的集群。例如,系统20可包括数据中心、云计算系统、高性能计算(HPC)系统、或任何其他合适的系统。
计算节点24(为了简洁,而简称为“节点”)通常包括服务器,但可以可选地包括任何其他合适类型的计算节点。系统20可包括任何合适数量的节点,这些节点或是相同类型,或是不同类型。节点24由通常是局域网(LAN)的通信网络28连接。网络28可根据任何合适的网络协议(诸如以太网或Infiniband)运行。
每个节点24均包括中央处理单元(CPU)32。取决于计算节点的类型,CPU32可包括多个处理核心和/或多个集成电路(IC)。无论具体的节点配置,节点的处理电路作为整体在本文中当作节点CPU。每个节点24还包括存储器36(通常是易失性存储器,诸如动态随机存取存储器-DRAM)以及用于与网络28进行通信的网络接口卡(NIC)44。节点24中的一些(而不必是全部节点)包括非易失性存储设备40(例如,磁性硬盘驱动-HDD-或固态驱动-SSD)。
节点24通常运行虚拟机(VM),其转而运行客户应用。在一些实施例中,在给定的节点上运行的VM访问储存在多个节点上的存储页面。出于在多个节点24之间共享存储资源的目的,每个节点的CPU运行分布式页面储存(DPS)代理48。在多个节点中的DPS代理48通过网络28相互通信,用于如以下将具体解释地协调存储页面的储存。在本文中,将多个DPS代理共同称为“DPS网络”。也将DPS代理48称为“DPS守护进程”、“存储共享守护进程”或简称为“代理”或“守护进程”。在本文中,可互换地使用全部这些术语。
在图1中显示的系统和计算节点配置是示例配置,仅仅为了概念上清晰起见而被选择。在可选实施例中,可使用任何其他合适的系统和/或节点配置。可使用硬件/固件,诸如在一个或多个特定用途集成电路(ASIC)或现场可编程门阵列(FPGA)中实施设备20的多种组件,特别是实施节点24的组件。可选地,可在软件中,或使用硬件/固件与软件组件的组合,来实施一些系统或节点组件(例如CPU32)。在一些实施例中,CPU32包括通用处理器,所述通用处理器在软件中被编程以执行在本文中描述的功能。可经由网络以电子形式将软件下载到处理器,例如,或者所述软件可以可选地或附加地被提供和/或存储在非暂时性有形媒介上,诸如磁存储器、光学存储器或电子存储器。
系统概念和原理
在系统20的典型部署中,节点24运行VM,VM转而运行客户应用。并不是每个节点在任何给定时间都必须运行VM,给定的节点可运行单一VM或多个VM。每个VM都消耗计算资源(例如,CPU、存储器、储存器、和网络通信资源)。在很多实际场景中,限制系统性能的主要因素是缺乏存储器。换句话说,缺少可用的存储器经常限制系统运行更多的VM和应用。
在本发明的一些实施例中,在给定的节点24上运行的VM不限于仅使用该节点的存储器36,而是能够使用在其他节点中可用的存储资源。通过共享整个节点集群之中的存储资源,并通过随着时间调节存储器的共享,相当大地改善了全部存储利用。作为结果,给定大小的节点集群能够处理更多的VM和应用。可选地,给定工作负载可由较小的集群执行。
在一些情况中,相比于常规方案的在本地节点中由VM储存所有存储页面来说,所公开的技术可使得单独的VM的性能稍微退化。然而,在针对VM而定义的服务水平协议(SLA)之内,这种退化经常是良好的,并且很值得资源利用的显著增长。换句话说,通过允许单独的VM的性能的稍微的可容忍的退化,所公开的技术使给定的计算节点集群能够运行数量大得多的VM,或者在小得多的集群上运行给定数量的VM。
在系统20中的存储资源的共享由DPS网络(即,在多个节点中的DPS代理48)执行和协调。DPS网络使存储共享对于VM来说是透明的:VM访问存储页面,而与储存该存储页面的真实物理节点不相关。
在以下描述中,基本存储单元是存储页面。为了简洁,存储页面有时被简称为“页面”。在各个实施例中,存储页面的大小可以相互不同,例如,取决于所使用的操作系统(OS)。典型的页面大小是4KB,然而可使用任何其他合适的页面大小(例如,2MB或4MB)。
为了使系统性能最大化,系统20对由VM访问的多个存储页面进行分类,并且决定哪个存储器36(即,在节点24上)储存每个页面。管理这些决定的准则考虑到:例如,VM对页面的使用和访问概要,以及故障容限(即,在不同的节点上保存足够数量的页面的副本,以避免丢失数据)。
在一些实施例中,并不是所有存储页面都由DPS网络处理,而是一些页面可由节点的OS在本地处理。通常由节点上运行的管理程序执行页面的分类,并决定是在本地处理页面还是共享页面,—以下将进一步描述。
在一个示例实施例中,根据一些预定义的准则,每个节点对由其本地VM访问的存储页面进行分类。通常,节点将页面分类为经常访问页面和很少访问页面。经常访问页面由OS存储于节点上,并由OS在节点上进行本地处理。很少访问页面通过节点的本地DPS代理被引入到DPS网络,以用于对其他节点进行潜在的输出。在一些情况中,如以下将解释的,分类为用于读取而访问的页面以及用于写入而访问的页面,并进行有区分地处理。
在这种分类后面的原理是,在远程节点上储存经常访问页面代价很高(例如,依据延时和处理负载)。另一方面,在远程节点上储存很少使用页面,将对性能影响小。另外的或可选地,系统20可使用其他的、更细的粒度的准则。
图2是根据本发明的实施例,示意性示出用于保持或输出存储页面的示例准则的图示。在这个示例中,每个节点将存储页面分类为三类:类50包括由本地VM写入的页面(并且可能地由本地VM读取的页面),类54包括主要(例如,仅仅)由本地VM读取的、并且很少(例如,从不)由本地VM写入的页面,类58包括很少(例如,从不)由本地VM写入或读取的页面。随着时间推移,页面可根据它们的访问统计,从一类移动到另一类。
节点有区分地处理每类的页面。例如,节点试图将类50中的页面(由本地VM写入的页面)本地地存储于节点上。类54中的页面(仅由本地VM从中读取的页面)可本地地保持,但也可输出给其他节点,并且若有必要的话,可被允许由运行在其他节点上的VM访问。根据需要,节点尝试将类58中的页面(本地VM既不写入、又不从中读取的页面)输出给其他节点。
在大多数实际情况中,类50相对小,类54是中等大小,并且类58包括绝大多数的页面。因此,当使用以上的准则时,每个节点保存本地仅很少数量的、既从中读取又写入其中的经常访问页面。根据需要,其他页面可被移动到其他节点,而没有相当大的性能损害。
应注意的是,以上给定的页面分类和共享准则仅以示例的方式描绘。在可选实施例中,可使用任何其他合适的共享准则和/或分类。此外,将共享准则和/或分类当作目标或指导方针,系统根据需要可偏离共享准则和/或分类。
示例存储共享架构
图3是根据本发明的实施例,示意性示出在系统20中使用的分布式存储共享架构的图示。图的左手侧显示了在给定节点24的CPU上运行的组件,将其称为本地节点。系统20中的每个节点24通常以相似的方式实施。图的右手侧显示了与本地节点相互作用的其他节点的组件。在本地节点(图中的左手侧)中,组件被划分为内核空间(图的下部)和用户空间(图的上部)。后者的划分主要是实施驱动的,而不是强制性的。
在本示例中,每个节点运行在功能性上类似于以上图1中的DPS代理48的相应的用户空间DPS代理60,并运行内核空间节点页面管理器(NPM)64。节点运行管理程序68,管理程序被划分为用户空间管理程序组件72和内核空间管理程序组件76。在本示例中,虽然不是必须的,然而用户空间管理程序组件基于QEMU,并且内核空间管理程序组件基于Linux/KVM。管理程序68运行一个或多个VM78,并为VM提供资源,诸如存储器、储存器、以及CPU资源。
DPS代理60包括三个主要组件-页面储存器80、传输层84以及片段组件88。页面储存器80保持储存在节点上的存储器页面的真实内容(数据)。传输层84负责与其他节点的同级传输层84进行通信和交流。在DPS代理60中的管理应用程序编程接口(API)92与管理层96进行通信。
片段88保持存储页面的元数据。例如,页面的元数据可包括页面的存储位置和对页面内容计算出的散列值。页面的散列值用作唯一的识别符,其识别集群范围中的页面(及其相同的副本)。散列值还被称作全球唯一内容ID(GUCID)。注意,散列仅是签名的示例形式,或者仅是可用于对页面内容进行索引的索引的示例形式。可选地,可使用任何其他合适的签名或索引方案。
连带地,所有节点24的片段88共同地保持在系统20中的所有存储页面的元数据。每个片段88保持页面的子集的元数据,不必保持储存在相同节点上的页面的元数据。对于给定的页面,保持该页面的元数据的片段被定义为“拥有”该页面。很多技术可用于将页面分配给片段。在本示例中,每个片段88分配有相应范围的散列值,并拥有其散列值落入这个范围之中的页面。
从片段88的观点上,对于给定的所拥有的页面,每个节点24可以是三种角色之中的一种:
■“起源”-页面存储(可能以压缩的形式)在节点的存储器中,并由至少一个本地VM使用。
■“存储”-页面存储(可能以压缩的形式)在节点的存储器中,但并不由任何本地VM使用。
■“从属”-页面并不存储在节点的存储器中,但至少一个本地VM依赖于该页面,并可在任何时间访问该页面。
片段88通常是对每个所拥有的页面维持有三个列表的节点-“起源”角色的节点的列表、“存储”角色的节点的列表、以及“从属”角色的节点的列表。每个节点24可属于各个列表中的至多一个列表,但每个列表可包含多个节点。
NPM64包括内核空间本地页面追踪器90,其作为页面储存器80的内核侧组件。从逻辑上,页面追踪器90可视作属于DPS代理60。NPM还包括引入过程93和换出(swap-out)过程94。引入过程93将页面引入到DPS网络。换出过程94处理针对输出给其他节点的候补的页面。以下进一步具体描述过程93和过程94的功能。虚拟存储管理模块96提供了对于管理程序和/或架构的潜在存储管理功能性(例如,将虚拟机的地址空间映射进来或映射出去的功能)的接口。
图3中显示的架构和功能性划分仅仅是通过示例的方式来描绘的。在可选的实施例中,可在很多节点中以任何其他合适的方式实施存储共享方案。
将页面选择性后台引入到DPS网络
在一些实施例中,每个节点24的管理程序68运行后台过程,该后台过程决定哪个存储页面将要由OS进行本地处理,以及哪个页面将使用DPS代理在集群范围中共享。
图4为根据本发明的实施例,示意性示出用于将页面引入到DPS网络的后台过程的流程图。在扫描步骤100,每个节点24的管理程序68连续地扫描由在节点上运行的本地VM所访问的存储页面。对于给定的页面,在使用检查步骤104,管理程序检查页面是经常访问是还是很少访问的。如果页面是经常使用的,管理程序继续将页面本地地储存在节点上。方法循环回到步骤100,在步骤100中,管理程序继续扫描存储页面。
另一方面,如果发现页面是很少使用的,则管理程序可决定将页面引入到DPS网络,以用于可能的共享。管理程序计算页面内容之上的散列值(可被称作散列键),并将页面和散列值提供给引入过程93。通过使用任何合适的散列功能(例如,使用产生160比特(20字节)的散列值的SHA1函数),页面内容可被散列化处理。
引入过程93将页面以及散列值一起经由本地DPS代理60引入到DPS网络。通常,页面内容被储存在本地节点的页面储存器80,并且被定义为拥有该页面的DPS代理(可能在另一个节点上)将页面元数据储存在其片段88中。从这个点,页面和其元数据对于其他节点的DPS代理来说是可访问的。然后,方法可循环回到以上的步骤100。
监管程序68通常在后台中连续地执行图4中的选择性引入过程,无论节点是否经受了存储压力。如此,当节点遭受到存储压力时,DPS网络已知道作为从节点迁出的候补的存储页面,并且DPS网络能快速反应以化解存储压力。
作为针对存储压力的方案的重复数据删除和远程交换
在一些实施例中,DPS代理60通过运行集群范围中的重复数据删除,化解了在节点24中的存储压力状况。在很多实际情况中,在不同的节点上运行的不同的VM使用具有相同内容的存储页面。例如,当运行在不同节点上的VM的多个实例时,包含VM内核代码的存储页面通常将通过节点集群被复制多次。
在一些场景中,保存这种页面的少量副本、使这些副本对于所有相关的VM可用并删除不必要的副本是有意义的。这种进程被称为重复数据删除。如能够理解的,重复数据删除使节点能够释放本地内存,从而释放存储压力。重复数据删除通常应用于已被引入到DPS网络的页面。同样地,重复数据删除经常被考虑仅用于并不经常访问的页面。
应在集群范围中保存的给定的存储页面的副本的最小数量取决于故障容限考虑因素。例如,为了免于单节点故障,有必要在不同节点上保存给定页面的至少两个副本,以使得如果其中之一出故障,则在其他节点上的副本仍可用。可使用更大的数量的副本,以便以存储效率为代价,提供较高程度的故障容限。在一些实施例中,这个最小数量是系统20中的可设置的系统参数。
由DPS代理60使用的另一个集群范围中的过程被称为远程交换,以便化解存储压力。在这个过程中,DPS网络将存储页面从第一节点的存储器36(经受存储压力)移动到第二节点的存储器36(具有可用的存储资源)。第二节点可以以压缩形式储存页面。如果存储压力是暂时的,所交换的页面可在晚些时候被归还给初始节点。
图5是根据本发明的实施例,示意性示出用于减轻在系统20的计算节点24中的存储压力的方法的流程图。当某个节点24的管理程序68检测到存储压力时,要么检测到一般在节点中的存储压力,要么在给定VM中的存储压力,方法开始。
在一些实施例中,管理程序68定义了要分配给VM的存储大小的阈值下限和阈值上限,例如,必须分配给VM的页面的最小数量,以及允许分配给VM的页面的最大数量。管理程序可检测存储压力,例如,通过识别VM使用的页面的数量太大(例如,因为数量接近阈值上限或是因为相同节点上的其他VM为存储而竞争)。
根据检测存储压力,在页面选择步骤120,管理程序选择在此前已被引入到DPS网络的存储页面。管理程序通过使用重复数据删除过程,检查是否有可能删除所选择的页面。如果不可能进行重复数据删除,则管理程序转而通过使用远程交换过程,将所选择的页面迁出到另一个节点。
在重复数据删除检查步骤124,管理程序检查是否可能进行重复数据删除。通常,管理程序查询本地DPS代理60在集群范围中所选择的页面的副本的数量是否多于N(N指的是要求用于故障容限的副本的最小数量)。本地DPS代理向其片段88被分配拥有所选择的页面的DPS代理60发送这个查询。
在重复数据删除步骤128,如果所述拥有的DPS代理报告在集群范围中存在页面的多于N个的副本,则本地DPS代理从其页面储存器88中删除本地副本的页面。在更新步骤136,本地DPS代理向所述拥有的DPS代理通知重复数据删除操作。所述拥有的DPS代理更新了片段88中的页面的元数据。
另一方面,在远程交换步骤132,如果所述拥有的DPS代理在步骤124报告在集群范围中有页面的N个或更少的副本,则本地DPS代理启动页面的远程交换。通常,本地DPS代理请求其他的DPS代理储存页面。作为响应,其他DPS代理中的一个DPS代理将页面储存在其页面储存器88中,并且本地DPS代理从其页面储存器删除页面。决定哪个节点应储存页面可取决于:例如,不同节点上当前可用的存储资源,节点之间的网络的相对速率和容量,不同节点上的当前CPU负载,哪个节点在晚些时候可能需要这个页面的内容,或者任何其他合适的考虑因素。在步骤136,所述拥有的DPS代理更新了片段88中的页面的元数据。
在以上的示例中,如果不可能进行重复数据删除,则本地DPS代理转而进行远程交换。在一个可选的实施例中,如果对于所选择的页面不可能进行重复数据删除,则管理程序选择不同的(之前引入的)页面,并作为替代地,尝试对其进行重复数据删除。也可使用任何其他合适的逻辑,以便优先安排用于释放存储压力的可选的活动。
在任一情况中,图5中的方法的最终结果是本地VM使用的存储页面已从本地存储器36移除。当本地VM请求访问这个页面时,DPS网络运行“页面调入”过程,从其当前的储存位置检索页面,并使其对于发出请求的VM可用。
图6为根据本发明的实施例,示意性示出用于将远程储存的存储页面提取给计算节点24的示例页面调入过程的流程图。当某个节点24(被称为本地节点)上的VM访问存储页面时,该过程开始。在位置检查步骤140,本地节点的管理程序68检查所请求的页面是否本地地储存在节点中。在本地供应步骤144,如果页面储存在本地节点的存储器36中,则管理程序从本地存储器提取页面,并将页面供应给发出请求的VM。
另一方面,在页面调入请求步骤148,如果管理程序发现所请求的页面没有本地地储存,则管理程序向本地DPS代理60请求该页面。在拥有者询问步骤152,响应该请求,本地DPS代理查询DPS网络以便识别被分配拥有所请求的页面的DPS代理,并且本地DPS代理向所述拥有的DPS代理请求页面。
在远程供应步骤156,本地DPS代理从DPS网络接收页面,本地管理程序将页面恢复到本地存储器36中,并将页面供应给发出请求的VM。如果DPS网络针对故障容限存储页面的多个副本,则本地DPS代理负责基于由所述拥有的DPS代理提供的信息,检索并返回有效的副本。
在一些实施例中,本地DPS代理具有关于存储所请求的页面的节点(或多个节点)的身份的先验信息。在这种情况中,在直接请求步骤160,本地DPS代理可向已知节点(或多个节点)的DPS代理(或多个代理)直接请求页面。步骤160通常并行于步骤152执行。因此,本地DPS代理可不止一次地接收所请求的页面。通常,所述拥有的DPS代理负责确认保持页面的副本的任何节点将不会返回无效的或已删除的页面。例如,无论什么时候页面状态将要被改变(例如,当准备删除页面时),本地DPS代理都可与其他DPS代理运行多级协议。
图7为根据本发明的实施例,示意性示出存储页面的生命周期的状态图。当VM第一次写入页面时,页面的生命周期开始。因此,页面的初始状态是写入活跃状态170。只要该页面被写入达到频繁的间隔,该页面就保持在这种状态。
如果在一定时间周期中,页面没有被写入,则页面过渡到写入不活跃状态174。当页面被散列化处理并被引入到DPS网络时,页面状态改变为散列写入不活跃状态178。如果在处于状态174(写入不活跃)或178(散列写入不活跃)时页面被写入,则页面过渡回到写入活跃状态170,并且执行写入时复制(COW)。如果页面的散列值与另一个本地页面的散列键冲突(即,一致),则冲突被化解,并且两个页面合并为单一的页面,从而节省了存储器。
当页面处于散列写入不活跃状态178时,如果在一定时间周期中没有发生读取访问,则页面过渡到散列不活跃状态182。从这种状态,VM的读取访问将使页面过渡到写入不活跃状态178(读取页面故障)。VM的写入访问将使页面过渡到写入活跃状态170。在这种情况中,页面也从DPS网络移除(即,不被所述拥有的片段88引用)。
当页面处于散列不活跃状态182时,存储压力(或抢先迁出过程)可决定迁出页面(要么使用重复数据删除,要么使用远程交换)。因此,页面过渡到“不存在”状态186。从状态186,页面可过渡到写入活跃状态170(响应于写入访问,或响应于与写入相关的页面调入请求),或可过渡到写入不活跃状态178(响应于读取访问,或响应于与读取相关的页面调入请求)。
将要理解的是,以上描述的实施例是通过示例的方式引用的,并且本发明不限于上文中已经特别示出和描述的那些。相反,本发明的范围包括上文所描述的各种特征以及本领域技术人员在阅读以上描述之后将想到的且未在现有技术中公开的其变型和修改的组合和子组合。通过引用结合在本专利申请中的文档被视为本申请的组成部分,除了在这些结合的文档中定义的任何术语与本说明书中明确地或隐含地作出的定义冲突时,仅应考虑本说明书中的定义。

Claims (22)

1.一种方法,包括:
在多个计算节点上运行相应的存储共享代理,所述存储共享代理在通信网络上相互通信;
在给定的计算节点上运行一个或多个访问存储页面的本地虚拟机(VM);以及
使用所述存储共享代理,将由所述本地VM访问的存储页面储存在所述计算节点中的至少两个计算节点上,并将所储存的存储页面供应给所述本地VM。
2.根据权利要求1所述的方法,其中,运行所述存储共享代理包括:根据预定义的准则,将由所述本地VM访问的存储页面分类为经常访问的存储页面和很少访问的存储页面,并使用所述存储共享代理仅仅处理所述很少访问的存储页面。
3.根据权利要求1所述的方法,其中,运行所述存储共享代理包括:将储存在所述给定的计算节点上的存储页面分类为主要由所述本地VM写入的并且很少由所述本地VM读取的存储页面、主要由所述本地VM读取的并且很少由所述本地VM写入的存储页面、以及很少由所述本地VM写入并且很少由所述本地VM读取的存储页面,并基于对来自所述给定的计算节点的给定的存储页面的分类,决定是否输出所述给定的存储页面。
4.根据权利要求1中任意一项所述的方法,其中,储存所述存储页面包括:将存储页面引入到所述存储共享代理,将所述存储共享代理中的一个定义为拥有所引入的存储页面,并使用所述存储共享代理中的所述一个储存所述引入的存储页面。
5.根据权利要求1所述的方法,其中,运行所述存储共享代理包括:在所述多个计算节点上保持给定的存储页面的不多于预定义数量的副本。
6.根据权利要求1所述的方法,其中,储存所述存储页面包括:响应于在所述给定的计算节点中的存储压力状况,选择储存在所述给定的计算节点上的存储页面,并且在通过使用所述存储共享代理证实了在所述多个计算节点中储存了所选择的存储页面的至少预定数量的副本的条件下,从所述给定的计算节点删除所述选择的存储页面。
7.根据权利要求1所述的方法,其中,储存所述存储页面包括:响应于在所述给定的计算节点中的存储压力状况,选择储存在所述给定的计算节点上的存储页面,并使用所述存储共享代理将所选择的存储页面输出到另一个计算节点。
8.根据权利要求1-7中任意一项所述的方法,其中,供应所述存储页面包括:响应于本地VM访问没有储存在所述给定的计算节点上的存储页面,使用所述存储共享代理提取所述存储页面。
9.根据权利要求8所述的方法,其中,提取所述存储页面包括:从所述给定的计算节点的本地存储共享代理向被定义为拥有所述存储页面的第一计算节点的第一存储共享代理发送针对其上储存有所述存储页面的第二计算节点的身份的查询,并向所述第二计算节点请求所述存储页面。
10.根据权利要求9所述的方法,其中,提取所述存储页面包括:与发送所述查询无关,向已知储存了所述存储页面的副本的计算节点请求所述存储页面。
11.一种包括多个计算节点的系统,所述多个计算节点包括:相应的存储器和相应的处理器,
其中,给定的计算节点的处理器被设置成运行访问存储页面的一个或多个本地虚拟机(VM),
以及,其中,所述处理器被设置成运行相应的在通信网络上相互通信的存储共享代理,并被设置成通过使用所述存储共享代理,将由所述本地VM访问的存储页面储存在所述计算节点中的至少两个计算节点上,并将所储存的存储页面供应给所述本地VM。
12.根据权利要求11所述的系统,其中,所述处理器被设置成:根据预定义的准则,将由所述本地VM访问的存储页面分类为经常访问的存储页面和很少访问的存储页面,且其中,所述处理器被设置成通过使用所述存储共享代理仅仅处理所述很少访问的存储页面。
13.根据权利要求11所述的系统,其中,所述处理器被设置为:将储存在所述给定的计算节点上的存储页面分类为主要由所述本地VM写入的并且很少由所述本地VM读取的存储页面、主要由所述本地VM读取的并且很少由所述本地VM写入的存储页面、以及很少由所述本地VM写入并且很少由所述本地VM读取的存储页面,并基于对来自所述给定的计算节点的给定的存储页面的分类,决定是否输出所述给定的存储页面。
14.根据权利要求11所述的系统,其中,所述处理器被设置为:将存储页面引入到所述存储共享代理,且其中,所述处理器被设置成将所述存储共享代理中的一个定义为拥有所引入的存储页面,并通过使用所述存储共享代理中的所述一个来储存所述引入的存储页面。
15.根据权利要求11所述的系统,其中,所述处理器被设置成:在所述多个计算节点上保持给定的存储页面的不多于预定义数量的副本。
16.根据权利要求11所述的系统,其中,响应于在所述给定的计算节点中的存储压力状况,所述处理器被设置成:选择储存在所述给定的计算节点上的存储页面,并且在通过使用所述存储共享代理证实了在所述多个计算节点中储存了所选择的存储页面的至少预定数量的副本的条件下,从所述给定的计算节点删除所选择的存储页面。
17.根据权利要求11所述的系统,其中,响应于在所述给定的计算节点中的存储压力状况,所述处理器被设置成:选择储存在所述给定的计算节点上的存储页面,并通过使用所述存储共享代理将所选择的存储页面输出给另一个计算节点。
18.根据权利要求11-17中任意一项所述的系统,其中,响应于本地VM访问没有储存在所述给定的计算节点上的存储页面,所述处理器被设置成通过使用所述存储共享代理,提取所述存储页面。
19.根据权利要求18所述的系统,其中,所述处理器被设置成通过以下操作来提取所述存储页面:从所述给定的计算节点的本地存储共享代理向被定义为拥有所述存储页面的第一计算节点的第一存储共享代理发送针对其上储存有所述存储页面的第二计算节点的身份的查询,并向所述第二计算节点请求所述存储页面。
20.根据权利要求19所述的系统,其中,所述处理器被设置成:通过向已知储存了所述存储页面的副本的计算节点请求所述存储页面,来提取所述存储页面,而与发送所述查询无关。
21.一种计算节点,包括:
存储器;以及
处理器,其被设置成:运行访问存储页面的一个或多个本地虚拟机(VM),并运行存储共享代理,所述存储共享代理在通信网络上与运行在相应的其他计算节点上的一个或多个其他存储共享代理进行通信,从而将由所述本地VM访问的存储页面储存在所述计算节点的存储器中和所述其他计算节点中的至少一个计算节点上,以及从而将所储存的存储页面供应给所述本地VM。
22.一种计算机软件产品,所述产品包括在其中储存了程序指令的有形非暂时性计算机可读介质,当由运行访问存储页面的一个或多个本地虚拟机(VM)的计算节点的处理器读取时,所述指令使得所述处理器运行存储共享代理,所述存储共享代理在通信网络上与运行在相应的其他计算节点上的一个或多个其他存储共享代理进行通信,从而将由所述本地VM访问的存储页面储存在所述计算节点的存储器中和所述其他计算节点中的至少一个计算节点上,以及从而将所储存的存储页面供应给所述本地VM。
CN201480075283.4A 2014-02-17 2014-12-25 在多个计算节点之间的存储资源共享 Pending CN105980991A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/181,791 2014-02-17
US14/181,791 US20150234669A1 (en) 2014-02-17 2014-02-17 Memory resource sharing among multiple compute nodes
PCT/IB2014/067327 WO2015121722A1 (en) 2014-02-17 2014-12-25 Memory resource sharing among multiple compute nodes

Publications (1)

Publication Number Publication Date
CN105980991A true CN105980991A (zh) 2016-09-28

Family

ID=53798201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480075283.4A Pending CN105980991A (zh) 2014-02-17 2014-12-25 在多个计算节点之间的存储资源共享

Country Status (4)

Country Link
US (1) US20150234669A1 (zh)
EP (1) EP3108370A4 (zh)
CN (1) CN105980991A (zh)
WO (1) WO2015121722A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255412A (zh) * 2016-12-29 2018-07-06 北京京东尚科信息技术有限公司 用于分布式文件储存的方法及装置
CN109902127A (zh) * 2019-03-07 2019-06-18 腾讯科技(深圳)有限公司 历史态数据处理方法、装置、计算机设备及存储介质
CN111090687A (zh) * 2019-12-24 2020-05-01 腾讯科技(深圳)有限公司 数据处理方法及装置、系统、计算机可读存储介质
CN107329798B (zh) * 2017-05-18 2021-02-23 华为技术有限公司 数据复制的方法、装置和虚拟化系统
CN113906384A (zh) * 2019-05-28 2022-01-07 美光科技公司 人工神经网络(ann)应用程序中的存储器即服务

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075647B2 (en) * 2011-08-01 2015-07-07 International Business Machines Corporation Preemptive guest merging for virtualization hypervisors
WO2015130837A1 (en) * 2014-02-25 2015-09-03 Dynavisor, Inc. Dynamic information virtualization
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9524328B2 (en) 2014-12-28 2016-12-20 Strato Scale Ltd. Recovery synchronization in a distributed storage system
WO2016135570A1 (en) 2015-02-26 2016-09-01 Strato Scale Ltd. Using access-frequency hierarchy for selection of eviction destination
US9665534B2 (en) * 2015-05-27 2017-05-30 Red Hat Israel, Ltd. Memory deduplication support for remote direct memory access (RDMA)
US20170003997A1 (en) * 2015-07-01 2017-01-05 Dell Products, Lp Compute Cluster Load Balancing Based on Memory Page Contents
CN105260136B (zh) * 2015-09-24 2019-04-05 北京百度网讯科技有限公司 数据读写方法及分布式存储系统
US10095605B2 (en) * 2015-09-24 2018-10-09 Red Hat, Inc. Debugger write interceptor
US10277477B2 (en) * 2015-09-25 2019-04-30 Vmware, Inc. Load response performance counters
WO2017074491A1 (en) * 2015-10-30 2017-05-04 Hewlett Packard Enterprise Development Lp Data locality for hyperconverged virtual computing platform
US10439960B1 (en) * 2016-11-15 2019-10-08 Ampere Computing Llc Memory page request for optimizing memory page latency associated with network nodes
US10339065B2 (en) * 2016-12-01 2019-07-02 Ampere Computing Llc Optimizing memory mapping(s) associated with network nodes
US10761752B1 (en) * 2017-05-23 2020-09-01 Kmesh, Inc. Memory pool configuration for allocating memory in a distributed network
US11086524B1 (en) * 2018-06-27 2021-08-10 Datadirect Networks, Inc. System and method for non-volatile memory based optimized, versioned, log-structured metadata storage with efficient data retrieval
TWI688859B (zh) * 2018-12-19 2020-03-21 財團法人工業技術研究院 記憶體控制器與記憶體頁面管理方法
CN109711192B (zh) * 2018-12-24 2021-10-01 众安信息技术服务有限公司 区块链系统节点间交易方法及系统
US11256624B2 (en) 2019-05-28 2022-02-22 Micron Technology, Inc. Intelligent content migration with borrowed memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120210042A1 (en) * 2011-02-10 2012-08-16 Lim Kevin T Remote memory for virtual machines
US20130326109A1 (en) * 2012-05-30 2013-12-05 Avi Kivity Dynamic optimization of operating system and virtual machine monitor memory management
CN103577345A (zh) * 2012-07-19 2014-02-12 Lsi公司 提高由多个系统共享的存储高速缓存灵活性的方法和结构

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204718A1 (en) * 2008-02-08 2009-08-13 Lawton Kevin P Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication
US8041877B2 (en) * 2008-06-09 2011-10-18 International Business Machines Corporation Distributed computing utilizing virtual memory having a shared paging space
EP2449469B1 (en) * 2009-06-29 2019-04-03 Hewlett-Packard Enterprise Development LP Hypervisor-based management of local and remote virtual memory pages
US9032398B2 (en) * 2010-07-12 2015-05-12 Vmware, Inc. Online classification of memory pages based on activity level represented by one or more bits
US9152573B2 (en) * 2010-11-16 2015-10-06 Vmware, Inc. Sharing memory pages having regular expressions within a virtual machine
US9619263B2 (en) * 2011-06-11 2017-04-11 Microsoft Technology Licensing, Llc Using cooperative greedy ballooning to reduce second level paging activity
US8954698B2 (en) * 2012-04-13 2015-02-10 International Business Machines Corporation Switching optically connected memory
US9940228B2 (en) * 2012-06-14 2018-04-10 Vmware, Inc. Proactive memory reclamation for java virtual machines
US9053068B2 (en) * 2013-09-25 2015-06-09 Red Hat Israel, Ltd. RDMA-based state transfer in virtual machine live migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120210042A1 (en) * 2011-02-10 2012-08-16 Lim Kevin T Remote memory for virtual machines
US20130326109A1 (en) * 2012-05-30 2013-12-05 Avi Kivity Dynamic optimization of operating system and virtual machine monitor memory management
CN103577345A (zh) * 2012-07-19 2014-02-12 Lsi公司 提高由多个系统共享的存储高速缓存灵活性的方法和结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TIA NEWHALL等: "Reliable Adaptable Network RAM", 《2008 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255412A (zh) * 2016-12-29 2018-07-06 北京京东尚科信息技术有限公司 用于分布式文件储存的方法及装置
CN107329798B (zh) * 2017-05-18 2021-02-23 华为技术有限公司 数据复制的方法、装置和虚拟化系统
CN109902127A (zh) * 2019-03-07 2019-06-18 腾讯科技(深圳)有限公司 历史态数据处理方法、装置、计算机设备及存储介质
CN109902127B (zh) * 2019-03-07 2020-12-25 腾讯科技(深圳)有限公司 历史态数据处理方法、装置、计算机设备及存储介质
CN113906384A (zh) * 2019-05-28 2022-01-07 美光科技公司 人工神经网络(ann)应用程序中的存储器即服务
CN111090687A (zh) * 2019-12-24 2020-05-01 腾讯科技(深圳)有限公司 数据处理方法及装置、系统、计算机可读存储介质
CN111090687B (zh) * 2019-12-24 2023-03-10 腾讯科技(深圳)有限公司 数据处理方法及装置、系统、计算机可读存储介质

Also Published As

Publication number Publication date
EP3108370A1 (en) 2016-12-28
WO2015121722A1 (en) 2015-08-20
US20150234669A1 (en) 2015-08-20
EP3108370A4 (en) 2017-08-30

Similar Documents

Publication Publication Date Title
CN105980991A (zh) 在多个计算节点之间的存储资源共享
US11636015B2 (en) Storage system and control software deployment method
US10747618B2 (en) Checkpointing of metadata into user data area of a content addressable storage system
US20210247973A1 (en) Virtualized file server user views
US10754575B2 (en) Storage system with replication process utilizing simulated target responses
US10365980B1 (en) Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization
Srinivasan et al. Aerospike: Architecture of a real-time operational dbms
CN106663022A (zh) 对使用外部化存储页面的虚拟机的实时迁移
US11245774B2 (en) Cache storage for streaming data
CN104506589A (zh) 一种基于超融合存储的资源迁移调度方法
CN103558992A (zh) 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
KR20180057639A (ko) 선택적 리소스 이동을 이용하는 네트워크 결합 메모리
KR102043276B1 (ko) 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
US11199972B2 (en) Information processing system and volume allocation method
CN103176845A (zh) 一种虚拟机部署方法、系统和装置
US20160098302A1 (en) Resilient post-copy live migration using eviction to shared storage in a global memory architecture
CN106133703A (zh) 使用rdma来扫描内存用于删除重复
CN105468296A (zh) 基于虚拟化平台的无共享存储管理方法
CN109669822A (zh) 电子装置、备用存储池的创建方法和计算机可读存储介质
US20210117235A1 (en) Storage system with efficient release of address lock waiters during synchronous replication
US11086558B2 (en) Storage system with storage volume undelete functionality
US20140310488A1 (en) Logical Unit Management using Differencing
US20190020716A1 (en) Method and system for recovering data in distributed computing system
US20150212847A1 (en) Apparatus and method for managing cache of virtual machine image file
CN107528871A (zh) 存储系统中的数据分析

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160928