CN108885582B - 存储器池结构的多租户存储器服务 - Google Patents
存储器池结构的多租户存储器服务 Download PDFInfo
- Publication number
- CN108885582B CN108885582B CN201780020208.1A CN201780020208A CN108885582B CN 108885582 B CN108885582 B CN 108885582B CN 201780020208 A CN201780020208 A CN 201780020208A CN 108885582 B CN108885582 B CN 108885582B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- common data
- data block
- tenant
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
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)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Memory System (AREA)
Abstract
存储器管理服务占据分解计算环境中的整个存储器系统的可配置部分。该服务在系统可访问的实际存储器池中提供优化的数据组织功能。该服务使各种类型的数据存储能够以硬件实现,包括在数据结构级别。通过在存储器池中创建和管理高性能,可重用的数据结构实现,然后使用分析(例如,多租户相似性和重复检测)来确定何时应该使用数据组织,从而实现存储容量节省。该服务还可以将存储器重新调整到不同的数据结构,这些数据结构在给定数据使用和分布模式的情况下可能会更有效。该服务还有利地有效地管理自动备份。
Description
技术领域
本申请总体上涉及在数据中心操作环境中的数据处理系统。
背景技术
众所周知的信息技术(IT)传递模型是云计算,通过该云计算,可以通过因特网向计算机和其他设备按需提供共享资源,软件和信息。云计算可显著降低IT成本和复杂性,同时改善工作负载优化和服务交付。利用这种方法,托管应用程序实例并使其可从基于因特网的资源获得,例如通过HTTP上的传统Web浏览器可访问这些资源。云计算资源通常位于运行一个或多个网络应用程序的大型服务器场(large server farms)中,通常使用虚拟化体系结构,其中应用程序在虚拟服务器内运行,或称为“虚拟机”(VM),映射到数据中心设施备中的物理服务器中。
在数据中心本身内,数据中心网络通常根据包括若干层电气开关(即,访问,聚合和核心层)的分层设计来架构。在数据中心的前端,内容和负载均衡交换机通过网关路由器连接到因特网(Internet),而在后端,它们链接到核心交换机。通常,核心交换机链接到聚合交换机,聚合交换机连接到机架交换机。每个机架交换机都连接到机架中的服务器。数据中心网络中的交换机通常通过电子交换结构运行,它们之间的链路可以是铜缆或光纤。当请求来自外部网络时,它首先来到负载平衡和内容交换机,它们将请求路由到适当的服务器。为了满足请求,服务器可以与相同或不同机架内的其他服务器协调。例如,应用程序服务器可以与数据库服务器协调以处理请求。完成请求后,响应将通过网关路由器发送到外部网络。
诸如所描述的传统数据中心架构面临许多挑战,包括但不限于可扩展性,容错性和能量效率。由于这些挑战,许多数据中心架构难以应对云计算不断增长的需求。此外,由于服务器(尤其是它们的存储器)是独立管理的,因此这些体系结构在存储器管理,数据复制和低效的存储器分配方面具有显著的低效率。
在先前已知的是提供“存储器池”,其可以被数据中心中的其他处理资源访问和使用以充当扩展存储器。这些方法旨在促进复制方案。这样的方案将存储器块从扩展存储器复制或分页到直接放置并连接到处理刀片上的处理器的较小存储器。然而,这种直接和固定存储器阻止了整个切换不同实例的存储器内容,因为它产生了性能问题,因为与寻呼机制相关的延迟会干扰某些代码。
期望实现和管理存储器池以解决与这些和其他现有技术方法相关联的低效率。
发明内容
通过提供存储器管理服务来增强“分解服务器”架构。在分解的服务器方法中,数据中心中的类似类型的服务器资源在各个池中聚合,例如计算池,存储器池(memory pool)和存储池(storage pool)。然后,通过从池中分配适当数量的资源来动态构建服务器,以满足租户工作负载的要求。与传统数据中心架构相比,分解服务器方法提供更高的资源利用率,因为存储器组件可以在不同租户和处理组件之间使用,重用或共享。根据本公开,独立于其他系统组件管理存储器,从而提供创建可以提供显著益处的独特管理能力的机会。
根据本公开的第一方面,提供了一种用于管理多租户计算环境中的存储器的方法。该方法首先提供存储器资源池。对于给定的工作负载,来自存储器资源池的存储器资源被分配给一组处理器。根据诸如散列表,链表等的数据结构,在分配的存储器资源中组织给定工作负载的数据。当处理工作负载时,该方法然后确定(例如,基于分析)对于给定工作负载的数据结构中的数据的重新组织是否会增加数据结构所使用的存储器的性能或者节省存储器。在确定重新组织将提高性能或节省存储器时,然后采取给定的存储器管理动作来管理数据。
根据本公开的第二方面,描述了一种用于在计算环境中分配资源的装置。该装置包括一组一个或多个硬件处理器,以及保存由硬件处理器执行的计算机程序指令的计算机存储器,以执行一组操作,例如上述步骤。
根据本公开的第三方面,描述了一种用于在数据处理系统中使用的用于在计算环境中分配资源的非暂时性计算机可读介质中的计算机程序产品。该计算机程序产品保存在数据处理系统中执行的计算机程序指令,并且可操作以执行诸如上述步骤的操作。
根据本公开的第四方面,描述了一种数据中心设施。数据中心包括存储器池,光学互连和存储器管理器。存储器管理在硬件元件中执行,并且可操作以管理从存储器资源池到多个租户工作负载的一组处理器的存储器资源的分配。管理器还可以根据数据结构组织给定租户工作负载的数据,并有选择地重新组织数据结构中的数据,以提高数据结构的性能并减少服务给定租户工作负载所需的存储器。
本发明的存储器服务优选地占据整个存储器系统的一些可配置部分,使其余部分空闲以用于典型的高性能加载存储操作。该服务在系统可访问的实际存储器池中提供优化的数据组织功能。为此,存储器服务提供了在硬件中实现某些类型的数据存储的能力,包括在数据结构级别。在一个实施例中,存储器服务通过实现跨存储器池的高性能,可重用数据结构实现的创建和管理以及使用各种分析的能力(例如,多租户相似性,重复检测等)来提供数据结构性能管理和存储容量节省(conservation),以确定数据组织是否以及何时值得做。因此,服务优选地通过数据结构中的相似性和重复检测(甚至在工作负载之间)来利用和减少容量需求,以节省存储器空间。当需要时,服务还可以改变或调整数据结构本身,例如,基于监视的数据使用模式或数据分布,以持续改进数据结构性能。另一个特征是提供自动备份的能力,优选地不需要数据副本以通过硬件处理器。
前面已经概述了所公开的主题的一些更相关的特征。这些特征应该被解释为仅仅是说明性的。通过以不同方式应用所公开的主题或通过修改将要描述的主题,可以获得许多其他有益结果。
附图说明
为了更完整地理解本主题及其优点,现在参考以下结合附图的描述,其中:
图1描绘了其中可以实现本公开的示例性方面的计算系统环境的示例性框图;
图2是光学连接的存储器系统的硬件结构的示例性框图,其中可以实现说明性实施例的各方面;
图3描绘了图2中的光学连接的存储器系统中的处理器设计的硬件结构的框图;
图4是说明用于在处理器处访问存储器的硬件结构的框图;
图5描绘了根据本公开的分散的计算系统;
图6描绘了可替换的数据中心架构,其中可以实现本公开的技术;
图7描绘了图6中的数据中心,其扩展到包括根据本公开的第一实施例的存储器管理服务;
图8描绘了根据本公开的第二实施例的数据中心;和
图9描绘了用于容量保存例程的处理流程,其使用数据结构中的相似性和重复检测来节省存储器空间。
具体实施方式
本公开的技术优选地在“分解的”计算系统环境的上下文中实现,其中“分解的服务器”-在本文中有时称为“服务器实体”–是被组成或构成的服务器资源,其是选自(或被分配自)共享服务器资源池,即,以下中的一个或多个:计算池,存储器池,加速器池(例如,GPU加速器,网络加速器等),存储池等。正如命名法所暗示的,“计算”池通常构成物理处理器(例如多个CPU),“存储器”池通常构成物理存储器设备(例如双列直插式存储器模块(DIMM))等。给定的共享池优选地,仅包括特定资源类型,但是特定资源池可以由一个或多个资源子类型组成。“池”的概念不是限制性的,因为可以以任何合适的方式收集,聚合或以其他方式组合公共资源。此外,“池”可以是具有共同类型或子类型的专用资源集,或者这些资源的一些临时集合。优选地,特定服务器实体包括来自一个或多个服务器资源池的服务器资源。
在优选实施例中,并且如下面所描述的,其中实现本公开的教导的分解计算系统利用光学(与电气相反)互连用于存储器,但是这不是限制。
通常,共享资源池在特定数据中心的物理范围内可用,但是这同样不是限制。因此,共享资源池本身可以跨物理数据中心共享。此外,不要求特定服务器实体由来自每个服务器池的资源组成。
切换光学连接的存储器架构
作为背景技术,但不作为限制,以下描述了代表性计算机环境,其中可以实现本公开的技术(下面描述)。
现在转向图1,图1描绘了可以实现本公开的分解计算系统的计算环境的示例性架构10。计算机系统10包括中央处理单元(CPU)12,其连接到通信端口18和存储器设备16.通信端口18与通信网络20通信。通信网络20和存储网络可以被配置为与服务器(主机)24和22以及存储系统通信,存储系统可以包括存储设备14.存储系统可以包括硬盘驱动器(HDD)设备,固态设备(SSD)等,其可以配置为冗余独立磁盘阵列(RAID)。如下所述的操作可以在位于系统10或其他地方的存储设备14上执行,并且可以具有独立工作和/或与其他CPU设备12一起工作的多个存储器设备16.存储器设备16可以包括如下存储器。电可擦除可编程只读存储器(EEPROM)或许多相关设备。存储器装置16和存储装置14经由信号承载介质连接到CPU 12。另外,CPU 12通过通信端口18连接到通信网络20,通信网络20具有附加的多个附加计算机主机系统24和22.此外,存储器设备16和CPU 12可以嵌入并包括在每个组件中。每个存储系统还可以包括单独和/或不同的存储器设备16和CPU 12,它们一起工作或作为单独的存储器设备16和/或CPU 12工作。
图2示出计算机系统中光学连接的存储器系统的硬件结构的示例性框图200。由于光链路204的高带宽距离乘积,存储器214通过光互连结构204与CPU 218的隔离是可行的。在这种光连接存储器(OCM)系统200中,CPU 218和存储器214是组织成通过光学链路和至少一个交换结构204连接的单独的机架202和208.在存储器机架206中,存储器刀片208被布置并通信地耦合到其他存储器刀片和处理器(CPU)机架202.每个存储器刀片208容纳多个存储器设备214,代理212和存储器控制器210.CPU机架202包括处理器刀片216,每个处理器刀片216可通信地耦合到其他处理器刀片216和存储器机架206.处理器刀片216包括处理器218,每个处理器218包含本地存储器(未示出)。处理器机架216内的处理器218(和各个物理计算节点)通过已知的快速互连装置(未示出)在本地连接,该快速互连装置可以是在处理器刀片216内的处理器218的物理计算节点之间具有某种拓扑的直接连接网络,或者是交换机,通过高速缓存一致(coherent)对称多处理器(SMP)结构的存储器,或者上述的组合。处理器218,处理器刀片216,存储器214和存储器刀片208中的每一个共享多个光学外部链路。这些外部链路用于在非常高的带宽下优化光交换结构内的点对点连接。该优化可以在所使用的物理实现中,或者在为了促进这种高带宽而选择的协议中,并且优选地,它具有支持一个物理链路或多个物理链路内的存储器切换的能力,看起来像是由几个物理链接构成的一个高带宽物理链路。因为这些外部链路通常通过至少一个不知道其数据或内容的光开关204进行电路交换,所以这些应该使用非常轻量级的通信协议。
这些外部链路的物理特性可能需要在WDM(波分复用器)中使用多个光波长,它们都耦合到一个光纤或一个外部链路中,但在两端是可分离的。基于镜子的微机电系统“MEMS”光学电路开关“OCS”将在光学域中偏转这些外部链路内的光束,无论其波长,协议和信令速度如何。优选地,并且在所描绘的实施例中,这些外部链路对于所有存储器刀片和处理器刀片是共用的。
在优选的架构中,在光学外部链路之间共享至少一个光学电路交换机。而且,可以在处理器和共享光电路交换机的存储器刀片之间建立若干独立电路。这些外部链路用于优化非常高带宽的点对点连接。该优化可以在所选择的协议中使用的物理实现中,以促进这种高带宽,并且能够支持在一个物理链路或多个物理链路内聚合多个流,看起来像由一些物理链路构成的一个高带宽物理链路。因为这些外部链路通过不了解其协议,数据或内容的全光开关进行电路交换,所以使用了非常轻量级的通信协议。此外,这些外部链路的物理特性可能需要在WDM(波分复用器)中使用多个光波长,它们都耦合到一个光纤或一个外部链路中,但在两端是可分离的。基于镜子的微机电系统“MEMS”光学电路开关“OCS”将在光学域中偏转这些外部链路内的光束,而不管它们的波长,协议和信令速度的数量。这些外部链路对于所有处理器,刀片,存储器和独立电路是共同的,使得任何存储器刀片/处理器刀片可以直接地或通过经过互连的处理器刀片在一个或所有这些外部链路上传递信息。在一个示例性实施例中,使用电路交换开关。电路交换开关不需要频繁切换,因此可以更加简单地构建,并且可以使用不同的技术(例如,所有光学,基于MEMS镜子)来动态地连接电路,存储器和处理器刀片。
这些类型的外部链路(未示出)和动态切换实现了根据需要动态改变的非常高吞吐量(例如,高带宽)连接。由于多核处理芯片需要非常高带宽的网络来将多核处理芯片互连到其他这样的物理处理节点或存储器子系统,所以示例性光学连接存储器架构在提供由存储器切换操作功能上实现的解决方案中起着至关重要的作用。
光学连接的存储器架构200产生许多益处:(a)跨系统节点的透明存储器容量改变,(b)消除存储器的最坏情况供应的概念并允许应用根据工作负载改变存储器占用空间(footprints),(c)将CPU停机时间与存储器模块故障分离,从而提高CPU可用性。如下所述,提供了一种用于存储器管理技术的架构。如图2所示,处理器刀片202托管多个处理器218,而存储器模块241被打包(例如,布置)在存储器刀片208中。处理器刀片216和存储器刀片208被组织在单独的机架202和206中,这是通过光交换结构204互连。CPU刀片202中的每个处理器218可以具有本地存储器池310a-n,其用于更快的存储器访问。除了动态随机存取存储器(DRAM)存储器设备之外,存储器刀片208还可以集成备用存储器设备,例如闪存或相变存储器,而不需要对CPU刀片216进行任何改变。
现在转向图3,图3是示出计算机系统中的光学连接的存储器系统中的处理器设计的硬件结构的框图300。如图3中所示,处理器侧设计300示出:系统中的软件栈(没有虚拟化)302和304(具有虚拟化),并且处理器刀片通过光学收发器308和312与远程存储器刀片通信。存在与本地存储器池310a-n相关联的存储器控制器306。如果系统存储器地址(SMA)空间(如图3的302和304所示)高于某个预定义的限制,则SMA被映射到远程存储器地址(RMMA)空间408(如图4所示),并且访问请求通过适当的通道路由到远程存储器刀片。应注意,存储器刀片208(参见图2)维持称为远程存储器地址(RMMA)空间的单独地址空间。
在光学连接的存储器系统中(参见图2中的200),每个处理器节点218为远程和本地存储器维护SMA空间。处理器节点218将本地物理存储器映射到该地址空间的下部。远程存储器被映射到可用(即,更高)的SMA地址空间(在302和304中示出)。在远程存储器侧,存储器刀片208保持RMMA。因此,应首先将处理器侧的每个存储器访问映射到SMA空间(如图3的302和304所示)。如果SMA(如302和304所示)对应于远程存储器,则SMA(如图3的302和304所示)被映射到RMMA,并且该RMMA被发送到远程存储器刀片208。光学平面将SMA(如图3的302和304所示)转换成相应的RMMA并与远程存储器交互,如图3所示。
处理器刀片(如图3中的组件306,308和310a-n所示)通过电-光(EO)/光-电(OE)收发器312连接到远程存储器。例如,连接到NorthbridgeTM芯片组。注意,在虚拟化系统中,SMA(如图3的302和304所示)对应于机器地址(MA)(如302和304所示),并且在没有虚拟化的系统中该SMA(如图3的302和304所示)对应于物理地址(PA)(如图3的302和304所示)。如图3所示,每个处理器刀片(示出为具有组件306,308和310a-n)可以通过单独的通道同时连接到多个存储器刀片。这里,在单模光纤的情况下,信道对应于单独的光收发器,而对于波分复用(WDM),单个收发器可以提供多个信道。
在光学连接系统中(如图2中的200所示),处理器节点通过在处理器节点和远程存储器刀片之间建立的独立电路访问远程存储器。现在转向图。参照图4,示出了示例性框图400,其示出了用于通过计算机系统中的光学互连结构切换存储器的硬件结构。处理器B402B与远程刀片C 406B建立电路,并获得对先前由处理器A 402A保持的数据的访问。如上面在图1中概述的那样如图2-4所示,处理器节点具有到远程存储器刀片的多个通道;此外,每个存储器刀片配备有多个通道,使得存储器刀片能够跨多个处理器节点共享。光学信道(在存储器刀片或处理器节点中)由一个或多个光学收发器提供。处理器节点402(示为402A和402B)可以通过利用存储器刀片406(示为406A-C)启动电路并将存储器请求发送到远程存储器控制器来从远程存储器刀片分配存储器。在这样的存储器系统中,保持远程存储器刀片内的超级页面的处理器节点402可以发信号通知另一个处理器与远程存储器刀片406(如406A-C所示)建立电路,从而启动向后者处理器节点的存储器空间的传送。前处理器节点(例如,处理器A 402A)可以将RMMA地址空间发送到接收处理器节点(例如,处理器B402B),其可以访问驻留在所提供的地址空间上的相同数据。如果电路不再需要该存储器刀片(例如,存储器刀片406B)处的任何超级页面,则发送处理器可以将电路与远程存储器刀片406(如406A-C所示)拆除(例如,断开)。这种跨处理器节点传送地址空间的过程称为存储器切换。存储器切换过程如图2所示。如图4所示,其中处理器节点A 402A将存储在远程存储器刀片C 406中的数据发送到处理器节点B 402B。处理器B 402B启动具有远程存储器刀片C406的电路。注意,由于存储器刀片406可以具有多个通道,所以存储器刀片406的存储器空间可以跨多个处理器节点共享,每个存储器空间占用非存储器空间。此外,存储器切换的源和目的地侧可以分别称为切换和切入操作。
虽然上述计算环境是优选的,但并不意图是限制性的。本公开的分解计算系统的各方面可以在提供服务递送的传统云计算模型的数据中心中实现。因此,为了完整起见,以下部分提供了有关云计算的其他详细信息。
云计算
云计算使得能够方便地按需网络访问可以快速供应的可配置计算资源(例如,网络,网络带宽,服务器,处理,存储器,存储,应用,虚拟机和服务)的共享池。以最小的管理努力或与服务提供商的互动发布。该云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型,所有这些都在2009年10月7日由Peter Mell和Tim Grance撰写的“DraftNIST Working Definition of Cloud Computing”中更具体地描述和定义。
特别地,如下是典型特征:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置,因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
典型服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
典型部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,其关注于无状态,低耦合,模块化和语义互操作性。云计算的核心是包含互连节点网络的基础设施。特别地,在云计算节点中存在计算机系统/服务器,其可与许多其他通用或专用计算系统环境或配置一起操作。可适用于计算机系统/服务器的众所周知的计算系统,环境和/或配置的示例包括但不限于个人计算机系统,服务器计算机系统,瘦客户端,胖客户端,手持式或者膝上型设备,多处理器系统,基于微处理器的系统,机顶盒,可编程消费电子产品,网络PC,小型计算机系统,大型计算机系统,以及包括任何上述系统或设备的分布式云计算环境等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程,程序,对象,组件,逻辑,数据结构等。计算机系统/服务器可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
典型的云计算环境具有一组高级功能组件,其包括前端身份管理器,业务支持服务(BSS)功能组件,操作支持服务(OSS)功能组件和计算云组件。身份管理器负责与请求客户端连接以提供身份管理,并且该组件可以用一个或多个已知系统实现,例如可从位于Armonk,New York的IBM公司获得的的Tivoli Federated Identity Manager(TFIM)。在适当的情况下,TFIM可用于向其他云组件提供联合单点登录(F-SSO)。业务支持服务组件提供某些管理功能,例如计费支持。操作支持服务组件用于提供其他云组件的供应和管理,例如虚拟机(VM)实例。云组件表示主要计算资源,其通常是多个虚拟机实例,其用于执行可通过云访问的目标应用程序。一个或多个数据库用于存储目录,日志和其他工作数据。所有这些组件(包括前端身份管理器)都位于云“内”,但这不是必需的。在备选实施例中,身份管理器可以在云外部操作。服务提供商也可以在云外部运营。
一些云基于非传统IP网络。因此,例如,云可以基于具有使用MAC地址散列(hashes)的特殊单层IP路由的基于CLOS的两层网络。这里描述的技术可以用在这种非传统云中。
图5示出了支持资源虚拟化的典型IT基础设施,并且其中本公开的下述技术也可以全部或部分地实现。出于解释的目的,提供共享(公共)资源的IT数据中心是“提供者”,并且使用这些共享资源来托管,存储和管理其数据和应用程序(以所有形式)的客户或公司是“订户”(或“客户”或“租户”)。在图5中,示出了示例虚拟机托管环境(在本文中可选地称为数据中心或“云”)。该环境包括通常经由管理程序管理VLAN 506连接到物理数据中心网络504的主机(HV)502(例如,服务器或类似物理机器计算设备)。虽然没有明确描述,但是通常环境还包括负载平衡器,网络数据交换机(例如,架顶式交换机),防火墙等。如图5所示,物理服务器502均适于使用虚拟化技术动态地提供一个或多个虚拟机(VM)508。这种技术可从商业上获得,例如从VMware或其他技术获得。服务器虚拟化是本领域公知的技术。如图所示,可以将多个VM放置在单个主机中并共享主机的CPU,存储器和其他资源,从而提高组织数据中心的利用率。在该环境中,租户应用510被托管在网络设备512中,并且租户数据被存储在数据存储和数据库514中。应用和数据存储通常经由网络管理/存储VLAN 516连接到物理数据中心网络504。总的来说,虚拟机,应用程序和租户数据代表订户可访问的虚拟化资源管理域505.通过该域,订户的雇员可以访问和管理(使用各种基于角色的特权)他们已经由提供商分配的由物理IT基础架构支持的虚拟化资源。基础设施的底部示出了提供者可访问的管理域515。该域包括提供者员工管理门户518,BSS/OSS管理功能520,各种身份和访问管理功能522,安全策略服务器524和管理功能526以管理服务器镜像(images)528。这些功能通过管理VLAN 530与物理数据中心网络连接。提供商的员工具有专用权限(可能是特定的客户端/网络),他们可以从中访问运营和业务支持服务(OSS/BSS),他们用来管理IT数据中心基础设施(例如,硬件和软件安装,配置,监控,技术支持,计费等)。
概括地说,云计算基础设施提供虚拟机托管环境,其包括经由网络和一个或多个管理服务器连接的主机(例如,服务器或类似物理机计算设备)。通常,物理服务器均适于使用虚拟化技术动态提供一个或多个虚拟机,例如VMware ESX/ESXi。可以将多个VM放入单个主机并共享主机的CPU,存储器和其他资源,从而提高组织数据中心的利用率。在其他任务中,管理服务器监视基础结构并根据需要自动操纵VM放置,例如,通过在主机之间移动虚拟机。
分解计算系统
通过提供若干代表性操作环境的以上描述,现在更详细地描述在硬件云环境内操作的分解计算系统。如上所述,分解计算系统是这样一种计算系统,其中数据中心内或跨数据中心的服务器资源被“分解”到共享服务器资源池中,即,一个或多个:计算池,存储器池,加速器池,存储池等。通过从这些资源池分配,动态构建服务器,例如,按需并基于工作负载要求。这种类型的分解计算系统跟踪共享服务器资源池中可用的资源,并基于该信息管理这些资源。
现在参考图6,图6显示了代表性的分解计算系统600。在一个实施例中,分解的计算系统600配置在数据中心605内,其中使用切换光学连接的存储器架构。以上在图1-4的上下文中描述了该架构。但是,这不是限制性的。在分解的计算系统600中,存在共享服务器池,例如,计算池602,存储器池604,加速器池606,存储池608,以及可能还有其他。可能存在资源池的单个实例,或多个此类实例(有时称为“多个池”)。在本文的方法中,通过从这些资源池分配,动态地(例如,按需并且基于工作负载要求)构建服务客户工作负载的特定服务器。因此,例如,第一服务器实体610可以包括CPU 602a(从计算池602中选择或以其他方式获得),存储器604b(从存储器池604中选择或以其他方式获得),加速器606c(从加速器池606中选择或以其他方式获得)和存储器608d(从存储池608中选择或以其他方式获得)。第二服务器实体612可以包括CPU 602b,存储器604a,加速器606b和存储器608a。这些例子仅仅是代表性的。而且,如将要描述的,包括给定服务器实体的特定服务器池资源可以改变。
优选地,一旦资源池的特定资源与给定服务器实体相关联,该特定资源就不可用于构成另一服务器实体。换句话说,优选地,资源池的分配资源保持与服务器实体相关联,直到它被解除分配,此时资源被返回到资源池并且可以被另一个服务器实体再次使用。尽管不是限制性的,但优选地,服务器实体(一旦创建)与一个且仅一个数据中心客户(租户)相关联。换句话说,服务器实体优选地不在租户之间共享。
为了管理这样的分配和解除分配,并且根据本公开,分解的计算系统600具有跟踪共享服务器资源池中可用的以及分配或解除分配给各种服务器实体的资源的能力。为此,分解的计算系统600包括(或与之相关联)跟踪系统,该跟踪系统包括资源分配机制614和相关联的数据库系统616.通常,跟踪系统被实现为数据处理系统,并且它可以以独立方式或作为数据中心中某些其他系统或功能的组件进行操作。
通常,资源分配机制614以软件实现,即,作为一组计算机程序指令,在一个或多个硬件处理器中执行。资源分配机制614可以包括一个或多个子系统或模块,过程,程序或执行线程,并且这些组件可以共同定位或分布。资源分配机制614通常负责执行根据本公开的创建和管理服务器实体的一个或多个分配算法。如下所述,代表性算法包括,例如,用于执行服务器实体的初始构建的新服务器分配算法,当需要更多容量来处理工作负载时,在现有服务器的情况下用于添加更多服务器的服务器扩展算法,以及当需要较少容量处理工作负载时,在现有服务器的情况下,用于从现有服务器实体解除分配(流失)资源的服务器缩减算法。可以组合这些功能中的一个或多个,并且可以由资源分配机制614实现其他类型的算法。
包括资源分配机制614的一个或多个算法使用存储在数据库系统616中的信息来执行管理功能。如上所述,数据库系统616存储跟踪共享服务器池中的各种资源的状况(state),状态(status)或其他属性(properties)和属性(attributes)的信息。此外,优选地数据库存储有关由资源分配机制构建的每个服务器实体的信息。通常而言并且众所周知,数据库系统616包括数据库618,即,以一种或多种方式(例如,通过模式,表格,查询,报告,视图和其他对象)组织的数据集合,以及数据库管理系统(DBMS)620,其是与用户,其他应用程序和数据库交互以捕获和分析数据的计算机软件应用程序。通用DBMS支持数据库的定义,创建,查询,更新和管理。代表性的DBMS是
在一个实施例中,数据库618是关系型的。数据库存储数据记录(或更一般地,数据集),对于每个定义的服务器实体,该数据记录标识构成服务器的资源。优选地,数据记录与标识符,唯一服务器ID相关联,并且包括服务器的每个资源在数据库中与该唯一服务器标识符相关联。因此,继续上述示例,第一服务器实体610可以与唯一服务器ID1相关联,而第二服务器612可以与用户服务器ID2相关联,等等。
还如所描述的,优选地,资源池的各个组件还包括在数据库中跟踪的标识符;当资源被分配给服务器实体时,资源的标识符然后与服务器实体相关联(交叉引用)。因此,继续上面的第一示例,CPU 602a,存储器604b,网络加速器606c和存储器608d的各种资源特定标识符(通过关系表或其他方式)与唯一服务器ID1相关联,唯一服务器ID1是用于第一服务器实体610的唯一服务器标识符。类似地,并且继续第二示例,CPU 602b,存储器604a,加速器606b和存储器610a的各种资源特定标识符与唯一服务器ID2相关联,唯一服务器ID2是第二服务器实体的唯一服务器标识符,并且对于每个服务器实体以此类推。
当首次构建服务器实体时,它包括由资源分配机制从服务器池中选择的一组一个或多个服务器池资源。因此,服务器实体的唯一服务器标识符将具有与其相关联的初始资源特定标识符集。随着稍后从服务器实体分配或解除分配资源,与特定服务器实体标识符相关联的组成资源标识符集合也因此改变。
如上所述,可能存在资源池的多个实例。当存在多个实例时,然后从这些实例中的一个或多个中选择用于支持服务器实体的特定资源。优选地,如果分配给资源池的第一实例的资源用于构建服务器实体,则当需要向该服务器实体添加容量时,优选地,在可能的情况下也从相同的实例中提取附加资源。
优选地,资源特定标识符提供关于资源状态,属性,与其他资源的关系等的信息。因此,可以集中或分布的数据库充当关于服务器实体、服务器池和包括特定服务器实体的各种资源的信息的储存库。
尽管关系数据库对于实现是有用的,但是服务器实体标识符和资源特定标识符可以以其他方式彼此相关,例如,作为链接列表,数据阵列,散列表或其他。
通常,资源分配机制614和数据库系统616一起工作以管理分解的计算系统。资源分配机制用作跟踪系统,跟踪空闲和使用的CPU,存储器,加速器和定义服务器的其他组件。此外,跟踪系统记录每个定义的服务器的何种CPU,存储器,加速器或是服务器一部分的其他组件。如上所述,并且对于每个定义的服务器,指定唯一ID,并且从空闲资源池中选择所请求的CPU,存储器和存储(storage)的数量,例如,基于将进一步描述的它们的位置,最佳匹配和未来的扩展需求。唯一的服务器ID以及这些资源中的每一个的ID都记录在跟踪系统中。优选地,并且如上所述,使用过的组件被标记为已使用过并且从空闲组件池中移除。
优选地,服务器实体的每个组件都标记有作为其一部分的唯一服务器ID。因此,使组件知道其是由唯一服务器ID标识的服务器实体的组件。
优选地,发布给分解计算系统的每个请求以及响应于该请求而接收的数据也用服务器实体ID标记。例如,当在资源处接收到请求时,资源然后将标记为请求的服务器实体ID与资源的服务器实体ID进行比较。换句话说,该组件具有检查请求是否与已经分配了组件的服务器实体ID匹配的能力。如果是,则组件将请求识别为可以被消费并采取行动的事物。当标记到请求的服务器实体ID与标记到组件的服务器实体ID不匹配时,组件知道可以忽略该请求。
存储器池的多租户存储器服务
根据本公开,通过存储器管理服务增强了图6的“分解服务器”架构。可以看出,存储器管理服务为存储器池提供了唯一的存储器管理能力,从而使存储器池(以及数据中心)能够更有效地运行并具有更高的性能和更大的存储器利用率。
假设存储器池。如上所述,在这种类型的分解计算系统中,来自存储器池的存储器组件可以在不同的租户和处理组件之间使用,重用或共享。存储器管理服务可能负责创建存储器池,但这不是必需的。通常,在池中管理的基本存储器组件是存储器模块分配块(例如,DIMM模块)。然而,这不是限制,因为池中的存储器组件(或“资源”)可以是任何其他类型的物理存储器结构。
存储器管理服务可以由“存储器管理器”组件或机制实现。现在参考图7,描绘了存储器管理服务的实现。在该示例中,示出了数据中心700的一部分,并且包括标识为“计算抽屉”702的处理器池和标识为“存储器抽屉”704的存储器池。计算抽屉702包括框706,处理器(通常是CPU),每个处理器通常包括一个或多个CPU 708.存储器抽屉704包括存储器块710,每个存储器通常包括一个或多个DIMM模块712.传统上,典型的加载-存储操作714由其他管理功能管理,例如上面参考图6描述的资源分配机制。根据本公开,存储器管理服务715包括便于存储器管理服务的操作的服务处理器716,如将描述的。服务处理器716可以是独立机制,或者它可以是另一个存储器控制器的一部分。服务处理器716包括控制服务操作的存储器服务代码。该代码包括一个或多个计算机程序(每个包括程序指令集),这些计算机程序在硬件中执行以执行服务的功能。在高级别,服务处理器操作以(从存储器抽屉704)动态地获取执行其功能所需的存储器。优选地,存储器管理服务对于未针对有效使用加载-存储操作而优化的工作负载是可操作的,尽管这不是限制。
因此,如图7中所示,创建存储器池(存储器抽屉704),并且可以通过存储器管理服务从其中将不同的存储器模块分配给处理器708的不同实例。优选地,服务以最小的分配粒度从存储器抽屉分配存储器模块712,并因此在可能时共享带宽。尽管可以分配存储器模块712以在不同用户/租户的两个不同实例之间共享,但是通常这是不期望的,因为这样的共享使用对于从该模块可用的全部带宽(就读/写而言)具有影响,如果超过一个租户同时访问该模块。因此,优选地,存储器模块一次被分配给一个租户。因此,不同的存储器块被分配给不同的租户,存储器服务可操作以将存储器块从一个裸机服务(bare metal service)切换到另一个,或者除了使该实例保持温暖(warm)并且准备好工作开始时非常快速地恢复之外则如果不需要就暂停它。以这种方式,存储器服务为每个存储器组件提供快速灵活性和弹性。
因此,并且如图7所示,本发明的存储器服务优选地占据整个存储器系统(存储器池)的一些可配置部分,其余部分可用于典型的高性能加载存储操作。还如图所示,利用存储器服务715的请求由处理器716管理,处理器716作为存储器池控制器操作,并且特别地,在系统已经可访问的实际存储器池上提供优化的数据组织能力。为此,存储器服务提供了在硬件中实现某些类型的数据存储的能力,包括在数据结构级别。在优选实施例中,并且如将要描述的,存储器服务通过在存储器池中创建和管理高性能,可重用数据结构实现来提供存储容量节省。此外,并且还将描述,该服务提供各种分析(例如,多租户相似性,重复检测等)以确定数据组织是否以及何时值得做。如将看到的,服务优选地增加数据结构性能,并且通过数据结构中的相似性和重复检测(甚至在工作负载之间)进一步利用和减少容量需求以节省存储空间。
如本文所使用的,“数据结构”的概念指的是工作负载基于其访问数据的需要的方式使用的数据的组织。例如,如果顺序访问是工作负载的主要访问方法,或者如果更多随机访问占主导地位,则某些程序员可以选择将其数据放入“链表”中,或者将其数据放入“哈希表”中。其他类型的数据结构包括但不限于树,数组,堆栈,队列等。数据结构可以是两种或更多种数据结构类型的混合。通常地,数据结构是指用于组织工作负载中的数据的构造。通常,程序员根据他或她对工作负载需求或要求的理解来选择数据结构。
根据本发明的技术,并且如将进一步描述,存储器服务优选地执行各种形式的数据结构优化(当这样做是有意义的时)。在一个数据结构优化中,可能有机会通过数据结构中的数据的重复数据删除和压缩来减少聚合所占用的空间。在另一种数据结构优化中,可以随时间调整数据结构以确保用于插入和检索数据的最佳性能。后一种调整的大部分通常针对性能。例如,可以重新散列具有针对特定散列值的过多条目的散列表,或者重新平衡树等。用于提高数据结构的性能或节省数据结构的存储器的数据结构的其他优化也可是以实现的。
因此,并且作为可以如何优化数据结构性能的示例,存储器服务选择性地操作以将存储器重新对准可以更有效的不同数据结构,例如,给定特定数据使用模式和/或数据分布。为此,优选地,存储器管理器监视数据使用模式和数据分布,并确定是否以及何时改变(或补充)当前正在使用的数据结构。可以利用已知的基于使用和基于分布的性能优化方案来支持存储器服务的数据结构的重新对齐。这种基于使用的优化可以包括但不限于压缩数据结构内的冷数据,将非常冷的数据移动到储存器(storage),基于使用趋势预加载高速缓存中的热数据等。代表性的基于分布的优化方案包括但不限于应用于基于散列的结构的重新散列算法,应用于基于树的结构的重新平衡算法等。
存储器服务的另一方面提供存储器池的自动备份,例如,备份存储资源。图8描绘了这种情况。如图8所示,数据中心800包括计算抽屉802和存储器抽屉804,以及存储器服务815。此外,数据中心包括存储池,标识为存储抽屉806,其包括一组数据存储808。至少一些数据存储810被提供用于备份。为此,存储器管理器服务815通过处理或来自工作负载的程序指令来跟踪和开发对数据集组织的理解。然后,在任何时间以最小的中断执行到存储池的定期或定向备份操作812,因为(如图所示)数据副本不需要经过计算池的处理器。优选地,相对于特定数据集执行备份。非缓存数据最好直接复制到备份存储,而缓存数据则刷新到主存储器,然后直接复制到备份存储。或者,备份被配置为在已经发生高速缓存刷新的事件(例如,页面错误)期间发生。
因此,优选地,存储器服务通过提供以下中的一个或多个来管理存储器池:容量保存,性能优化和弹性。
以下提供了优选容量保存技术的其他细节。在该方法中,优选地将数据存储在具有指针的块中。然后,例如通过索引和比较分析来识别公共数据块。当找到公共数据块时,执行分析以确定它们随时间的稳定性。如果公共数据块被认为是稳定的(基于可配置标准),则存储器服务消除重复并将其指针指向第一副本。然后管理该单个数据副本,其被称为超额订阅值(例如,利用存储器管理器根据需要更新稳定的超额订购值的增量)。然而,如果公共数据块不被认为是稳定的,则优选地不进行数据消除。
图9描绘了本公开的容量保存例程的处理流程。通常,并且如上所述,例程用于通过数据结构中的相似性和重复检测来利用和减少容量需求,以节省存储空间。例程可以针对特定工作负载或甚至跨工作负载进行操作。图9中所示的处理流程描绘了跨工作负载示例。例程开始于步骤900,数据存储在具有指针的块中。在步骤902,优选地通过已知的索引和比较分析方案来识别公共数据块。在步骤904,并且对于找到的每个公共数据块,执行测试以确定公共数据块是否随时间稳定。用于评估稳定性的标准的性质可以变化,但是通常步骤904测试以确定公共数据块中的值是否已经在配置的时间段内,通过配置的一组操作等而改变。如果步骤904的测试结果是肯定的,则认为公共数据块是稳定的;然后,控制分支到步骤906,在该步骤,存储器服务消除重复。在步骤908,存储器服务将其指针指向第一副本,然后将其称为“超额订阅值”。然而,如果步骤904的测试结果是否定的,则认为公共数据块是不稳定的。例程然后终止。
尽管假定超额订购值是稳定的,但是可能存在其中一个工作负荷需要随后改变超额订购数据值的情况。在预期不会频繁发生的这种情况下,存储器服务执行分析以确定是否可以比存储新值更便宜地计算和存储超额订购值的增量。如果可以使用缩小的大小存储增量值,则会创建增量值,然后将工作负载的指针指向增量。如果delta值与原始大小一样大或几乎一样大,那么超额预订位置将被复制,并且每个值都保持为单独的值。超额订购值的这种管理被描绘为步骤910,其在步骤908之后。
管理者还监督更新稳定的超额认购价值的增量所需的工作。这被描绘为步骤912。特别地,如果其中一个增量变化太大(优选地使用在步骤904中使用的相同阈值)并且不再稳定,则管理器将增量作为新值中断并且相应调整其指针。如果不再稳定的值是基本超额订阅值,则管理器执行分析以确定哪个增量最稳定,并且它将成为新的基值。然后将旧基数分解为单独的非超额认购价值。然而,如果没有一个增量是稳定的,则优选地将它们和基值全部分解为新的未订阅值。
该方法提供了显著的优点。存储器服务提供高性能,并且接近硬件实现。它支持构建和重用数据结构以进行存储器池控制,从而减少每个工作负载生成的低效、可能不安全的实现。该方法通过数据组织促进高效的稳态存储器管理操作。特别地,存储器服务在系统已经可访问的实际存储器池上提供高度优化的数据组织能力。通过管理超额订阅值(如关于图9所描述的),管理器确定相似性和重复检测优化是否值得做以给出数据的稳定性,从而防止昂贵的副本和记录保存。使用这些优化时,它们在存储器中执行以优化性能。此外,自动备份功能提供了一种硬件启用的方法,可以有效地将数据从存储器池中拉出以进行备份。优选地,存储器管理器不进行数据拷贝以促进其基本操作。硬件结构还允许生成复制品的有效方式,而无需通过处理器的昂贵操作。
因此,本文的方法优化了分解系统中的主存储器使用,优选地通过添加基于硬件的数据组织机制的实现(即,数据结构操作,数据结构性能优化,操作时间,存储器内重复数据删除等),以提高交叉租户的利用率。以这种方式,存储器服务使得能够通过实际存储器向计算节点提供更高级别的数据组织能力。在这种方法中,不需要为计算节点提供一系列存储器;相反,数据组织能力(即集体数据结构等)以能够在硬件和软件中利用后端优化的方式提供。此外,这里的方法不需要多个主机或客户端/服务器安装来创建虚拟存储器系统。
本文描述的优点由存储器管理服务提供,该存储器管理服务分配可以将不同存储器模块分配给处理器的不同实例的存储器池。构建存储器服务结构(可以是数据结构级别)以在硬件中实现存储。该服务的实施例还包括容量节省功能,其优选地通过数据结构中的相似性和重复检测来利用和减少容量需求。该服务的又一实施例还提供了将存储器重新对准到不同数据结构的能力,考虑到数据的使用模式和分布,这些数据结构可能更有效。该服务的又一实施例还提供自动备份并因此提供增强的数据弹性,优选地通过使备份操作能够发生而不需要副本通过处理器。
如已经描述的,上述功能可以实现为独立方法,例如,由处理器执行的基于软件的功能,或者可以作为服务提供(包括通过SOAP/XML接口作为web服务)。这里描述的特定硬件和软件实现细节仅用于说明目的并不意味着限制所描述主题的范围。
更一般地,在所公开的主题的上下文内的计算设备每个都是包括硬件和软件的数据处理系统,并且这些实体通过网络彼此通信,例如因特网,内联网,外联网,专用网络或任何其他通信媒介或链接。数据处理系统上的应用程序为Web和其他已知服务和协议提供本机支持,包括但不限于对HTTP,FTP,SMTP,SOAP,XML,WSDL,UDDI和WSFL等的支持。有关SOAP,WSDL,UDDI和WSFL的信息可从万维网联盟(W3C)获得,该联盟负责开发和维护这些标准;有关HTTP,FTP,SMTP和XML的更多信息可从Internet Engineering Task Force(IETF)获得。假定熟悉这些已知的标准和协议。
本文描述的技术可以在各种服务器端体系结构中实现或与其结合实现,包括简单的n层体系结构,web门户,联合系统等。如已经指出的,这里的技术也可以在松散耦合的服务器(包括基于“云”的)环境中实现。
更一般地,本文描述的主题可以采用完全硬件实施例,完全软件实施例或包含硬件和软件元素的实施例的形式。在优选实施例中,可信平台模块功能以软件实现,包括但不限于固件,驻留软件,微代码等。此外,下载和删除接口和功能可以采用可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或与其结合使用的程序代码。出于本说明书的目的,计算机可用或计算机可读介质可以是能够包含或存储程序以供指令执行系统,装置或设备使用或与其结合使用的任何装置。介质可以是电子,磁,光,电磁,红外或半导体系统(或装置或设备)。计算机可读介质的示例包括半导体或固态存储器,磁带,可移动计算机磁盘,随机存取存储器(RAM),只读存储器(ROM),刚性磁盘和光盘。光盘的当前示例包括压缩盘-只读存储器(CD-ROM),压缩盘-读/写(CD-R/W)和DVD。计算机可读介质是有形的,非暂时性的物品。
计算机程序产品可以是具有程序指令(或程序代码)的产品,以实现所描述的一个或多个功能。在通过网络从远程数据处理系统下载之后,那些指令或代码可以存储在数据处理系统中的非暂时性计算机可读存储介质中。或者,那些指令或代码可以存储在服务器数据处理系统中的计算机可读存储介质中,并且适于通过网络下载到远程数据处理系统,以用于远程系统内的计算机可读存储介质。
在代表性实施例中,接口和实用程序在专用计算平台中实现,优选地在由一个或多个处理器执行的软件中实现。软件保存在与一个或多个处理器相关联的一个或多个数据存储器或存储器中,并且软件可以实现为一个或多个计算机程序。总的来说,这种专用硬件和软件包括上述功能。
虽然以上描述了由本发明的某些实施例执行的特定操作顺序,但是应该理解,这种顺序是示例性的,因为替代实施例可以以不同的顺序执行操作,组合某些操作,重叠某些操作,等等。说明书中对给定实施例的引用指示所描述的实施例可以包括特定特征,结构或特性,但是每个实施例可以不必包括特定特征,结构或特性。
最后,虽然已经分别描述了系统的给定组件,但是普通技术人员将理解,可以在给定指令,程序序列,代码部分等中组合或共享一些功能。
本文的技术通常提供对技术或技术领域的上述改进,例如数据中心架构,分解计算环境等,以及对诸如上文所述的工作负荷管理方案的具体技术改进。
Claims (19)
1.一种在多租户计算环境中管理存储器的方法,包括:
提供存储器资源池;
对于给定的工作负载,将存储器资源从存储器资源池分配给一组处理器;
根据数据结构在分配的存储器资源中组织给定工作负载的数据;
确定在给定工作负载的数据结构中重新组织数据是否会提高数据结构的性能或节省数据结构使用的存储器;和
在确定重新组织数据将提高性能或节省存储器时,采取给定动作来管理数据,
其中所述给定动作检测数据相似性或重复,并且响应于此,从所分配的存储器资源中消除给定数据,并且
其中通过以下方式检测数据相似性或重复:
识别多个租户或多个进程公共数据块;
在识别公共数据块时,根据可配置的阈值确定公共数据块是否稳定;
在确定公共数据块是稳定的时,消除重复的公共数据块;
将公共数据块的实例关联为共享公共数据块;和
为多个租户或多个进程提供指向共享公共数据块的指针。
2.如权利要求1所述的方法,还包括:
确定第一个租户的共享公共数据块的值已经改变;
确定为第一个租户存储共享公共数据块的增量值是否在计算上更便宜;和
在确定计算上较便宜时,为第一个租户存储共享公共数据块的增量值。
3.如权利要求2所述的方法,还包括:
确定为第一个租户存储共享公共数据块的新值是否在计算上更便宜;和
一旦确定存储新值在计算上更便宜,则为第一个租户存储共享公共数据块的新值。
4.如权利要求1所述的方法,其中管理数据的给定动作包括:
监控数据的数据分布或使用模式;和
基于监控,应用优化来调整数据结构。
5.如权利要求1所述的方法,还包括:
分析数据集以生成数据集模式;
在不使用处理器的情况下定期备份数据集;和
在备份操作之前将缓存的数据刷新到主存储器。
6.如权利要求1所述的方法,其中,所述数据结构基于给定工作负载的访问要求来组织数据。
7.一种在多租户计算环境中管理存储器的装置,包括:
一个或多个硬件处理器;
计算机存储器,保存由硬件处理器执行的计算机程序指令,并用于:
组织存储器资源池;
对于给定的工作负载,将存储器资源从存储器资源池分配给一组处理器;
根据数据结构组织分配的存储器资源中给定工作负载的数据;和
确定在给定工作负载的数据结构中重新组织数据是否会提高数据结构的性能或节省数据结构使用的存储器;和
在确定重新组织数据将提高性能或节省存储器时,采取给定动作来管理数据,
其中所述给定动作检测数据相似性或重复,并且响应于此,从所分配的存储器资源中消除给定数据,并且
其中通过以下方式检测数据相似性或重复:
识别多个租户或多个进程公共数据块;
在识别公共数据块时,根据可配置的阈值确定公共数据块是否稳定;
在确定公共数据块是稳定的时,消除重复的公共数据块;
将公共数据块的实例关联为共享公共数据块;和
为多个租户或多个进程提供指向共享公共数据块的指针。
8.如权利要求7所述的装置,其中所述计算机程序指令还用于:
确定第一个租户的共享公共数据块的值已更改;
确定为第一个租户存储共享公共数据块的增量值是否在计算上更便宜;和
在确定计算上更便宜时,存储第一租户的共享公共数据块的增量值。
9.如权利要求8所述的装置,其中所述计算机程序指令还用于:
确定为第一个租户存储共享公共数据块的新值是否在计算上更便宜;和
在确定存储新值在计算上更便宜时,为第一个租户存储共享公共数据块的新值。
10.如权利要求7所述的装置,其中管理数据的给定动作包括:
监控数据的数据分布或使用模式;和
基于监控,应用优化来调整数据结构。
11.如权利要求7所述的装置,其中所述计算机程序指令还用于:
分析数据集以生成数据集模式;
在不使用处理器的情况下定期备份数据集;和
在备份操作之前将缓存的数据刷新到主存储器。
12.如权利要求7所述的装置,其中,所述数据结构基于所述给定工作负载的访问要求来组织所述数据。
13.一种非暂时性计算机可读介质,用于在数据处理系统中管理多租户计算环境中的存储器,所述非暂时性计算机可读介质上存储有计算机程序指令,所述计算机程序指令被所述数据处理系统执行时用于:
组织存储器资源池;
对于给定的工作负载,将存储器资源从存储器资源池分配给一组处理器;
根据数据结构组织分配的存储器资源中给定工作负载的数据;
确定在给定工作负载的数据结构中重新组织数据是否会提高数据结构的性能或节省数据结构使用的存储器;和
在确定重新组织数据将提高性能或节省存储器时,采取给定动作来管理数据,
其中所述给定动作检测数据相似性或重复,并且响应于此,从所分配的存储器资源中消除给定数据,并且
其中通过以下方式检测数据相似性或重复:
识别多个租户或多个进程公共数据块;
在识别公共数据块时,根据可配置的阈值确定公共数据块是否稳定;
在确定公共数据块是稳定的时,消除重复的公共数据块;
将公共数据块的实例关联为共享公共数据块;和
为多个租户或多个进程提供指向共享公共数据块的指针。
14.如权利要求13所述的非暂时性计算机可读介质,其中所述计算机程序指令还用于:
确定第一个租户的共享公共数据块的值已更改;
确定为第一个租户存储共享公共数据块的增量值是否在计算上更便宜;和
在确定计算上更便宜时,存储第一租户的共享公共数据块的增量值。
15.如权利要求14所述的非暂时性计算机可读介质,其中所述计算机程序指令还用于:
确定为第一个租户存储共享公共数据块的新值是否在计算上更便宜;和
在确定存储新值在计算上更便宜时,为第一个租户存储共享公共数据块的新值。
16.如权利要求13所述的非暂时性计算机可读介质,其中管理数据的给定动作包括:
监控数据的数据分布或使用模式;和
基于监控,应用优化来调整数据结构。
17.如权利要求13所述的非暂时性计算机可读介质,其中所述计算机程序指令还用于:
分析数据集以生成数据集模式;
在不使用处理器的情况下定期备份数据集;和
在备份操作之前将缓存的数据刷新到主存储器。
18.如权利要求13所述的非暂时性计算机可读介质,其中所述数据结构基于所述给定工作负载的访问要求来组织所述数据。
19.一种数据中心设施,包括:
存储器池;
光学互连;和
存储器管理器,其在硬件元件中执行并且可操作以管理从存储器资源池到多个租户工作负载的一组处理器的存储器资源的分配,根据数据结构组织给定租户工作负载的数据,并且确定在给定工作负载的数据结构中重新组织数据是否会提高数据结构的性能或节省数据结构使用的存储器,以及在确定重新组织数据将提高性能或节省存储器时,采取给定动作来管理数据,
其中所述给定动作检测数据相似性或重复,并且响应于此,从所分配的存储器资源中消除给定数据,并且
其中通过以下方式检测数据相似性或重复:
识别多个租户或多个进程公共数据块;
在识别公共数据块时,根据可配置的阈值确定公共数据块是否稳定;
在确定公共数据块是稳定的时,消除重复的公共数据块;
将公共数据块的实例关联为共享公共数据块;和
为多个租户或多个进程提供指向共享公共数据块的指针。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/092,699 US9811281B2 (en) | 2016-04-07 | 2016-04-07 | Multi-tenant memory service for memory pool architectures |
US15/092,699 | 2016-04-07 | ||
PCT/IB2017/051381 WO2017175078A1 (en) | 2016-04-07 | 2017-03-09 | Multi-tenant memory service for memory pool architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108885582A CN108885582A (zh) | 2018-11-23 |
CN108885582B true CN108885582B (zh) | 2022-07-29 |
Family
ID=59999377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780020208.1A Active CN108885582B (zh) | 2016-04-07 | 2017-03-09 | 存储器池结构的多租户存储器服务 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9811281B2 (zh) |
JP (1) | JP6963558B2 (zh) |
CN (1) | CN108885582B (zh) |
DE (1) | DE112017000629T5 (zh) |
GB (1) | GB2557125B (zh) |
WO (1) | WO2017175078A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10298516B2 (en) * | 2016-04-19 | 2019-05-21 | Hyland Switzerland Sàrl | System and methods for sharing resources among application modules |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
US11232091B2 (en) | 2016-09-29 | 2022-01-25 | Vmware, Inc. | Software-defined data center (SDDC) rack quick discovery after hardware management system (HMS) restart |
US10417211B2 (en) | 2016-09-29 | 2019-09-17 | Vmware, Inc. | Quick hardware inventory of a software-defined data center (SDDC) multi-rack |
US10462221B2 (en) * | 2017-02-25 | 2019-10-29 | Vmware, Inc. | Distributed storage resource management in a hyper converged infrastructure |
US10684893B2 (en) | 2017-02-25 | 2020-06-16 | Vmware, Inc. | Methods and apparatus to manage compute resources in a hyperconverged infrastructure computing environment |
US10454844B2 (en) * | 2017-03-08 | 2019-10-22 | A10 Networks, Inc. | Dynamic capacity planning for application delivery platform across multiple cloud deployment |
US10402124B2 (en) * | 2017-03-30 | 2019-09-03 | Intel Corporation | Dynamically composable computing system, a data center, and method for dynamically composing a computing system |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US10713092B2 (en) * | 2018-01-02 | 2020-07-14 | Jpmorgan Chase Bank, N.A. | Dynamic resource management of a pool of resources for multi-tenant applications based on sample exceution, query type or jobs |
US10649813B2 (en) * | 2018-03-29 | 2020-05-12 | Intel Corporation | Arbitration across shared memory pools of disaggregated memory devices |
US10719418B2 (en) | 2018-05-31 | 2020-07-21 | International Business Machines Corporation | Replicating workload data according to a degree of resiliency for disaster recovery in disaggregated datacenters |
US10891206B2 (en) | 2018-05-31 | 2021-01-12 | International Business Machines Corporation | Disaster recovery orchestration and capacity planning in disaggregated datacenters |
US11243846B2 (en) | 2018-05-31 | 2022-02-08 | International Business Machines Corporation | Replicating workload and state data for disaster recovery in disaggregated datacenters |
US10983881B2 (en) | 2018-05-31 | 2021-04-20 | International Business Machines Corporation | Disaster recovery and replication in disaggregated datacenters |
US11036599B2 (en) | 2018-05-31 | 2021-06-15 | International Business Machines Corporation | Disaster recovery and replication according to workload priorities in disaggregated datacenters |
US11163713B2 (en) | 2018-09-25 | 2021-11-02 | International Business Machines Corporation | Efficient component communication through protocol switching in disaggregated datacenters |
US10637733B2 (en) | 2018-09-25 | 2020-04-28 | International Business Machines Corporation | Dynamic grouping and repurposing of general purpose links in disaggregated datacenters |
US10831698B2 (en) | 2018-09-25 | 2020-11-10 | International Business Machines Corporation | Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters |
US10915493B2 (en) | 2018-09-25 | 2021-02-09 | International Business Machines Corporation | Component building blocks and optimized compositions thereof in disaggregated datacenters |
US11182322B2 (en) | 2018-09-25 | 2021-11-23 | International Business Machines Corporation | Efficient component communication through resource rewiring in disaggregated datacenters |
US10802988B2 (en) * | 2018-09-25 | 2020-10-13 | International Business Machines Corporation | Dynamic memory-based communication in disaggregated datacenters |
US11650849B2 (en) | 2018-09-25 | 2023-05-16 | International Business Machines Corporation | Efficient component communication through accelerator switching in disaggregated datacenters |
US10671557B2 (en) | 2018-09-25 | 2020-06-02 | International Business Machines Corporation | Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters |
US11012423B2 (en) | 2018-09-25 | 2021-05-18 | International Business Machines Corporation | Maximizing resource utilization through efficient component communication in disaggregated datacenters |
US10855532B2 (en) * | 2018-10-08 | 2020-12-01 | Dell Products L.P. | System and method to perform solution aware server compliance and configuration |
US10915370B2 (en) * | 2018-11-29 | 2021-02-09 | International Business Machines Corporation | Inter-host communication without data copy in disaggregated systems |
US11422912B2 (en) | 2019-04-19 | 2022-08-23 | Vmware, Inc. | Accurate time estimates for operations performed on an SDDC |
US11609845B2 (en) * | 2019-05-28 | 2023-03-21 | Oracle International Corporation | Configurable memory device connected to a microprocessor |
US11424940B2 (en) | 2019-06-01 | 2022-08-23 | Vmware, Inc. | Standalone tool for certificate management |
US11669246B2 (en) * | 2019-08-19 | 2023-06-06 | International Business Machines Corporation | Storage allocation enhancement of microservices |
US11316713B2 (en) | 2019-11-25 | 2022-04-26 | International Business Machines Corporation | Virtual drawers in a server |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
US11513860B2 (en) * | 2020-01-31 | 2022-11-29 | Red Hat, Inc. | Serverless function colocation with storage pools |
US11429518B2 (en) * | 2020-12-08 | 2022-08-30 | Microsoft Technology Licensing, Llc | Paging in thin-provisioned disaggregated memory |
US20220398221A1 (en) * | 2021-06-10 | 2022-12-15 | EMC IP Holding Company LLC | Persistent memory tiering supporting fast failover in a deduplicated file system |
US11829249B2 (en) | 2021-06-10 | 2023-11-28 | EMC IP Holding Company LLC | Fast failover of a deduplicated file system through huge memory pages |
US12007915B1 (en) | 2023-08-10 | 2024-06-11 | Morgan Stanley Services Group Inc. | Field programmable gate array-based low latency disaggregated system orchestrator |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002042862A2 (en) * | 2000-11-21 | 2002-05-30 | Thomson Licensing S.A. | A system and process for mediated crawling |
DE102011084344A1 (de) * | 2011-10-12 | 2013-04-18 | Siemens Aktiengesellschaft | Verfahren zur Laufzeitoptimierung bei paketorientierter Mobilfunkübertragung von Datentelegrammen |
CN103875210A (zh) * | 2011-10-14 | 2014-06-18 | 阿尔卡特朗讯公司 | 在通信环境中提供动态可靠性和安全性 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6771595B1 (en) * | 1999-08-31 | 2004-08-03 | Intel Corporation | Apparatus and method for dynamic resource allocation in a network environment |
US7305399B2 (en) * | 2000-03-09 | 2007-12-04 | The Web Access, Inc. | Method and apparatus for applying a parametric search methodology to a directory tree database format |
US7356655B2 (en) | 2003-05-15 | 2008-04-08 | International Business Machines Corporation | Methods, systems, and media for managing dynamic storage |
US7529785B1 (en) | 2006-02-28 | 2009-05-05 | Symantec Corporation | Efficient backups using dynamically shared storage pools in peer-to-peer networks |
US7818535B1 (en) * | 2007-06-30 | 2010-10-19 | Emc Corporation | Implicit container per version set |
US8082400B1 (en) * | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
US8458393B2 (en) * | 2008-03-31 | 2013-06-04 | Spansion Llc | Flash memory and operating system kernel |
US20100205381A1 (en) | 2009-02-06 | 2010-08-12 | Canion Rodney S | System and Method for Managing Memory in a Multiprocessor Computing Environment |
US9811662B2 (en) * | 2010-05-03 | 2017-11-07 | Panzura, Inc. | Performing anti-virus checks for a distributed filesystem |
US8341368B2 (en) | 2010-06-07 | 2012-12-25 | International Business Machines Corporation | Automatic reallocation of structured external storage structures |
US20120001925A1 (en) * | 2010-06-30 | 2012-01-05 | Ati Technologies, Ulc | Dynamic Feedback Load Balancing |
US9009724B2 (en) * | 2010-09-24 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Load balancing data access in virtualized storage nodes |
CN102681899B (zh) * | 2011-03-14 | 2015-06-10 | 金剑 | 云计算服务平台的虚拟计算资源动态管理方法 |
US8935506B1 (en) | 2011-03-31 | 2015-01-13 | The Research Foundation For The State University Of New York | MemX: virtualization of cluster-wide memory |
WO2013019869A2 (en) | 2011-08-01 | 2013-02-07 | Actifio, Inc. | Data fingerpringting for copy accuracy assurance |
US8954698B2 (en) | 2012-04-13 | 2015-02-10 | International Business Machines Corporation | Switching optically connected memory |
JP2014041420A (ja) * | 2012-08-21 | 2014-03-06 | Nec Corp | 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム |
CN103279974A (zh) * | 2013-05-15 | 2013-09-04 | 中国科学院软件研究所 | 一种高精度高分辨率卫星成像模拟引擎及实现方法 |
JP6069515B2 (ja) * | 2013-09-26 | 2017-02-01 | 株式会社日立製作所 | 計算機システムおよび計算機システムのメモリ割当調整方法 |
US9977618B2 (en) | 2013-12-27 | 2018-05-22 | Intel Corporation | Pooling of memory resources across multiple nodes |
US20150227600A1 (en) | 2014-02-13 | 2015-08-13 | Actifio, Inc. | Virtual data backup |
US9569136B2 (en) * | 2015-04-29 | 2017-02-14 | International Business Machines Corporation | Smart load balancing replication when adding or removing storage disks in a distributed storage system |
US10298512B2 (en) * | 2015-06-26 | 2019-05-21 | Vmware, Inc. | System and method for performing resource allocation for a host computer cluster |
US20170003997A1 (en) * | 2015-07-01 | 2017-01-05 | Dell Products, Lp | Compute Cluster Load Balancing Based on Memory Page Contents |
CN105094985A (zh) | 2015-07-15 | 2015-11-25 | 上海新储集成电路有限公司 | 一种共享内存池的低功耗数据中心及其工作方法 |
-
2016
- 2016-04-07 US US15/092,699 patent/US9811281B2/en active Active
-
2017
- 2017-03-09 GB GB1803283.9A patent/GB2557125B/en active Active
- 2017-03-09 WO PCT/IB2017/051381 patent/WO2017175078A1/en active Application Filing
- 2017-03-09 CN CN201780020208.1A patent/CN108885582B/zh active Active
- 2017-03-09 JP JP2018548198A patent/JP6963558B2/ja active Active
- 2017-03-09 DE DE112017000629.5T patent/DE112017000629T5/de active Pending
- 2017-11-03 US US15/803,004 patent/US10409509B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002042862A2 (en) * | 2000-11-21 | 2002-05-30 | Thomson Licensing S.A. | A system and process for mediated crawling |
DE102011084344A1 (de) * | 2011-10-12 | 2013-04-18 | Siemens Aktiengesellschaft | Verfahren zur Laufzeitoptimierung bei paketorientierter Mobilfunkübertragung von Datentelegrammen |
CN103875210A (zh) * | 2011-10-14 | 2014-06-18 | 阿尔卡特朗讯公司 | 在通信环境中提供动态可靠性和安全性 |
Also Published As
Publication number | Publication date |
---|---|
US9811281B2 (en) | 2017-11-07 |
GB2557125B (en) | 2022-01-05 |
GB2557125A (en) | 2018-06-13 |
US20170293447A1 (en) | 2017-10-12 |
GB201803283D0 (en) | 2018-04-11 |
CN108885582A (zh) | 2018-11-23 |
US20180074741A1 (en) | 2018-03-15 |
US10409509B2 (en) | 2019-09-10 |
DE112017000629T5 (de) | 2018-10-31 |
JP2019518260A (ja) | 2019-06-27 |
WO2017175078A1 (en) | 2017-10-12 |
JP6963558B2 (ja) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885582B (zh) | 存储器池结构的多租户存储器服务 | |
CN108885554B (zh) | 用于在计算环境中分配资源的方法、装置、介质和数据中心设备 | |
US10701141B2 (en) | Managing software licenses in a disaggregated environment | |
US9916636B2 (en) | Dynamically provisioning and scaling graphic processing units for data analytic workloads in a hardware cloud | |
US10129169B2 (en) | Specifying a highly-resilient system in a disaggregated compute environment | |
US10432464B2 (en) | Creating new cloud resource instruction set architecture | |
US11275622B2 (en) | Utilizing accelerators to accelerate data analytic workloads in disaggregated systems | |
AU2017225042B2 (en) | Scalable distributed storage architecture | |
CN103595799B (zh) | 一种实现分布式共享数据库的方法 | |
Mehdipour et al. | Energy-efficient big data analytics in datacenters | |
US20200174843A1 (en) | Inter-host communication without data copy in disaggregated systems | |
You et al. | Ursa: Scalable load and power management in cloud storage systems | |
US9229659B2 (en) | Identifying and accessing reference data in an in-memory data grid | |
Dell | ||
Anjanadevi et al. | An efficient dynamic indexing and metadata model for storage in cloud environment | |
Yang et al. | Implementation of video and medical image services in cloud | |
Zeng et al. | KVLight: A lightweight key-value store for distributed access in cloud | |
US11853317B1 (en) | Creating replicas using queries to a time series database | |
Anjanadevi et al. | An efficient dynamic indexing and metadata based storage in cloud environment | |
Huang et al. | Disaggregated Database Management | |
Prizio | Creating a simulation framework for the hadoop distributed file system inside heterogeneous cloud environments by using CloudSim | |
Zeng | Resource sharing for multi-tenant nosql data store in cloud | |
Daddi et al. | A Survey On Different Large Scale Reliable Distributed Storage Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |