CN104750559B - 跨多节点的存储器资源的池化 - Google Patents

跨多节点的存储器资源的池化 Download PDF

Info

Publication number
CN104750559B
CN104750559B CN201410857910.1A CN201410857910A CN104750559B CN 104750559 B CN104750559 B CN 104750559B CN 201410857910 A CN201410857910 A CN 201410857910A CN 104750559 B CN104750559 B CN 104750559B
Authority
CN
China
Prior art keywords
memory
node
pool
shared
memory controller
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.)
Expired - Fee Related
Application number
CN201410857910.1A
Other languages
English (en)
Other versions
CN104750559A (zh
Inventor
D·达斯夏尔马
M·J·库马尔
B·T·弗莱舍尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104750559A publication Critical patent/CN104750559A/zh
Application granted granted Critical
Publication of CN104750559B publication Critical patent/CN104750559B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

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)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本文说明了一种用于跨多个节点池化存储器资源的装置。装置包括共享存储器控制器,其中,多个节点的每一个节点都连接到共享存储器控制器。装置还包括连接到共享存储器控制器的存储器池,其中,存储器池的一部分分配给多个节点的每一个节点。

Description

跨多节点的存储器资源的池化
技术领域
本公开内容总体上涉及多节点系统中的存储器资源。具体而言,本公开内容涉及跨多节点池化存储器资源。
背景技术
系统可以包括各种节点,每一个都执行特定的功能。系统包括但不限于,网络或机架式服务器系统等。在一些情况下,各种节点可以一起工作以完成相似的任务。节点还可以执行与由系统的其他节点执行的任务无关的不同任务。系统还可以包括资源,例如计算资源、存储器资源、以及输入/输出(I/O)资源。当网络的节点内的进程尝试访问存储器服务时,可以访问I/O栈的存储器管理服务以完成请求的存储器服务。
附图说明
通过参考附图会更好地理解以下的详细说明,附图包含公开的主题的多个目的和特征的特定示例。
图1是可以访问池化的存储器资源的节点100的方框图;
图2是可以通过一个或多个共享存储器控制器(SMC)访问池化的/分解的存储器的多节点系统的图示;
图3是为了各种用途分配给每一个节点的分解的存储器的图示;以及
图4是用于跨多节点池化存储器资源的过程流程图。
在本公开内容和附图通篇中使用相同的编号来参考相似的部件和特征。100系列的编号指代图1中最初见到的特征;200系列的编号指代图2中最初见到的特征;诸如此类。
具体实施方式
在多节点系统中,取决于在每一个节点的需求,可以将一组资源动态地分配给不同节点。如上所述,典型地访问存储器资源要通过I/O栈,例如传输控制协议/网际协议(TCP/IP)或InfiniBand(IB)。使用I/O栈来支持存储器服务引入了多层软件交互。例如,在加载操作、存储操作、读操作、写操作、请求操作过程中涉及了I/O栈。结果,由节点的存储器访问会遭受到使用I/O栈所引起的过度时延和瓶颈。即使在系统包括存储器服务器的情况下,I/O栈仍需要在每一个节点处的专用存储器,以便访问存储器服务器。
本文所述的实施例涉及跨多节点池化存储器资源。在实施例中,多节点系统的每一个节点都连接到一个或多个共享存储器控制器(SMC)。每一个节点都连接到一个或多个SMC。每一个SMC都连接到存储器池,其可以是动态随机存取存储器(DRAM)、固态驱动器(SSD)、或任何其他非易失性存储器(NVM)或存储技术的组合。SMC使用易失性和非易失性存储器为每一个节点提供基于负载和存储的平坦式存储器访问,以及块模式存储器访问。每一个节点访问存储器池分配给特定节点的部分。在一些实施例中,多节点系统的每一个节点都与一个或多个SMC耦合,其又与存储器池耦合。
在以下说明和权利要求书中,可以使用术语“耦合的”和“连接的”连同它们的派生词。应理解,这些术语并非旨在作为彼此的同义词。相反,在特定实施例中,“连接的”可以用于表示两个或多个元件彼此直接物理或电接触。“耦合的”可以表示两个或多个元件直接物理或电接触。但“耦合的”还可以表示两个或多个元件彼此不直接接触,但仍彼此协作或相互作用。
一些实施例可以在硬件、固件、以及软件的一个或者其组合中实施。一些实施例还可以实施为存储在机器可读介质上的指令,其可以由计算平台读取并执行,以执行本文所述的操作。机器可读介质可以包括用于以机器(例如计算机)的可读的形式存储或传输信息的任何机构。例如,除了别的以外,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光盘存储介质、闪存设备。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”、或者“其他实施例”的提及表示结合实施例说明的特定特征、结构、或特性包括在本发明的至少一些实施例中,但不一定在全部实施例中。“实施例”、“一个实施例”、或“一些实施例”的各种出现不一定全都参考相同的实施例。来自实施例的要素或方面可以与另一个实施例的要素或方面组合。
本文所述和所示的部件、特征、结构、特性等不必全都包括在特定实施例或特定的多个实施例中。例如,如果说明书表述了“可以”、“或许”、“能够”或“能”包括部件、特征、结构或特性,该特定部件、特征、结构或特性不必被包括。如果说明书或权利要求书提及了“一个”要素,这并非表示仅有一个该要素。如果说明书或权利要求书提及了“另外的”要素,这并不排除存在多于一个另外的要素。
注意,尽管参考特定实现方式说明了一些实施例,但根据一些实施例,其他实现方式也是可能的。另外,附图中所示的和/或本文所述的电路元件或其他特征的布置和/或顺序不必以所示或所述的特定方式来布置。根据一些实施例,许多其他布置也是可能的。
在图中所示的每一个系统中,在一些情况下,每一个要素都可以具有相同的参考标记或不同的参考标记,以暗示呈现的要素可以不同和/或相似。但要素的变通性足以具有不同实现方式,并与本文所示或所述的一些或全部系统一起工作。图中所示的各种要素可以相同或不同。将哪一个指代为第一要素,将哪一个称为第二要素是任意的。
图1是可以访问池化的存储器资源的节点100的方框图。除了别的以外,节点100例如可以是膝上型计算机、台式计算机、平板计算机、移动设备、服务器或刀片式服务器。在一些示例中,节点是任意设备,其能够跨多节点系统与另一个节点通信。因此,在一些示例中,多节点系统是节点的网络,其中,每一个节点都是能够跨网络通信的任意设备。另外,在一些示例中,多节点是机架式服务器系统中的服务器。
节点100可以包括被配置为执行存储的指令的中央处理单元(CPU)102。CPU 102可以是单核处理器、多核处理器、计算集群、或任意数量的其他配置。在一些情况下,节点100的CPU 102和其他部件可以实现为片上系统(SOC)。此外,节点100可以包括多于一个CPU102。由CPU 102执行的指令可以用于实现跨多个节点的存储器资源的池化。
节点100还可以包括图形处理单元(GPU)104。如所示的,CPU 102可以通过总线106连接到GPU 104。但在一些实施例中,CPU 102和GPU 104位于相同的管芯上。GPU 104可以被配置为执行节点100内的任意数量的图形操作。例如,GPU 104可以被配置为渲染或操纵图形图像、图形帧、视频等,以便显示给节点100的用户。但在一些情况下,节点100不包括GPU104。
CPU 102还可以通过总线106连接到CPU输入/输出(I/O)。在实施例中,使用CPU I/O 108以使得CPU 102可以在多节点系统中访问池化的存储器。CPU 102可以访问池化的存储器,而不包括节点100内的专用存储器。此外,CPU I/O 108可以在不使用诸如传输控制协议/网际协议(TCP/IP)或InfiniBand(IB)的通信和联网协议的情况下访问多节点系统内的池化的存储器。在实施例中,诸如Plattsmouth(PLM)链路110的链路被用于:使用在串行链路上运行的基于存储器语义的协议,将每一个节点连接到共享存储器控制器。外围部件快速互连(PCIe)链路112可以用于将CPU 102连接到网络。
CPU 102还可以通过总线106连接到输入/输出(I/O)设备接口114,其被配置为将节点100连接到一个或多个I/O设备116。I/O设备116例如可以包括键盘和定点设备,其中,除了别的以外,定点设备可以包括触摸板或触摸屏。I/O设备116可以是节点100的内置部件,或者可以是外部连接到节点100的设备。CPU 102还可以通过总线106链接到显示接口118,其被配置为将节点100连接到显示设备120。显示设备120可以包括显示屏,其是节点100的内置部件。除了别的以外,显示设备120还可以包括计算机监视器、电视机、或投影仪,其外部连接到节点100。
图1的方框图并非旨在表示节点100要包括图1中所示的全部部件。此外,取决于特定实现方式的细节,节点100可以包括图1中未示出的任意数量的额外部件。而且,节点100可以包括比图1中所示的更少的部件。例如,节点100可以不包括GPU 104、I/O设备接口114、或显示接口118。
图2是多节点系统200的图示。多节点系统可以包括池化的存储器202。池化的存储器202可以包括任意类型的存储器或存储技术,例如随机存取存储器(RAM)、只读存储器(ROM)、闪存、或者任何其他适合的存储器系统。例如,池化的存储器202可以包括动态随机存取存储器(DRAM)。池化的存储器202还可以是物理存储器,例如硬盘驱动器、光盘驱动器、拇指盘驱动器、驱动器阵列、或者其任何组合。在一些实施例中,池化的存储器包括双列直插式存储器模块(DIMM)。在一些情况下,这些DIMM可以是基于下一代NVM的DIMM,其实现了大存储器容量和持久性以及易失性存储器特性。另外,在实施例中,DIMM可以由作为一个或多个存储器或存储设备的集合的一些其他形状因素代替。池化的存储器202概念可以应用于各种服务器(例如云计算、企业)、高性能计算、以及客户端使用。可以通过SMC 204访问池化的存储器。尽管示出了一个SMC 204,但系统200可以具有任意数量的SMC。SMC 204可以作为多个DIMM的主机。SMC 204可以支持双数据速率(DDR)总线、事物性DDR(DDR-T)总线、能够与可以包括在存储器池202中的各种存储器连接的其他链路/总线,包括DRAM和非易失性DIMM(NVDIMM)。假定在每一个节点上的处理器的集成存储器控制器(iMC)中包括存储器侧缓存能力,池化的存储器还可以通过作为“远存储器”的主机,来支持不同存储器分级体系,例如双级存储器(2LM)。
节点100A和节点100B也包括在系统中。尽管系统200示出了连接到一个SMC的两个节点,但任意数量的节点都可以直接连接到多个SMC。节点100A和100B可以连接到SMC 204,以访问池化的存储器202。Plattsmouth(PLM)链路用于将每一个节点连接到SMC。PLM能够支持具有诸如SMI3的来自Intel的现有存储器协议中存在的可任选的目录信息的存储器语义和/或诸如外围部件快速互连(PCIe)协议的具有加载与存储功能的I/O协议。在实施例中,能够使用任何链路(使用公共插针组合支持存储器语义和I/O协议)将节点连接到SMC。在实施例中,可以使用PCIe架构的物理层来实施PLM。除了PCIe架构实现的I/O功能以外,还使用公共PCIe插针实现了直接存储器语义。存储器语义使得每一个节点都能够与存储器池通信,如同它直接连接到存储器池。例如,PLM可以在公共PCIe插针组合上发送目录信息、存储器地址位置、以及块存储器位置。以此方式,节点可以使用标准链路来得到对连接到SMC的任何类型的存储器的访问。可以更新或替换节点而无需池化的存储器的任何重新验证,因为在节点与存储器池之间的连接保持不变。另外,存储器升级周期可以独立于CPU升级周期。例如,在几个CPU升级后可以替换存储器池,为顾客提供了明显的成本节省。
在实施例中,多个SMC可以通过PLM链路彼此相连。多个SMC也可以通过诸如以太网、InfiniBand、StormLake等的传统联网栈彼此相连,只要联网硬件能够将数据分组或微片(flit)传送到目的地SMC。具体而言,传统联网硬件可以使用独立的虚拟路线来实现PLM协议的服务质量。无论如何,一个或多个SMC实现了通过硬件的直接存储器访问,而没有软件引入的时延。
另外,SMC 204和节点100A与100B可以连接到网络连接块206。在一些实施例,网络连接块是网络接口控制器(NIC),可以被配置为将节点100A和100B与每一个SMC 204连接到网络208。网络208可以是有线线路网络、无线网络、或蜂窝网络。除了别的以外,网络208可以是任何广域网(WAN)、任何局域网(LAN)、或互联网。例如,网络208可以是3GPPLTE网络或WiFi网络。因此,节点100A和节点100B不局限于一种类型的连接。相反,节点可以使用多条链路链接到各种资源。在一些情况下,对网络208的访问提供了对额外的存储器设备和存储驱动器的访问,SMC 204可以使用网络208来分配额外的存储器设备和存储驱动器。
图3是分配给各种节点的分解的/池化的存储器的图示。存储器202可以耦合到SMC。每一个节点100A、100B、以及100C使用SMC来访问池化的存储器202。在图3中,将池化的存储器示出为非易失性存储器(NVM)的托盘(tray),例如包括在机架式服务器系统中的托盘式NVM。托盘式NVM包括分解的存储器300的图示。
池化的存储器202可以包括标准易失性DRAM DIMM或非易失性DIMM(NVDIMM)。当使用NVDIMM来构建存储器池时,存储器可以起存储设备的作用。因此,可以使用存储器块来访问存储器池,如同是典型存储设备,而不是使用对数据的字节的线性访问的平坦式存储器访问。在一些实施例中,将分解的存储器300划分为三类存储器:远存储器(FM)306、永久存储器(PM)304、以及块存储器(BM)302。FM代表传统易失性存储器,其中,在由于诸如断电、系统管理引起的复位等的情况下复位节点后,擦除属于节点的存储器内容。由CPU使用传统存储器加载/存储模型,如同常规存储器直接访问PM。但跨复位/供电循环,保持存储器内容。每一个FM 306、以及PM 304都可以通过基于存储器侧缓存的架构来实现。存储器池202可以按照可变方式分为FM 306、PM 304、以及BM 302。BM 302是类似于包含在存储设备中的存储器的存储器。借助访问节点中的软件驱动器,通过使用存储器块的操作来访问BM 302。
SMC管理FM 306、PM 304、以及BM 302之间的存储器的划分。SMC还管理存储器到每一个节点的分配。因此,为每一个节点100A、100B、以及100C分配一部分分解的存储器300。SMC可以包括寄存器,其实施存储器划分,其可以被映射到每一个节点的存储器区。在块存储器的情况下,每一个节点的存储器区都可以是I/O或存储器映射的I/O(MMIO)可访问区。此外,在一些情况下,可以借助托盘/机架管理栈改变分配给每一个节点的存储器的量。而且,在一些情况下,连接到第一SMC的存储器也可以分配给未直接连接到第一SMC的节点。如果在第一远程SMC中的存储器映射到节点,直接连接到该节点的第二本地SMC保留代表第一远程SMC的地址信息,以适当地对访问进行路由。
在实施例中,基于节点接收的节点划分的数量,为每一个节点分配一个或多个虚拟DIMM(VDIMM)。VDIMM可以是部分DIMM,或者VDIMM可以跨越多个物理DIMM(全部和/或部分)。可以由一个或多个SMC将节点标识(ID)分配给每一个VDIMM,以使得它们可以对以下消除歧义:对独立节点的请求/应答。应注意,遍及SMC/SMC间链路会保持相同节点ID,以在请求来自的和/或需要将应答传送到的SMC内识别SMC和节点。通过VDIMM,节点对可以共享构成VDIMM的物理存储器和存储设备的其他节点保持健忘。节点可以在VDIMM级别执行任何操作,例如复位、热添加和热移除。一个或多个SMC知道分配给每一个节点的VDIMM,每一个SMC管理他为VDIMM接收的命令。SMC连同地址或VDIMM数量一起保存节点ID,以使得SMC可以在来自不同节点的存储器访问之间消除歧义。
尽管将节点划分示出为存储器的相连区域,但节点划分可以在存储器池内不相连。此外,尽管将节点划分示出为属于由SMC控制的NVM的一个托盘,节点划分300可以表示从可以访问包括任何类型的存储器或存储设备的一个或多个单元(location)的多个SMC聚集的存储器。例如,节点划分还可以包括跨联网芯片访问的存储器。
图4是用于跨多个节点池化存储器资源的过程流程图。在块402处,由机架/托盘控制器将存储器池分配给:要么直接连接到SMC要么通过远程SMC连接的一组节点。应注意,块402可以跨多个SMC分配存储器。在一些情况下,将存储器池分为远存储器、永久存储器、以及块存储器。在块404处,已分配的存储器池映射到每一个节点的存储器区。当节点的系统软件(例如BIOS/OS/VMM)请求存储器(FM、PM、和/或BM)时,机架/托盘控制器于是按照块402中所述的分配来自存储器池的请求的存储器。在该过程中,节点为它请求的存储器提供其地址映射信息,机架/托盘控制器使用从节点的角度的适当地址映射信息设置SMC。每一个SMC还存储与每一个节点如何映射到整个池化的存储器地址空间有关的信息。在块406处,每一个节点可以使用共享的存储器控制器直接访问其已分配的存储器池的部分,而没有额外软件开销。存储器的池化实现了在节点之间共享数据,而无需消息传送和数据复制。另外,本技术能够更有效地使用存储器,因为对其池化并且在多个节点之间可以共享物理存储器和存储设备,而每一个节点都不知道共享了物理存储器和存储设备,因为每一个节点访问不多于分配给它的存储器。这是有成本效益的存储器分配,其实现了零碎的DIMM到节点的分配,随着存储器容量增大,这是有用的。存储器的池化还实现了较高的计算密度,因为从其他存储器分解用于计算的存储器。以此方式,多节点系统中的计算节点可以自由地使用更多的存储器。
在一些情况下,SMC可以基于来自节点的需要,实现灵活的存储器分配。在这个情形下,可以基于由每一个节点处理的工作负荷改变存储器分配。可以通过存储器映射将存储器分配指定给节点。此外,在一些情况下,在与无存储器池化的系统相比时,存储器池化实现了更大的功率效率,因为不会为每一个节点提供超过其所需的最大存储器容量。
另外,在一些情况下,存储器服务器可以用于池化存储器。在这个情形下,一个节点可以包括备用存储器,基于其他节点的要求将其提供给它们。可以按照操作系统或虚拟机要求提供备用存储器。通过存储器内数据网格还可以得到存储器群集。此外,通过本技术可以实现对托盘内或跨托盘的永久存储器或存储设备的复制服务。在我们的使用中,NVM可以用作易失性主存储器(FM)和非易失性存储器,作为映射的存储器(PM)以及块映射的I/O设备(BM)。结果,与映射为I/O设备相反,NVM可以映射为存储器,其具有性能含义。在将NVM用作存储设备的同时将NVM映射为NVM,实现了借助传统存储设备不会呈现的复制服务。
示例1
本文说明了一种用于跨多个节点池化存储器资源的装置。装置包括共享存储器控制器和存储器池。多个节点的每一个节点都连接到共享存储器控制器。存储器池连接到共享存储器控制器,其中,存储器池的一部分分配给多个节点的每一个节点。
装置可以包括多个共享存储器控制器,多个节点的每一个节点都可以连接到多个共享存储器控制器中的一个或多个。可以通过Plattsmouth链路、使用公共插针组合支持存储器语义和I/O协议的链路、联网栈、或其任何组合,连接共享存储器控制器。另外,Plattsmouth链路可以用于将每一个节点连接到共享存储器控制器。使用公共插针组合支持存储器语义和I/O协议的链路可以用于将每一个节点连接到共享存储器控制器。存储器池可以包括动态随机存取存储器(DRAM)、固态驱动器(SSD)、或者任何其他非易失性存储器(NVM)或存储技术,或者其任何组合。共享存储器控制器可以提供基于加载和存储的平坦式存储器访问。此外,共享存储器控制器可以向每一个节点提供对其存储器部分的块模式访问,存储器池可以包括具有大容量的基于下一代NVM的DIMM。
示例2
本文说明一种系统。系统包括刀片式服务器,具有一个或多个节点和共享存储器控制器。共享存储器控制器与多个节点和存储器池耦合,共享存储器控制器管理在存储器池与多个节点之间的存储器服务,以使得多个节点可以访问存储器池而不使用I/O功能。
系统可以包括多个共享存储器控制器,其中,多个节点中的每一个节点都连接到多个共享存储器控制器中的一个或多个。每一个共享存储器控制器都可以通过Plattsmouth链路、使用公共插针组合支持存储器语义和I/O协议的链路、联网栈、或其任何组合,与其他共享存储器控制器耦合。此外,Plattsmouth链路可以用于将每一个节点连接到共享存储器控制器。使用公共插针组合支持存储器语义和I/O协议的链路可以用于将每一个节点连接到共享存储器控制器。存储器池可以包括动态随机存取存储器(DRAM)、固态驱动器(SSD)、或者任何其他非易失性存储器(NVM)或存储技术、或者其任何组合。存储器池还可以包括基于云的存储器设备和存储驱动器。
示例3
本文说明了一种跨多个节点池化存储器资源的方法。方法包括将池化的存储器的部分分配到一类存储器中。方法还包括将存储器池的分配的部分映射到每一个节点的存储器区。此外,方法包括使用共享存储器控制器访问针对每一个节点的已分配的存储器池的部分。
共享存储器控制器可以包括寄存器,并实施存储器池的分配。共享存储器控制器的存储器可以被指定给没有直接连接到共享存储器控制器的节点。另外,虚拟DIMM(VDIMM)可以是部分DIMM。此外,VDIMM可以跨越多个物理DIMM、存储器设备、或存储驱动器。
在前述说明中,说明了公开的主题的各个方面。为了解释,阐述了特定数量、系统和配置,以便提供对主题的透彻理解。但对于得益于本公开内容的本领域技术人员来说,显而易见的是可以无需这些特定细节来实践主题。在其他实例中,省略、简化、组合或分割了公知的特征、部件、或模块,以避免使得公开的主题模糊不清。
公开的主题的各种实施例可以在硬件、固件、软件、或其组合中实施,可以参考或结合程序代码来说明,程序代码例如是指令、功能、过程、数据结构、逻辑、应用程序、设计表示或格式(用于设计的模拟、仿真、以及制造),其在由机器访问时使得机器执行任务、定义抽象数据类型或低级硬件环境、或产生结果。
对于模拟,程序代码可以使用硬件描述语言或另一种功能描述语言表示硬件,该语言基本上提供了设计的硬件预期如何执行的模型。程序代码可以是汇编语言或机器语言,或者可以进行编译和/或解释的数据。而且,以如采取动作或导致结果的一个形式或另一个,来提及软件是本领域中常见的。这种表达仅仅是表述由处理系统执行程序代码的一种简略表达方式,其导致处理器执行动作或产生结果。
程序代码例如可以存储在易失性和/或非易失性存储器中,例如存储设备和/或相关联的机器可读或机器可访问介质,包括固态存储器、硬盘驱动器、软盘、光存储设备、磁带、闪存、记忆棒、数字视频盘、数字多用途盘(DVD)等,以及更特殊的介质,例如机器可访问生物态保存存储设备。机器可读介质可以包括任何有形机构,用于以机器可读形式存储、传送、或接收信息,例如天线、光纤、通信接口等。程序代码可以以分组、串行数据、并行数据等形式传送,并可以以压缩或加密格式使用。
程序代码可以在可编程机器上执行的程序中实施,例如移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、及其他电子设备,每一个都包括处理器、可由处理器读取的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。程序代码可以应用于使用输入设备输入的数据,以执行所述的实施例并产生输出信息。输出信息可以应用于一个或多个输出设备。本领域普通技术人员可以意识到可以借助各种计算机系统配置来实践公开的主题的实施例,包括多处理器或多内核处理器系统、小型计算机、大型计算机、以及实质上可以内置到任何设备中的普遍或微型计算机或处理器。公开的主题的实施例还可以在分布式计算环境中实践,其中,可以由通过通信网络链接的远程处理设备执行任务。
尽管将操作说明为顺序的过程,一些操作实际上可以并行、同时、和/或在分布式环境中执行,在本地和/或远程存储了用于由单或多处理器机器访问的程序代码。另外,在一些实施例中,可以重新排列操作的顺序而不脱离公开的主题的精神。程序代码可以由或结合嵌入式控制器使用。
尽管参考示例性实施例说明了公开的主题,但本说明并非旨在以限制性意义来解释。示例性实施例的各种修改以及主题的其他实施例(对于公开的主题所属领域技术人员是显而易见的)视为在公开的主题的范围内。

