CN105723338B - 构建虚拟主板和虚拟存储设备 - Google Patents

构建虚拟主板和虚拟存储设备 Download PDF

Info

Publication number
CN105723338B
CN105723338B CN201480061683.XA CN201480061683A CN105723338B CN 105723338 B CN105723338 B CN 105723338B CN 201480061683 A CN201480061683 A CN 201480061683A CN 105723338 B CN105723338 B CN 105723338B
Authority
CN
China
Prior art keywords
client
node
computing system
memory
module
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
Application number
CN201480061683.XA
Other languages
English (en)
Other versions
CN105723338A (zh
Inventor
J·W·米肯斯
A·R·法拉萨特
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201910374577.1A priority Critical patent/CN110119303B/zh
Publication of CN105723338A publication Critical patent/CN105723338A/zh
Application granted granted Critical
Publication of CN105723338B publication Critical patent/CN105723338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource 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/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

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

Abstract

本文描述了与有助于构建虚拟主板和虚拟存储设备的计算系统架构有关的各种技术。计算系统包括多个计算节点和多个存储节点,其中计算节点与存储节点是分开的。计算节点包括相应的片上系统模块。计算节点和存储节点通过全对分带宽网络的方式进行通信耦合,其中向每一个存储节点分配至少与该存储节点的最大输入/输出速度相匹配的网络带宽。响应于接收到客户端请求,向客户端分配计算节点,并将其作为主板公开给该客户端的应用。同样,向客户端分配存储节点,并将其作为更大的存储设备公开给该客户端的应用。

Description

构建虚拟主板和虚拟存储设备
背景技术
云运营商向云运营商的客户端租借计算资源,客户端使用所租借的计算资源来执行应用。这种部署趋势有利于云运营商和客户端相互获益。例如,客户端具有对相对高端的计算设备的访问,其中客户购买这种高端计算设备可能是相当昂贵的,并且客户进行维护也是相当麻烦的。由于规模经济,云运营商能够按照与客户购买服务器计算设备所需要付出的价格相比更低的价格来购买该服务器计算设备。此外,云运营商可以专业地维护这些服务器和其它硬件。
一般情况下,云运营商的客户端将阐述请求,该请求指示当执行该客户端的特定应用时,由该客户端所期望的计算资源。通常,客户端或者应用自身将请求“X”量的处理资源(例如,某个数量的微处理器内核或者特定量的处理能力)和“Y”量的持久性存储。
为了供应来自于多个客户端的这些请求,云运营商使用数据中心,数据中心通常包括通过局域网(LAN)通信耦合的几个机柜的服务器设备。每一个服务器设备包括相应的中央处理单元(CPU),每一个CPU具有至少一个微处理器内核。另外,每一个服务器设备包括相应的持久存储单元(如,硬盘驱动器(HDD)或固态驱动器(SSD))。服务器设备的CPU位于主板上,服务器设备的存储单元通过总线的方式来耦合到主板(例如,经由小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术配件(SATA)或者其它适当的接口)。
存在与云运营商使用常规的数据中心来服务其客户相关联的众多缺陷。首先,云运营商传统上以物理服务器设备为单位来分配计算和存储资源。但是,客户端可能按照更多的粒度等级来请求计算资源。传统上,云运营商通过对数据中心中的服务器设备上的计算资源进行欠利用来处理这种请求。例如,客户端可以请求与数据中心中的服务器设备里的一个CPU的六个微处理器内核相关联的处理资源,其中该CPU包括八个内核。传统上,云运营商向客户端分配整个的服务器设备,这可能造成八个微处理器内核中的两个微处理器内核空闲。
其次,数据中心中使用的常规服务器设备包括消耗相对较大功率量的CPU(每一CPU大约1000瓦的散热)。这进一步造成了数据中心具有冷却成本以维持适当的温度。第三,数据中心中使用的常规服务器设备的组成部分是相对昂贵和复杂的。例如,服务器设备包括主板,该主板上有必须连接到额外硬件组件(例如,图形处理单元(GPU)、存储器等等)的CPU。由于主板以及其上组件的相对较高成本,如果主板的个别组件(例如,图形处理单元(GPU))发生故障,则将服务器从机柜中取出,从服务器中取出该主板,从主板中取出该故障GPU,在主板上放置新的GPU,对主板进行测试,将主板插回到服务器设备,将服务器设备重新放回到机柜中,以及将服务器设备重新连接到局域网(LAN),这些操作都会造成维护成本。
发明内容
下面是本文将进一步详细描述的主题的简短概括。该概括部分并不是旨在限制权利要求的范围。
本文描述了与示例性计算系统架构有关的各种技术,其中,计算系统可以是数据中心、企业服务器系统等等。一种示例性计算系统包括分开的多个计算节点和多个数据存储节点,例如,计算节点可以处于远离存储节点的位置。在该上下文中,术语“处于远离”旨在指示计算节点可以通过网络连接,而不是通过总线连接,来向存储节点写入数据和从存储节点接收数据。
在一个示例性实施例中,计算节点可以包括相应的片上系统(SoC)模块,其中这些SoC模块在性质上可以是同质的。每一个SoC模块包括至少一个相应的微处理器内核、存储器(例如,随机存取存储器(RAM)和/或只读存储器(ROM))和网络接口(例如,网络接口控制器(NIC))。每一个SoC模块还可以可选地包括相应的图形处理单元(GPU)和/或其它适当的模块。如术语“片上系统”所隐含的,在单个(共同的)基底上形成至少一个微处理器内核、本地存储器、网络接口和(可选的)GPU,故它们位于单个芯片上。此外,每一个计算节点还可以额外包括相应的本地存储模块(例如,闪存模块),其操作性地耦合到相应SoC模块的至少一个微处理器内核。例如,SoC模块的微处理器内核可以通过总线和相关联的总线接口的方式,操作性地耦合到该本地存储模块。
上面所提及的数据存储节点可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、磁带驱动器、或者其某种适当的组合。每一个存储节点具有与其相关联的相应输入/输出(I/O)速度。也就是说,可以按照特定的速度,将数据写入存储节点和从存储节点读取数据。通常,与SSD相比,HDD具有更低的I/O速度。
如上所述,所述多个存储节点可以通过适当网络连接的方式,操作性地耦合到所述多个计算节点。向每一个存储节点分配至少与相应的存储节点的I/O速度相匹配的带宽。因此,举例而言,如果存储节点具有1Gb/秒的I/O速度,则向该存储节点分配至少1Gb/秒的带宽。用此方式来分配网络带宽,确保计算节点和存储节点之间的网络连接不会成为在该计算节点上执行的应用的瓶颈。在一个示例性实施例中,用于对计算节点和存储节点进行操作性耦合的网络可以是全对分网络;例如,其中的任意两个节点可以按照它们的网络连接的全速度进行通信的网络。
在上面所描述的计算系统架构的前提下,可以在应用的运行时间处,构建虚拟主板。例如,云运营商的客户端的应用可以指定某个量的处理资源和存储资源(该量可以是任意的)。云运营商可以响应于该指定的接收,形成虚拟主板和虚拟存储设备,其中该虚拟主板可以由任意的先前未被分配的计算节点来支持(其可以是奇数数量的计算节点,并且这些计算节点可以位于该计算系统中的不同机柜上),以及该虚拟存储设备可以由任意的先前未被分配的存储节点来支持,其中这些存储节点与计算节点是分开的。例如,存储节点可以位于该计算系统的不同存储机柜之中。由于被分配给该应用的存储节点具有被分配给它的与该存储节点的相应I/O速度至少一样高的网络带宽,因此虚拟主板可以如同该计算节点与该存储节点同处于一地那样,从该虚拟存储设备读取数据和向该虚拟存储设备写入数据。
为了对本文讨论的系统和/或方法的一些方面有一个基本的理解,上面给出了简单概括。该概括部分不是对本文所讨论的系统和/或方法的详尽概述。其也不是旨在标识该系统和/或方法的关键/重要要素或者描述该系统和/或方法的范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面给出的具体实施方式的前奏。
附图说明
图1是一种示例性计算系统的框图。
图2示出了可以在该计算系统中包括的示例性计算节点。
图3是可以包括至少一个存储节点的存储设备的框图。
图4是可以在该计算系统中包括的示例性模拟调试器(stager)计算设备的功能框图。
图5示出了在云运营商的客户端的应用的运行时生成的示例性虚拟主板。
图6是示出用于设计具有特定架构的计算系统的示例性方法的流程图。
图7是示出用于响应接收到来自客户端的请求,构建虚拟主板和虚拟存储设备的示例性方法的流程图。
图8是一种示例性计算设备。
具体实施方式
现在参照附图来描述与向云运营商的客户端分配计算系统资源有关的各种技术,其中贯穿全文的相似附图标记用于指代相似的元素。在下文描述中,为了便于解释起见,为了对一个或多个方面有一个透彻理解,对众多的特定细节进行了描述。但是,显而易见的是,可以在不需这些特定细节的情况下实现这些方面。在其它实例中,以框图形式示出了公知的结构和设备,以便有助于描述一个或多个方面。此外,应当理解的是,被描述为由单个系统部件执行的功能,可以由多个部件来执行。类似地,例如,单个部件可以被配置为执行被描述为由多个部件来执行的功能。
此外,术语“或”旨在意味着包括性的“或”而不是排它的“或”。也就是说,除非另外说明或者从上下文中明确得知,否则“X使用A或B”旨在意味任何自然包括性排列。也就是说,短语“X使用A或B”由以下实例中的任意实例来满足:X使用A;X使用B;或者X使用A和B二者。此外,本申请和所附权利要求书中使用的冠词“一个(a)”和“一(an)”通常应当解释为意味“一个或多个”,除非另外说明或者从上下文中明确得知其针对单数形式。
此外,如本文所使用的,术语“部件”和“系统”旨在涵盖被配置有计算机可执行指令的计算机可读数据存储设备,其中当这些计算机可执行指令被处理器执行时,使得执行某种功能。计算机可执行指令可以包括例程、函数等等。此外,还应当理解的是,部件或系统可以位于单个设备上,也可以跨若干设备分布。此外,如本文所使用的,术语“示例性”旨在意味着用作对某些事情的说明或举例,而不是旨在指示优选性。
现参见图1,该图示出了可以由云运营商使用,以向多个客户端102-104提供计算和存储资源的示例性计算系统100。在一个示例性实施例中,该计算系统100可以是数据中心,在该情况下,客户端102-104可以是不同的相应公司。在另一个示例性实施例中,计算系统100可以是企业服务器系统,在该情况下,客户端102-104可以是企业中的部门。在另一个示例性实施例中,计算系统100可以是数据中心和企业服务器系统的混合,其中,云运营商使用一些计算资源来执行企业应用(例如,用于内部客户端),而使用其它计算资源来执行外部客户端的应用。应当理解的是,计算系统100可以是具有下面所描述的架构的任何适当计算系统。
计算系统100包括多个数据处理资源和存储资源,下面将进一步详细描述这些数据处理资源和存储资源。基于来自客户端102-104的针对这些资源的请求,在客户端102-104之间分配这些数据处理资源和存储资源。因此,举例而言,客户端可以请求在计算系统100中执行一个应用,其中计算系统被配置为在该计算系统100中维持的数据库上执行查询。为此,客户端或应用可以结合在数据库上执行查询,来请求或指定特定量的处理资源,还可以请求或指定特定量的存储来保持该数据库。如下面所进一步详细描述的,与常规数据中心架构相比,计算系统100具有有助于对来自客户端和应用的相对粒度的请求进行服务,以及还有助于增加硬件的利用率的架构。
计算系统100包括多个计算节点106-108。该多个计算节点106-108包括相应的多个片上系统(SoC)模块110-112。该多个SoC模块110-112中的每一个SoC模块包括至少一个相应的微处理器内核、由相应的微处理器内核进行访问的相应存储器模块、以及相应的网络接口(其用于使计算节点与计算系统100的其它模块进行交互)。另外,可选地,该多个SoC模块110-112中的每一个SoC模块可以包括能够访问相应的SoC模块上的相应本地存储器模块的相应图形处理单元(GPU)。在单个(共同)半导体基底上形成至少一个微处理器内核、本地存储器、网络接口和(可选的)GPU,也就是说,该至少一个微处理器内核、本地存储器、网络接口和(可选的)GPU位于单个芯片之上。
此外,多个计算节点106-108还可以可选地包括相应的多个本地存储模块114-116。本地存储模块可以通过相应总线连接的方式(例如,经由SCSI、SAS、SATA等等),操作性地耦合到SoC模块110-112。在一个示例性实施例中,本地存储模块114-116可以是适当形式的计算机可读数据存储器件,比如RAM、ROM、DRAM、SRAM、PROM、EPROM、EEPROM等等。在另一个例子中,本地存储模块114-116可以是闪存模块。
在一个示例性实施例中,计算节点106-108可以在性质上是同质的。在另一个例子中,多个计算节点106-108可以包括异构的计算节点。可以在计算系统100中的机柜里,将计算节点106-108放置在有助于计算节点106-108的环境冷却的选择性位置处。例如,可以以相邻计算节点之间间隔1英寸和3英寸之间,来垂直叠放多个计算节点106-108,从而有助于计算节点之间的空气流通。这种布置可以实现跨包括空气冷却和水侧冷却的多种计算系统类型的部署。在这些布置中的每一种中,在节点之间的空间内实现该节点之间的热传送。
计算系统100还包括多个存储节点118-120。存储节点118-120可以是或者包括硬盘驱动器(HDD)、固态驱动器(SSD)、磁带驱动器或者其它适当的存储设备。
此外,计算系统100还包括计算系统网络122,通过该网络122,计算节点106-108可以向存储节点118-120发送数据和从存储节点118-120获取数据。在示例性实施例中,网络122可以是全对分带宽网络。全对分带宽网络是不管在哪里对网络122进行分析,一侧上的节点可以按照全带宽向另一侧上的节点发送数据(反之亦然)的网络。该属性允许来自多个计算节点106-108的任意计算节点或者任意计算节点的子集按照全带宽,发送和接收去往和来自多个存储节点118-120的任意存储节点或者任意存储节点的子集的数据。
在示例性实施例中,多个存储节点118-120中的每一个存储节点可以具有向其分配的相应网络带宽,其等于或大于相应存储节点的I/O速度。例如,如果第一存储节点118是具有1Gb/秒的I/O速度的HDD,则向第一存储节点118分配的网络带宽至少是1Gb/秒。再举一个例子,如果第n存储节点120是SSD,并且具有3Gb/秒的I/O速度,则向第n存储节点120分配的网络带宽至少是3Gb/秒。网络122包括适当的网络设备,并且具有允许该网络122是全对分带宽网络的拓扑。因此,网络122可以包括路由器、交换机、线缆连接、有助于光通信的设备等等。
此外,计算系统100还可以包括模拟调试器(stager)计算设备124,后者被配置为响应于从客户端102-104或应用中的至少一个接收到针对处理资源和/或存储资源的请求,向客户端102-104(例如,用于要由客户端102-104执行的应用)分配计算节点和/或存储节点。在一个示例性实施例中,第一客户端102可以通过网络126(例如,互联网)的方式,向计算系统100发送请求,其中该请求是针对与两个计算节点相对应的处理资源和与三个存储节点相对应的存储资源。模拟调试器计算设备124可以接收该请求,并且访问计算系统100处维持的数据库,其中该数据库标识计算节点110-112中的哪些没有被分配,以及存储节点118-120中的哪些没有被分配。当存在足够数量的未分配的计算节点和存储节点以供应来自第一客户端102的请求时,模拟调试器计算设备124可以向第一客户端102分配所必需数量的计算节点(从未分配的计算节点之中分配)和所必需数量的存储节点(从未分配的存储节点之中分配)。
因此,继续该例子,模拟调试器计算设备124可以响应于从第一客户端102接收到该请求,对多个计算节点106-108中的两个(任意)计算节点进行聚合,从而生成一个虚拟主板。该虚拟主板向第一客户端102的应用呈现单个虚拟执行平台。同样,模拟调试器计算设备124可以通过对三个先前未分配的(任意)存储节点进行聚合,来生成用于第一客户端102的虚拟存储设备。模拟调试器计算设备124可以针对处于运行时的第一客户端102的应用,动态地捆绑存储节点。
再次应当注意的是,计算节点110-112和存储节点118-120在计算系统100中是分开的。也就是说,计算节点110-112可以位于第一组机柜中,而存储节点118-120可以位于不等同于第一组机柜的第二组机柜之中。被分配给第一客户端102的计算节点可以位于不同的机柜之上,并且被分配给第一客户端102的存储节点也可以位于不同的机柜之上。网络122的高带宽允许被分配给第一客户端102的计算节点在某种意义上是任意的,如计算节点并不需要同处于相同的机柜之上。对于存储节点来说,相同的情形也成立。可以针对第p客户端104,执行类似的过程。换言之,第p客户端104可以向计算系统100提交请求,其中该请求指示期望量的处理资源和期望量的存储资源。模拟调试器计算设备124可以选择未分配的计算节点和未分配的存储节点来供应该请求,为第p客户端104生成由该计算节点支持的虚拟主板和由该存储节点支持的虚拟存储设备。
相对于常规数据中心和企业服务器系统,示例性计算系统100展现了众多优点。例如,与常规数据中心和企业服务器系统相比,计算系统100可以与更高效的资源利用率相关联,这是由于可以按照相对粒度水平,来向客户端分配处理资源和存储资源。例如,常规上,数据中心不能够对来自客户端的针对奇数数量的微处理器内核的请求进行适当地供应。举例而言,在常规数据中心中,如果要在数据中心处执行的客户端的应用阐述了与三个微处理器内核相对应的处理资源的请求,则数据中心可能拒绝该请求,或者向该客户端分配四个微处理器内核,从而造成该处理器内核中的一个处理器内核空闲,但其仍然耗电。相比而言,计算系统100有助于生成虚拟主板,该虚拟主板可以由来自于多个计算节点106-108当中的、从计算系统100中的任意位置选择的任意数量的计算节点支持。
因此,如果客户端的应用请求与奇数数量的微处理器内核相对应的处理资源,则模拟调试器计算设备124可以为该应用,生成由奇数数量的计算节点来支持的虚拟主板。类似地,如果客户端的应用请求与偶数数量的处理器内核相对应的处理资源,则模拟调试器计算设备124可以为该应用,生成由偶数数量的计算节点来支持的虚拟主板。同样,计算系统100的架构有助于生成虚拟存储设备,该虚拟存储设备可以由来自多个存储节点118-120当中的、从计算系统100中的任意位置选择的任意数量的存储节点支持。
此外,计算系统100可以与简化的管理相关联。具体而言,由于计算节点与存储节点是分开的,所以一次可以将整个机柜或者容器的同质的计算节点和/或存储节点布置在计算系统100中,或者从计算系统100中移出。相比而言,更新传统聚集的服务器的计算资源或存储资源,需要特别的维护(例如,针对每一个服务器)。
此外,与常规数据中心或企业服务器系统相比,计算系统100可以与功耗的降低相关联。例如,计算节点106-108可以具有类似的功率需求,这是由于计算节点106-108可以是同质的。此外,如上所述,可以将计算节点106-108布局为最大化环境冷却。
现参见图2,该图示出了多个计算节点106-108中的示例性计算节点200。计算节点200包括SoC模块202和相关联的本地存储204。SoC模块202包括微处理器内核206、存储器208、网络接口210和(可选的)GPU 212。微处理器内核206和/或GPU 212可以通过总线的方式,来操作性耦合到本地存储204。可以断定的是,在单个的共同半导体基底上,形成微处理器内核206、存储器208、网络接口210和GPU 212。在示例性实施例中,可以将计算节点200布置在具有多个其它同质的计算节点的容器或机柜之中。例如,该机柜可以包括10个计算节点(它们与计算节点200是同质的),其中向每一个计算节点都提供具有特定带宽量的网络连接。例如,每一个计算节点可以具有至少1Gb/秒的以太网连接。
参见图3,该图示出了示例性存储服务器300。存储服务器300可以包括多个存储节点302-304,其中存储节点302-304可以是同质的存储节点。例如,存储节点302-304可以是多个SSD。此外,举例而言,计算系统100可以包括两个或更多不同类型的存储服务器:包括SSD存储节点的第一存储服务器;以及包括HDD存储节点的第二存储服务器。存储服务器300可以包括主板306,其中主板306可以包括用于向存储节点302-304提供SATA端口的本地CPU芯片集。如上所述,存储节点302-304可以通过计算系统网络122(例如,全对分带宽网络)来连接到计算节点106-108。向存储服务器300提供足够的网络带宽量,使得其中的每一个存储节点都可以按照全速度,通过网络122来进行读取和写入。能够使存储速度与网络速度进行匹配的全对分带宽网络,生成无视所在地的存储基底。也就是说,任何计算节点都可以按照全速度来访问任何存储设备,而不管它们在计算系统100中的相应位置。
现参见图4,该图示出了模拟调试器计算设备124的功能框图。模拟调试器计算设备124包括请求接收器部件402,后者用于从客户端102-104中的至少一个接收请求。如上所述,该请求可以指示该客户端为了在计算系统100的计算节点上执行应用和在计算系统100的存储节点上存储数据所期望的处理资源和/或存储资源量。此外,模拟调试器计算设备124还包括分配器部件404,后者可以从计算节点106-108和存储节点118-120中分配计算节点和/或存储节点,以便对来自该客户端的请求进行供应。
为此,模拟调试器计算设备124可以包括数据存储406,其中数据存储406包括分配数据408。分配数据408可以指示计算节点106-108中的哪些和存储节点118-120中的哪些还没有被分配给云运营商的客户端。分配器部件404可以选择计算节点106-108的子集来分配给该客户端,以对该请求进行供应,其中该子集中的计算节点不会被分配给该云运营商的其它客户端。同样,分配器部件404通过分析分配数据408,可以识别来自存储节点118-120中的没有被分配给该云运营商的其它客户端的,并可以对来自该客户端的请求进行供应的存储节点的子集。随后,分配器部件404可以将该存储节点的子集分配给该客户端。
因此,当代表客户端来执行应用时,模拟调试器计算设备124可以生成虚拟主板和虚拟存储设备以为该应用进行使用。分配器部件404向该应用提供足够的计算节点和存储节点,以满足其计算和存储需求。分配器部件404可以以多种方式来公开该虚拟主板和虚拟存储系统。例如,可以将计算节点公开为虚拟非统一存储器访问(NUMA)主板,其中,微处理器内核使用在它们的相应网络连接(例如,1Gb/秒的以太网连接)之上分层的虚拟总线来进行通信。可以使用一个或多个虚拟盘来将物理盘公开给应用,使得每一个虚拟盘由一个或多个物理存储节点来支持。
现参见图5,该图示出了虚拟主板和虚拟存储设备的示例性生成。计算系统500包括四个计算节点502-508和六个存储节点510-520。模拟调试器计算设备124从客户端522接收请求,其中该请求与使用计算系统500的资源来执行应用有关。例如,该请求可以指示该应用需要两个计算节点的处理资源,此外,该请求还可以指示该应用需要与两个存储节点相对应的存储资源。模拟调试器计算设备124可以断定第一计算节点502和第四计算节点508没有被分配,而计算节点504和506已被分配给其它客户端(例如,另一个应用在使用计算节点504和506)。模拟调试器计算设备124可以使得构建由第一计算节点502和第四计算节点508(其中,它们先前是未分配的)支持的虚拟主板。可以断定的是,没有将第一计算节点502和第四计算节点508示出为在计算系统500中是彼此相邻的。这些计算节点502和508可以位于计算系统500中的任意位置。
此外,模拟调试器计算设备124还可以断定已将第一存储节点510、第三存储节点514、第四存储节点516和第六存储节点520分配给该云运营商的至少一个其它客户端,而第二存储节点512和第五存储节点518是未分配的。随后,模拟调试器计算设备124可以构建由先前未被分配的存储设备512和518支持的虚拟存储设备。同样,应当注意的是,存储节点512和518不需要在计算系统500中同处一地。例如,存储节点512和518可以位于不同的存储服务器之中。随后,可以使用计算节点502和508来执行该应用,其中,向该应用提供与存储节点512和518相对应的地址。
图6-7示出了与计算系统和构建虚拟主板和虚拟存储设备有关的示例性方法。虽然将方法示出和描述为顺序执行的一系列的动作,但应当理解和明白的是,这些方法并不受该序列的顺序的限制。例如,一些动作可以按照与本文所描述的顺序不同的顺序来发生。此外,一个动作可以与其它动作一起同时发生。此外,在一些实例中,实现本文所描述的方法,并不需要所有的动作。
此外,本文所描述的动作可以是能由一个或多个处理器实现和/或存储在计算机可读介质或媒体上的计算机可执行指令。该计算机可执行指令可以包括例程、子例程、程序、执行的线程等等。此外,可以将方法的动作的结果存储在计算机可读介质中,显示在显示器设备上等等。
现参见图6,该图示出了用于设计计算系统的示例性方法600。方法600开始于602,在604处,提供多个SoC模块。如上所述,SoC模块包括微处理器内核、存储器和网络接口。在606处,提供多个数据存储节点。更具体地说,可以提供多个存储服务器设备,其中每一个存储服务器设备包括相应的多个数据存储节点。在608处,SoC模块和数据存储节点使用全对分带宽网络进行通信耦合。如上所述,可以向每一个存储节点分配与其最大I/O速度相对应的带宽。方法600在610处结束。
现参见图7,该图示出了用于构建虚拟主板和虚拟存储设备的示例性方法700。方法700开始于702,在704处,在计算系统处从该计算系统的运营商的客户端接收针对处理资源和存储资源的请求。该请求包括:指示用于在该计算系统处执行该客户端的应用的处理资源和/或存储资源的数据。在706处,响应于在704处接收到该请求,识别多个未被分配的计算节点。如上所述,每一个计算节点都包括SoC模块。另外,响应于接收到该请求,识别多个未被分配的存储节点。在708处,将该多个计算节点和该多个存储节点分配给该客户端。更具体地说,将该多个计算节点联结在一起以形成虚拟主板,将该多个存储节点联结在一起以形成虚拟存储设备。该虚拟主板执行该应用,向虚拟存储设备发送数据和从该虚拟存储设备获取数据。因此,可以将该多个计算节点作为虚拟NUMA主板来公开给该客户端。可以将标识这些存储节点的数据,提供给该多个计算节点,从而当执行用于该客户端的应用时,允许这些计算节点向这些存储节点发送数据和从这些存储节点获取数据。或者,可以提供另一层的抽象,其中,向计算节点提供连续地址空间,其中这些连续地址空间随后被映射到存储节点。此外,如上面所指示的,向每一个存储节点分配与其最大I/O速度相对应的网络带宽。因此,向该多个存储节点分配与这些存储节点的最大I/O速度的总和相对应的带宽。方法700在710处结束。
现参见图8,该图示出了可以根据本文所公开的系统和方法来使用的示例性计算设备800的高层级视图。例如,可以在支持向云运营商的客户端分配计算节点和存储节点的系统中,使用计算设备800。通过另一个例子的方式,可以在支持构建虚拟主板和/或虚拟存储设备的系统中,使用计算设备800。计算设备800包括至少一个处理器802,其中所述至少一个处理器802执行在存储器804中存储的指令。例如,该指令可以是用于实现被描述为由上面所讨论的一个或多个部件所执行的功能的指令,或者用于实现上面所描述的方法中的一个或多个的指令。处理器802可以通过系统总线806的方式来访问存储器804。除了存储可执行指令之外,存储器804还可以存储资源分配数据。
另外,计算设备800还包括数据存储808,其中处理器802可通过系统总线806的方式来访问该数据存储808。数据存储808可以包括可执行指令、分配数据等等。此外,计算设备800还包括允许外部设备与计算设备800进行通信的输入接口810。例如,可以使用输入接口810来从外部计算机设备、从用户等等接收指令。此外,计算设备800还包括用于使计算设备800与一个或多个外部设备进行交互的输出接口812。例如,计算设备800可以通过输出接口812的方式,来显示文本、图像等等。
可以预期的是,可以在提供基本上任何类型的用户接口(其中用户可以与该用户接口进行交互)的环境中,包括经由输入接口810和输出接口812与计算设备800进行通信的外部设备。用户接口类型的例子包括:图形用户界面、自然用户界面等等。例如,图形用户界面可以从使用输入设备(例如,键盘、鼠标、远程控制等等)的用户接受输入,在输出设备(例如,显示器)上提供输出。此外,自然用户界面使用户能够以不受输入设备(例如,键盘、鼠标、远程控制等等)所施加的约束的方式,与计算设备800进行交互。相反,自然用户界面可以依赖于语音识别、触摸和手写笔识别、关于屏幕上的和屏幕相邻二者的手势识别、空中手势、头部和眼部跟踪、语音和声音、视觉、触摸、手势、机器智能等等。
另外,虽然被示出成单个系统,但应当理解的是,计算设备800可以是分布式系统。因此,例如,若干设备可以通过网络连接的方式进行通信,可以统一地执行被描述为由计算设备800执行的任务。
本文所描述的功能可以用硬件、软件或它们任意组合的方式来实现。当在软件中实现时,可以将这些功能存储在计算机可读介质上或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是计算机能够存取的任何可用存储介质。举例而言,但并非做出限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。如本文所使用的,磁盘(disk)和光盘(disc)包括压缩盘(CD)、激光盘、光盘、数字多用途光盘(DVD)、软盘和蓝光盘(BD),其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。此外,传播信号并不包括在计算机可读存储介质的范围之内。此外,计算机可读介质还包括通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。例如,连接可以是通信介质。举例而言,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所述通信介质的定义之中。上述的组合也应当包括在计算机可读介质的范围之内。
替代地或另外地,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。举例而言,但并非做出限制,可以使用的示例性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SoC)、复杂可编程逻辑器件(CPLD)等等。
上文描述的内容包括一个或多个实施例的例子。当然,不可能为了描述前述的方面的目的,而描述上面设备或方法的所有可能的修改或改变,但是本领域普通技术人员应该认识到,对各个方面的许多进一步的修改和排列是可能的。因此,所描述的方面旨在涵盖落入所附权利要求书的精神和范围之内的所有这种改变、修改和变形。此外,就具体实施方式或权利要求书中使用的“包括”一词而言,该术语意图以类似于术语“包含”那样具有包容性,如同“包含”在权利要求书中被用作过渡词时所解释的。

Claims (11)

1.一种被配置为供应多个客户端的请求的计算系统,所述计算系统包括:
多个片上系统SoC模块,其中所述多个SoC模块中的每一个SoC模块包括:
相应的微处理器内核;
由所述相应的微处理器内核进行访问的相应的存储器模块;以及
相应的网络接口,其将相应的SoC模块接口到至少一个其它设备,其中,所述相应的微处理器内核、所述相应的存储器模块和所述相应的网络接口被形成在共同的基底上;
处于远离所述多个SoC模块的多个数据存储节点;
将所述多个SoC模块与所述多个数据存储节点通信耦合的网络,其中所述数据存储节点被分配基于所述多个数据存储节点的相应的输入/输出速度的相应的网络带宽;以及
模拟调试器计算设备,其用于从所述多个客户端当中的客户端接收请求,其中所述请求指示处理资源的量和数据存储资源的量,所述模拟调试器计算设备响应于所述请求的接收,向所述客户端分配来自所述多个SoC模块中的SoC模块的子集以及来自所述多个数据存储节点中的数据存储节点的子集。
2.根据权利要求1所述的计算系统,所述多个SoC模块是同质的。
3.根据权利要求1所述的计算系统,所述网络是全对分带宽网络。
4.根据权利要求1所述的计算系统,其中,所述多个数据存储节点中的每一个数据存储节点被分配至少与相应的数据存储节点的相应的最大输入/输出速度相匹配的相应的网络带宽。
5.根据权利要求1所述的计算系统,其中,所述请求针对奇数数量的微处理器内核,以及其中,所述模拟调试器计算设备分配所述SoC模块的子集,使得向所述客户端分配所述奇数数量的微处理器内核。
6.根据权利要求1所述的计算系统,其中,所述SoC模块的子集执行所述客户端的应用。
7.根据权利要求1所述的计算系统,还包括:
多个本地存储模块,其分别通过相应的总线的方式耦合到所述多个SoC模块。
8.根据权利要求7所述的计算系统,所述多个本地存储模块包括闪存模块。
9.一种方法,包括:
在计算系统处,从所述计算系统的客户端接收请求,其中所述请求包括指示用于执行所述客户端的应用的处理资源和数据存储资源的数据;以及
响应于接收到所述请求,识别所述计算系统的多个未被分配的SoC模块,其中所述多个未被分配的SoC模块包括所述请求中指示的所述处理资源,以及识别至少一个未被分配的存储节点,其中所述至少一个未被分配的存储节点包括所述请求中指示的所述数据存储资源;
所述多个SoC模块中的每一个SoC模块包括:
相应的微处理器内核;
由所述相应的微处理器内核进行访问的相应的本地存储器模块;以及
相应的网络接口,其将相应的SoC模块接口到至少一个其它设备,其中,所述相应的微处理器内核、所述相应的本地存储器模块和所述相应的网络接口被形成在共同的基底上;以及
响应于识别出所述多个SoC模块,向所述客户端分配所述多个SoC模块以执行所述应用;以及
响应于识别出所述至少一个未被分配的存储节点,向所述客户端分配所述至少一个存储节点。
10.根据权利要求9所述的方法,还包括:
将所述多个SoC模块作为虚拟非统一存储器访问NUMA主板,公开给所述客户端。
11.根据权利要求9所述的方法,还包括:
向所述多个SoC模块提供被映射到所述至少一个存储节点的地址空间,其中,当执行所述客户端的所述应用时,所述SoC模块通过所述地址空间的方式向所述至少一个存储节点发送数据和从所述至少一个存储节点获取数据。
CN201480061683.XA 2013-11-12 2014-11-03 构建虚拟主板和虚拟存储设备 Active CN105723338B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910374577.1A CN110119303B (zh) 2013-11-12 2014-11-03 构建虚拟主板和虚拟存储设备

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/077,580 US9553822B2 (en) 2013-11-12 2013-11-12 Constructing virtual motherboards and virtual storage devices
US14/077,580 2013-11-12
PCT/US2014/063618 WO2015073237A1 (en) 2013-11-12 2014-11-03 Constructing virtual motherboards and virtual storage devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910374577.1A Division CN110119303B (zh) 2013-11-12 2014-11-03 构建虚拟主板和虚拟存储设备

Publications (2)

Publication Number Publication Date
CN105723338A CN105723338A (zh) 2016-06-29
CN105723338B true CN105723338B (zh) 2019-05-17

Family

ID=51897487

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480061683.XA Active CN105723338B (zh) 2013-11-12 2014-11-03 构建虚拟主板和虚拟存储设备
CN201910374577.1A Active CN110119303B (zh) 2013-11-12 2014-11-03 构建虚拟主板和虚拟存储设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910374577.1A Active CN110119303B (zh) 2013-11-12 2014-11-03 构建虚拟主板和虚拟存储设备

Country Status (6)

Country Link
US (2) US9553822B2 (zh)
EP (1) EP3069243A1 (zh)
CN (2) CN105723338B (zh)
BR (1) BR112016010291A8 (zh)
TW (1) TW201523280A (zh)
WO (1) WO2015073237A1 (zh)

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9553822B2 (en) 2013-11-12 2017-01-24 Microsoft Technology Licensing, Llc Constructing virtual motherboards and virtual storage devices
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9684784B2 (en) * 2014-06-25 2017-06-20 Thi Chau Nguyen-Huu Systems and methods for securely storing data
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
TWI572167B (zh) * 2015-07-21 2017-02-21 技嘉科技股份有限公司 頻寬整合網路裝置、主機板與網路卡
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US11153223B2 (en) 2016-04-07 2021-10-19 International Business Machines Corporation Specifying a disaggregated compute system
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US20180034908A1 (en) * 2016-07-27 2018-02-01 Alibaba Group Holding Limited Disaggregated storage and computation system
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10929290B2 (en) * 2016-12-31 2021-02-23 Intel Corporation Mechanism for providing reconfigurable data tiers in a rack scale environment
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10504605B2 (en) * 2017-11-02 2019-12-10 National Tsing Hua University Method and system for testing firmware of solid-state storage device, and electronic apparatus
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
WO2019125254A1 (en) * 2017-12-21 2019-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Management of dynamic sharing of central processing units
WO2019139515A1 (en) * 2018-01-15 2019-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Management of dynamic sharing of central processing units
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US20190245924A1 (en) * 2018-02-06 2019-08-08 Alibaba Group Holding Limited Three-stage cost-efficient disaggregation for high-performance computation, high-capacity storage with online expansion flexibility
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
CN111651293B (zh) * 2020-05-08 2022-12-23 中国电子科技集团公司第十五研究所 一种微融合架构分布式系统及构建方法
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11210218B1 (en) * 2020-09-03 2021-12-28 Microsoft Technology Licensing, Llc Addressing for disaggregated memory pool
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783797B2 (en) * 2008-04-23 2010-08-24 Autodesk, Inc. Adaptive bandwidth distribution system for high-performance input/output devices with variable throughput
CN102508720A (zh) * 2011-11-29 2012-06-20 中能电力科技开发有限公司 一种提高前处理模块和后处理模块效率的方法及系统
CN102546782A (zh) * 2011-12-28 2012-07-04 北京奇虎科技有限公司 一种分布式系统及其数据操作方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838681A (en) * 1996-01-24 1998-11-17 Bonomi; Flavio Dynamic allocation of port bandwidth in high speed packet-switched digital switching systems
US6594698B1 (en) * 1998-09-25 2003-07-15 Ncr Corporation Protocol for dynamic binding of shared resources
US20020107678A1 (en) 2001-02-07 2002-08-08 Chuan-Lin Wu Virtual computer verification platform
US7246245B2 (en) * 2002-01-10 2007-07-17 Broadcom Corporation System on a chip for network storage devices
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7676551B1 (en) * 2003-06-25 2010-03-09 Microsoft Corporation Lookup partitioning storage system and method
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
CN1829215A (zh) * 2005-03-04 2006-09-06 尤东 基于网络和网格的驱动器存储应用系统
CN100477664C (zh) * 2005-11-22 2009-04-08 华中科技大学 基于虚拟接口的存储系统
US20070171830A1 (en) * 2006-01-26 2007-07-26 Nokia Corporation Apparatus, method and computer program product providing radio network controller internal dynamic HSDPA flow control using one of fixed or calculated scaling factors
US7596654B1 (en) * 2006-01-26 2009-09-29 Symantec Operating Corporation Virtual machine spanning multiple computers
US7987464B2 (en) 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US9202087B2 (en) * 2006-10-31 2015-12-01 Verizon Patent And Licensing Inc. Method and apparatus for controlling access to local storage devices
US7856549B2 (en) * 2007-01-24 2010-12-21 Hewlett-Packard Development Company, L.P. Regulating power consumption
US7945773B2 (en) * 2007-09-18 2011-05-17 International Business Machines Corporation Failover of blade servers in a data center
US8200992B2 (en) * 2007-09-24 2012-06-12 Cognitive Electronics, Inc. Parallel processing computer systems with reduced power consumption and methods for providing the same
US8627312B2 (en) 2008-08-28 2014-01-07 Netapp, Inc. Methods and systems for integrated storage and data management using a hypervisor
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US9529636B2 (en) * 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8898049B2 (en) 2009-04-20 2014-11-25 International Business Machines Corporation System level power profiling of embedded applications executing on virtual multicore system-on-chip platforms
US8560798B2 (en) * 2009-07-30 2013-10-15 Cleversafe, Inc. Dispersed storage network virtual address space
US9135133B2 (en) * 2009-09-28 2015-09-15 Softlayer Technologies, Inc. Metric object tracking system
US9059978B2 (en) * 2010-03-23 2015-06-16 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9813529B2 (en) * 2011-04-28 2017-11-07 Microsoft Technology Licensing, Llc Effective circuits in packet-switched networks
US8826271B2 (en) * 2010-04-28 2014-09-02 Cavium, Inc. Method and apparatus for a virtual system on chip
US9009724B2 (en) * 2010-09-24 2015-04-14 Hewlett-Packard Development Company, L.P. Load balancing data access in virtualized storage nodes
US8484353B1 (en) * 2010-09-28 2013-07-09 Amazon Technologies, Inc. Resource placement templates for virtual networks
US8418185B2 (en) * 2010-10-19 2013-04-09 International Business Machines Corporation Memory maximization in a high input/output virtual machine environment
US8924964B2 (en) 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
EP2643741A4 (en) * 2010-11-25 2016-08-24 Freescale Semiconductor Inc METHOD AND DEVICE FOR PERFORMANCE MANAGEMENT OF A MULTICULTURAL PROCESSOR
US9521041B2 (en) * 2011-05-10 2016-12-13 Level 3 Communications, Llc Apparatus, system, and method ordering and provisioning variable bandwidth capacity on a network
US8972694B1 (en) * 2012-03-26 2015-03-03 Emc Corporation Dynamic storage allocation with virtually provisioned devices
US9158458B2 (en) * 2011-09-21 2015-10-13 Os Nexus, Inc. Global management of tiered storage resources
US9098344B2 (en) 2011-12-27 2015-08-04 Microsoft Technology Licensing, Llc Cloud-edge topologies
WO2013111010A1 (en) 2012-01-27 2013-08-01 Marvell World Trade Ltd. Chip-to-chip communications
US8838799B2 (en) * 2012-02-13 2014-09-16 International Business Machines Corporation Command management in a networked computing environment
US8930633B2 (en) * 2012-06-14 2015-01-06 International Business Machines Corporation Reducing read latency using a pool of processing cores
US9507642B2 (en) * 2012-12-04 2016-11-29 Xerox Corporation Method and systems for sub-allocating computational resources
US9170971B2 (en) * 2012-12-26 2015-10-27 Iii Holdings 2, Llc Fabric discovery for a cluster of nodes
US9203772B2 (en) * 2013-04-03 2015-12-01 Hewlett-Packard Development Company, L.P. Managing multiple cartridges that are electrically coupled together
US9553822B2 (en) 2013-11-12 2017-01-24 Microsoft Technology Licensing, Llc Constructing virtual motherboards and virtual storage devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783797B2 (en) * 2008-04-23 2010-08-24 Autodesk, Inc. Adaptive bandwidth distribution system for high-performance input/output devices with variable throughput
CN102508720A (zh) * 2011-11-29 2012-06-20 中能电力科技开发有限公司 一种提高前处理模块和后处理模块效率的方法及系统
CN102546782A (zh) * 2011-12-28 2012-07-04 北京奇虎科技有限公司 一种分布式系统及其数据操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
System-Level Integrated Server Architectures for Scale-out Datacenters;Sheng Li 等;《44th Annual IEEE/ACM International Symposium on Microarchitecture》;20120906;全文

Also Published As

Publication number Publication date
WO2015073237A1 (en) 2015-05-21
US10841234B2 (en) 2020-11-17
BR112016010291A2 (pt) 2017-08-08
EP3069243A1 (en) 2016-09-21
CN110119303A (zh) 2019-08-13
US20170111288A1 (en) 2017-04-20
US9553822B2 (en) 2017-01-24
BR112016010291A8 (pt) 2021-05-25
TW201523280A (zh) 2015-06-16
CN110119303B (zh) 2023-07-11
CN105723338A (zh) 2016-06-29
US20150134824A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
CN105723338B (zh) 构建虚拟主板和虚拟存储设备
CN104424013B (zh) 在计算环境中部署虚拟机的方法和设备
JP5767646B2 (ja) クラウド・サービス・カタログを用いたサービスの供給
CN104579740B (zh) 用于管理虚拟网络端口的方法和系统
CN106663042B (zh) 可扩展数据存储池
CN103368867B (zh) 高速缓存经网络与辅助站点通信的对象的方法和系统
CN106664321A (zh) 基于放置策略的计算资源分配
CN103778017B (zh) 改进虚拟处理器调度的亲和性
CN103238138A (zh) 用于云环境中的分区部署/重部署的网络接口
CN104683147B (zh) 一种对大规模数据中心硬件管理方法及系统
CN105892955B (zh) 一种管理存储系统的方法及设备
CN103827825A (zh) 虚拟资源对象组件
CN101615106A (zh) 用于虚拟化sas存储适配器的方法和系统
CN102736972A (zh) 对待测试应用的测试例进行处理的方法和系统
CN109445905A (zh) 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN105745622A (zh) 便于形成定制的虚拟盘的计算系统架构
CN107343041A (zh) 一种基于云计算的精准扶贫管理系统与方法
CN106066812A (zh) 基于应用的历史信息管理资源
CN109844714A (zh) 用于在存储系统中分配输入/输出带宽的系统和方法
TW202303401A (zh) 藉由超額認購由系統所支援的計算實體之間共用的實體記憶體來減少該系統中的記憶體
CN107276914A (zh) 基于cmdb的自助资源分配调度的方法
CN105637471B (zh) 用于对存储环境进行监测和控制的方法及设备
CN110287025A (zh) 一种资源分配方法、装置及设备
CN106020732A (zh) 节点的磁盘空间确定方法及系统
CN107329798A (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
GR01 Patent grant
GR01 Patent grant