Claims (28)

1.一种用于跨多个节点池化存储器资源的装置,包括:
多个共享存储器控制器,其中,所述多个节点的每一个节点都连接到所述多个共享存储器控制器中的一个或多个共享存储器控制器,并且其中,通过Plattsmouth链路、使用公共插针组合支持存储器语义和I/O协议的链路、联网栈、或其任何组合,连接每一个共享存储器控制器;以及
存储器池,所述存储器池连接到共享存储器控制器,其中,所述存储器池的一部分分配给所述多个节点的每一个节点。
2.根据权利要求1所述的装置,其中,Plattsmouth链路用于将每一个节点连接到所述共享存储器控制器。
3.根据权利要求1所述的装置,其中,使用公共插针组合支持存储器语义和I/O协议的链路用于将每一个节点连接到所述共享存储器控制器。
4.根据权利要求1所述的装置,其中,所述存储器池包括动态随机存取存储器(DRAM)、固态驱动器(SSD)、或者任何其他非易失性存储器(NVM)或存储技术、或者其任何组合。
5.根据权利要求1所述的装置,其中,所述共享存储器控制器提供基于加载和存储的平坦式存储器访问。
6.根据权利要求1所述的装置,其中,所述共享存储器控制器向每一个节点提供对其存储器部分的块模式访问。
7.根据权利要求1所述的装置,其中,所述存储器池包括具有大容量的基于下一代NVM的DIMM。
8.一种用于跨多个节点池化存储器资源的系统,包括:
刀片式服务器,所述刀片式服务器具有一个或多个节点;
多个共享存储器控制器,其中,共享存储器控制器与多个节点和存储器池耦合,并且所述多个节点中的每一个节点都连接到所述多个共享存储器控制器中的一个或多个共享存储器控制器,并且每一个共享存储器控制器都通过Plattsmouth链路、使用公共插针组合支持存储器语义和I/O协议的链路、联网栈、或其任何组合与其他共享存储器控制器耦合,并且所述共享存储器控制器管理在所述存储器池与所述多个节点之间的存储器服务,以使得所述多个节点能够访问所述存储器池而不使用I/O功能。
9.根据权利要求8所述的系统,其中,Plattsmouth链路用于将每一个节点连接到所述共享存储器控制器。
10.根据权利要求8所述的系统,其中,使用公共插针组合支持存储器语义和I/O协议的链路用于将每一个节点连接到所述共享存储器控制器。
11.根据权利要求8所述的系统,其中,所述存储器池包括动态随机存取存储器(DRAM)、固态驱动器(SSD)、或者任何其他非易失性存储器(NVM)或存储技术、或者其任何组合。
12.根据权利要求8所述的系统,其中,所述存储器池包括基于云的存储器设备和存储驱动器。
13.根据权利要求8所述的系统,其中,所述存储器池包括硬盘驱动器、光盘驱动器、拇指驱动器、驱动器阵列、或者其任何组合。
14.根据权利要求8所述的系统,其中,所述存储器池包括双列直插式存储器模块(DIMM)、基于下一代NVM的DIMM、或者其任意组合。
15.根据权利要求8所述的系统,其中,所述存储器池通过作为具有存储器侧缓存能力的远存储器的主机来支持两级存储器(2LM)存储器分级体系,其中存储器侧缓存能力包括在每个节点上的集成存储器控制器(iMC)中。
16.一种跨多个节点池化存储器资源的方法,所述方法包括:
将池化的存储器的部分分配到一种类型的存储器;
将已分配的存储器池的部分映射到每一个节点的存储器区;以及
使用多个共享存储器控制器中的一个或多个共享存储器控制器访问针对每一个节点的已分配的存储器池的部分,其中,每一个共享存储器控制器都通过Plattsmouth链路、使用公共插针组合支持存储器语义和I/O协议的链路、联网栈、或其任何组合与其他共享存储器控制器耦合。
17.根据权利要求16所述的方法,其中,共享存储器控制器包括寄存器,并实施对所述存储器池的分配。
18.根据权利要求16所述的方法,其中,共享存储器控制器的存储器被指定给没有直接连接到所述共享存储器控制器的节点。
19.根据权利要求16所述的方法,其中,虚拟DIMM(VDIMM)是部分DIMM。
20.根据权利要求16所述的方法,其中,VDIMM跨越多个物理DIMM、存储器设备、或存储驱动器。
21.根据权利要求16所述的方法,其中,非易失性DIMM用于构建所述存储器池,所述存储器池起存储设备的作用。
22.一种跨多个节点池化存储器资源的装置,所述装置包括:
用于将池化的存储器的部分分配到一种类型的存储器的单元;
用于将已分配的存储器池的部分映射到每一个节点的存储器区的单元;以及
用于使用多个共享存储器控制器中的一个或多个共享存储器控制器访问针对每一个节点的已分配的存储器池的部分的单元,其中,每一个共享存储器控制器都通过Plattsmouth链路、使用公共插针组合支持存储器语义和I/O协议的链路、联网栈、或其任何组合与其他共享存储器控制器耦合。
23.根据权利要求22所述的装置,其中,共享存储器控制器包括寄存器,并实施对所述存储器池的分配。
24.根据权利要求22所述的装置,其中,共享存储器控制器的存储器被指定给没有直接连接到所述共享存储器控制器的节点。
25.根据权利要求22所述的装置,其中,虚拟DIMM(VDIMM)是部分DIMM。
26.根据权利要求22所述的装置,其中,VDIMM跨越多个物理DIMM、存储器设备、或存储驱动器。
27.根据权利要求22所述的装置,其中,非易失性DIMM用于构建所述存储器池,所述存储器池起存储设备的作用。
28.一种具有指令的机器可读介质,所述指令在被处理器执行时,使所述处理器执行根据权利要求16-21中的任一项所述的方法。
CN201410857910.1A 2013-12-27 2014-11-27 跨多节点的存储器资源的池化 Expired - Fee Related CN104750559B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/142,697 US9977618B2 (en) 2013-12-27 2013-12-27 Pooling of memory resources across multiple nodes
US14/142,697 2013-12-27

Publications (2)

Publication Number Publication Date
CN104750559A CN104750559A (zh) 2015-07-01
CN104750559B true CN104750559B (zh) 2019-10-11

Family

ID=53372166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410857910.1A Expired - Fee Related CN104750559B (zh) 2013-12-27 2014-11-27 跨多节点的存储器资源的池化

Country Status (4)

Country Link
US (1) US9977618B2 (zh)
CN (1) CN104750559B (zh)
CA (1) CA2872019A1 (zh)
DE (1) DE102014117462A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250831B1 (en) * 2013-03-14 2016-02-02 Inphi Corporation Isolated shared memory architecture (iSMA)
US10545909B2 (en) * 2014-04-29 2020-01-28 Hewlett Packard Enterprise Development Lp Computing system management using shared memory
US9547892B2 (en) 2014-05-06 2017-01-17 Kla-Tencor Corporation Apparatus and methods for predicting wafer-level defect printability
US10395361B2 (en) 2015-08-10 2019-08-27 Kla-Tencor Corporation Apparatus and methods for inspecting reticles
CN111340762B (zh) * 2015-08-10 2021-06-25 科磊股份有限公司 用于预测晶片级缺陷可印性的设备及方法
US10348574B2 (en) * 2015-08-17 2019-07-09 Vmware, Inc. Hardware management systems for disaggregated rack architectures in virtual server rack deployments
US20170060436A1 (en) * 2015-09-02 2017-03-02 Intel Corporation Technologies for managing a reserved high-performance memory region of a solid state drive
US20170212835A1 (en) * 2016-01-22 2017-07-27 Samsung Electronics Co., Ltd. Computing system with memory management mechanism and method of operation thereof
US11153223B2 (en) * 2016-04-07 2021-10-19 International Business Machines Corporation Specifying a disaggregated compute system
US9811281B2 (en) 2016-04-07 2017-11-07 International Business Machines Corporation Multi-tenant memory service for memory pool architectures
US10171375B2 (en) 2016-04-21 2019-01-01 International Business Machines Corporation Constructing computing systems with flexible capacity of resources using disaggregated systems
US10162770B2 (en) 2016-06-30 2018-12-25 Intel Corporation Virtual machine migration in rack scale systems
US10394475B2 (en) 2017-03-01 2019-08-27 International Business Machines Corporation Method and system for memory allocation in a disaggregated memory architecture
US10606487B2 (en) 2017-03-17 2020-03-31 International Business Machines Corporation Partitioned memory with locally aggregated copy pools
FR3082029B1 (fr) * 2018-06-05 2020-07-10 Thales Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources
US10820442B2 (en) * 2018-06-05 2020-10-27 Hewlett Packard Enterprise Development Lp Modular server architectures
US20220066928A1 (en) * 2020-09-02 2022-03-03 Microsoft Technology Licensing, Llc Pooled memory controller for thin-provisioning disaggregated memory
US11853798B2 (en) 2020-09-03 2023-12-26 Microsoft Technology Licensing, Llc Disaggregated memory pool assignment
US20210149803A1 (en) * 2020-12-23 2021-05-20 Francesc Guim Bernat Methods and apparatus to enable secure multi-coherent and pooled memory in an edge network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102150147A (zh) * 2008-07-03 2011-08-10 惠普开发有限公司 存储器服务器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210736A1 (en) 2003-04-18 2004-10-21 Linden Minnick Method and apparatus for the allocation of identifiers
US20080148095A1 (en) * 2006-12-14 2008-06-19 Motorola, Inc. Automated memory recovery in a zero copy messaging system
EP2579158A1 (en) * 2010-05-27 2013-04-10 Fujitsu Limited Memory system and memory interface device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102150147A (zh) * 2008-07-03 2011-08-10 惠普开发有限公司 存储器服务器

Also Published As

Publication number Publication date
DE102014117462A1 (de) 2015-07-02
CA2872019A1 (en) 2015-06-27
US20150186069A1 (en) 2015-07-02
CN104750559A (zh) 2015-07-01
US9977618B2 (en) 2018-05-22

Similar Documents

Publication Publication Date Title
CN104750559B (zh) 跨多节点的存储器资源的池化
CN104750658B (zh) 辅助式一致共享存储器
US10248346B2 (en) Modular architecture for extreme-scale distributed processing applications
CN109426648A (zh) 用于由智能网络接口控制器处理网络分组的技术
US20200241926A1 (en) Selection and management of disaggregated computing resources
CN108694069A (zh) 动态可组成的计算系统、数据中心和用于动态组成计算系统的方法
US10671557B2 (en) Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters
Jun et al. Scalable multi-access flash store for big data analytics
US11182322B2 (en) Efficient component communication through resource rewiring in disaggregated datacenters
US10637733B2 (en) Dynamic grouping and repurposing of general purpose links in disaggregated datacenters
Branch et al. Cloud computing and big data: a review of current service models and hardware perspectives
AU2021269201B2 (en) Utilizing coherently attached interfaces in a network stack framework
US20210334138A1 (en) Technologies for pre-configuring accelerators by predicting bit-streams
Xu et al. Rethink the storage of virtual machine images in clouds
US10802988B2 (en) Dynamic memory-based communication in disaggregated datacenters
CN104750614B (zh) 用于管理存储器的方法和装置
US11012423B2 (en) Maximizing resource utilization through efficient component communication in disaggregated datacenters
EP4020208A1 (en) Memory pool data placement technologies
US10915493B2 (en) Component building blocks and optimized compositions thereof in disaggregated datacenters
US11650849B2 (en) Efficient component communication through accelerator switching in disaggregated datacenters
US10831698B2 (en) Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters
US11163713B2 (en) Efficient component communication through protocol switching in disaggregated datacenters
Roozbeh Realizing Next-Generation Data Centers via Software-Defined “Hardware” Infrastructures and Resource Disaggregation: Exploiting your cache
Vishwanath LambdaRAM: A high-performance, multi-dimensional, distributed cache over ultra-high speed networks
Conley Achieving Efficient I/O with High-Performance Data Center Technologies

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191011

Termination date: 20211127