CN111903109A - 可超额预订资源分配 - Google Patents
可超额预订资源分配 Download PDFInfo
- Publication number
- CN111903109A CN111903109A CN201880091787.3A CN201880091787A CN111903109A CN 111903109 A CN111903109 A CN 111903109A CN 201880091787 A CN201880091787 A CN 201880091787A CN 111903109 A CN111903109 A CN 111903109A
- Authority
- CN
- China
- Prior art keywords
- overbookable
- resource
- resources
- service
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5051—Service on demand, e.g. definition and deployment of services in real time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
- H04L12/1432—Metric aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/287—Remote access server, e.g. BRAS
- H04L12/2876—Handling of subscriber policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5025—Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
在一个示例中公开了一种计算装置,包括:硬件平台,其被配置为与多租户云服务通信地耦合,该多租户云服务包括可超额预订资源;以及针对可超额预订资源的服务保证(SAOR)引擎,该SAOR引擎被配置为:接收对可超额预订资源的租户预订,其中,租户预订超过了可超额预订资源的可用实例;接收针对可超额预订资源的每租户服务质量(QoS)度量;接收来自客体的针对可超额预订资源的实例的分配的分配请求;将该请求与可超额预订资源的当前可用实例进行比较;根据租户的QoS度量来确定可超额预订资源具有服务请求的容量;以及将可超额预订资源的实例分配给客体。
Description
技术领域
本公开总体上涉及计算领域,并且更具体地但非排他地涉及用于提供可超额预订资源分配的系统和方法。
背景技术
在某些现代数据中心中,设备或装置的功能可能不依赖于特定的固定硬件配置。而是,在某些情况下,处理、存储器、存储装置和加速器功能可以从不同的位置聚合,以形成虚拟的“复合节点”。当代网络可以包括托管大量通用硬件服务器设备的数据中心,这些通用硬件服务器设备例如包含在服务器机架中,并且由管理程序进行控制。每个硬件设备可以运行虚拟设备的一个或多个实例,例如,工作负载服务器或虚拟桌面。
附图说明
当结合附图阅读时,根据以下详细描述最好地理解本公开。要强调的是,根据行业中的标准实践,各种特征不一定按比例绘制,并且仅用于说明目的。在显式或隐式示出比例的情况下,仅提供一个说明性示例。在其他实施例中,为了讨论的清楚起见,各种特征的尺寸可以任意增加或减小。
图1是根据本说明书的一个或多个示例的多租户云环境的框图。
图2是根据本说明书的一个或多个示例的硬件平台的框图。
图3是根据本说明书的一个或多个示例的针对可超额预订资源的服务保证(SAOR)引擎的框图。
图4是示出根据本说明书的一个或多个示例的资源分配的框图。
图5是示出了根据本说明书的一个或多个示例的资源解除分配的框图。
图6是根据本说明书的一个或多个示例的分配资源的方法的流程图。
图7是根据本说明书的一个或多个示例的解除分配资源的方法的流程图。
图8是根据本说明书的一个或多个示例的处理作业请求的方法的流程图。
图9是根据本说明书的一个或多个示例的具有到云服务提供商(CSP)的网络的连接性的数据中心的选定的组件的框图。
图10是根据本说明书的一个或多个示例的最终用户计算设备的选定的组件的框图。
图11是根据本说明书的一个或多个示例的网络功能虚拟化(NFV)架构的框图。
图12是根据本说明书的一个或多个示例的计算平台的组件的框图。
图13是根据本说明书的一个或多个示例的机架规模架构的框图。
图14是根据本说明书的一个或多个示例的软件定义的基础设施(SDI)数据中心的框图。
具体实施方式
以下公开内容提供了用于实现本公开的不同特征的许多不同的实施例或示例。下面描述了组件和布置的特定示例以简化本公开。当然,这些仅为示例并且不旨在是限制性的。此外,本公开可以在各个示例中重复附图标记和/或字母。该重复是出于简单和清楚的目的,并且其本身并不指示所讨论的各种实施例和/或配置之间的关系。不同的实施例可以具有不同的优点,并且任何实施例都不一定要求有特定的优点。
当代计算平台(例如,由提供的硬件平台或类似的硬件平台)可以包括监视设备性能并且做出关于资源供应的决策的能力。例如,在例如可以由云服务提供商(CSP)提供的大型数据中心中,硬件平台可以包括具有计算资源(例如,处理器、存储器、存储池、加速器和其他类似资源)的机架安装式服务器。
通过非限制性示例的方式,如本说明书中所使用的,处理器包括具有指令集的任何可编程逻辑器件。处理器可以是真实的或经虚拟化的、本地的或远程的或以任何其他配置。通过非限制性示例的方式,处理器可以包括处理器(例如,CoreTM、x86或其他)。处理器还可以包括竞争处理器,例如,AMD(例如,Kx系列x86工作机或Athlon、Opteron或Epyc系列Xeon工作机)、高级精简指令集计算机(RISC)机器(ARM)处理器或IBM PowerPC和Power指令集架构(ISA)处理器,仅举几例。
如本文所使用的,“云计算”包括实现对数据、资源和/或技术的普遍(通常是世界范围的)访问的网络连接的计算资源和技术。通常,云资源的特征在于很大的灵活性,以根据当前的工作负载和需求动态地指派资源。这可以例如经由虚拟化来实现,其中经由软件抽象层将诸如硬件、存储装置和网络之类的资源提供给虚拟机(VM)。
如本说明书中所使用的,VM是计算设备内的隔离分区,其允许独立于包含它的设备上的其他程序来使用操作系统和其他应用。VM、容器和类似物可以统称为“客体”系统。
容器化是一种提供系统资源的方法,其中在彼此分离但共享基础操作系统、存储器和驱动程序资源的“容器”中提供网络功能的实例。
本说明书的实施例提供了专用于计算系统内的某些任务(例如,图形或其他资源密集型应用)的硬件或软件加速器,其帮助改进整体系统性能。加速器可以提供对服务器的性能的显著改进,服务器包括独立服务器和大型数据中心。例如,诸如Quick AssistTechnology(QAT)适配器之类的密码加速器可以在网络分组到达软件栈之前对其执行预处理。预处理可以包括例如加密、解密、压缩、解压缩或其他预处理。加速器通常提供原本为存储器和/或处理器密集的服务。由于加速器以硬件执行此服务,因此加速器会释放处理器周期来执行其他工作。
在数据中心(例如,由CSP提供的数据中心)中,机架式服务器可以经由诸如快速外围组件互连(PCIe)结构或其他主机结构接口之类的适当结构通信地耦合到一组加速器。
在数据中心中,租户可以签订合同提供加速器,作为可预订的服务。租户包括要求对数据中心内的资源的安全且排他性的访问的任何离散工作负载。在多租户数据中心中,设计考虑可以包括确保租户的隐私和安全性(例如,确保CSP和其他租户都无法看到租户所拥有的数据)、服务级别协议(SLA)、服务质量(QoS)度量和资源分配。例如,严重超额预订的资源可能无法为其租户提供合同中的SLA,而严重欠额预订的资源则处于闲置状态且未被货币化。
因为单个加速器可以具有比单个租户一次消耗的容量大得多的容量,所以不一定需要提供硬件加速卡并将其专用于单个租户。而是,加速卡可以被“切片”,使得多个租户可以访问单个加速卡上的资源的切片。租户可以预订专用的加速器(例如,其上具有一个或多个加速器现场可编程门阵列的单个PCIe卡)或预订其某些细分,例如,加速卡的“切片”。切片可以是加速器的空间复用划分(例如,硬件的某些部分被分配给特定租户)。在其他实施例中,可以经由时间复用来实现切片,其中,加速器上的资源的全部或一部分在特定时间被分配给特定租户。
由于并非每个租户在任何给定时间都要求其完整的、保证的资源容量,因此数据中心可以超额预订某些资源,使得实际资源的可用数量少于针对每个租户的理论上保证的资源分配。为了确保每个租户接收其保证的资源分配,服务提供商可以具有SLA,其条款确保了即使数据中心超额预订也能满足租户的计算需要。
数据中心中的超额预订的加速器服务的某些现有实施例在多租户云环境中可能缺乏适当的服务保证。服务保证可以通过合同确保所提供的服务满足签订合同的租户的服务质量水平。如果CSP无法提供这种保证,则它可能无法超额预订资源,因此导致效率低下,例如,将资源分配给目前不需要这些资源的租户,从而资源处于闲置状态。
多租户公共云服务对诸如密码加速之类的加速的服务的需求不断增长,以保护其应用(例如,具有安全套接字层(HTTPS)保护的全站点超文本传输协议)的安全。为了提供到云服务自己的最终用户的减少的延迟,这些云服务的租户不希望使用处理器时间来加密和解密分组,而是希望在专用加速器上进行加密和解密。CSP可以具有各种定价模型,例如,基于消耗的定价或基于预订的定价。
租户可以使用CSP提供的密码服务应用程序接口(API)来处理其密码工作负载。然后,可以在主机中累积地处理工作负载。CSP可以可选地使用中央处理单元(CPU)或密码加速器硬件,例如,Quick Assist Technology、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)、图形处理单元(GPU)或类似组件来处理由租户发送的实际的密码工作负载。但是对于其中CPU不如密码加速器高效的密码操作,使用加速器是更加灵活且更易于管理的。密码加速器在执行密码操作方面可以比CPU更高效好几倍,并且在处理非对称密码工作负载方面可以提供比CPU更多的吞吐量。
因此,CSP优化其自身的加速器分配是有利的。如果加速器架构缺乏灵活性和可扩展性,从而无法在每种定价模型下确保针对每个租户的服务保证,则可能导致数据中心效率低下。如上面所讨论的,虽然可以将单个密码加速器或密码加速器的切片专用于单个租户,但是当该租户当前未使用该加速器时,这可以导致效率低下,并且在其他租户可以受益于该加速器使该加速器处于闲置状态。这增加了CSP的成本,降低了CSP提供定价模型的灵活性,并且可以被认为是对硬件资源的浪费。
因此,有利的是提供一种系统和方法,以精确且灵活地对CSP的物理密码加速器资源进行切片,使得每个订户都可以根据其定价计划准确地受益于密码资源,其中分配模型在仍然满足SLA时实现超额预订。
该方法相对于现有数据中心具有益处,其中密码加速器硬件的单根输入/输出虚拟化(SR-IOV)虚拟功能(VF)直通能力将虚拟硬件暴露给客体。尽管该解决方案具有高吞吐量的优点,但由于存储器直接映射到客体,因此该解决方案缺乏提供超额预订的灵活性。
对于SR-IOV解决方案,租户要处理其客体中的真实的硬件,并且因此被提供有高吞吐量。然而,这继承了现实世界的硬件的缺点。不同密码加速器的各种API可以强制租户更新驱动器或应用以符合主机硬件改变。客体可能也无法在基础加速器之外拥有密码资源。额外的资源可能需要由其他硬件提供的VF来提供动力,以及需要租户对应用的修改以符合改变。此外,能够共享主机的密码加速器的客体数量受加速器支持的最大VF数量限制。最后,某些密码加速器硬件不支持速率限制能力,从而导致客体竞争相同的密码加速器资源,这导致无效的服务保证和SLA受损。即使每个VF可以被配置有吞吐量速率,SR-IOV解决方案也缺乏统一的方法来利用灵活的配置实现针对每个客体的服务保证,以满足不同的定价计划。
替代系统包括virtio-crypto设备,该设备通过一组可操作的接口将密码能力暴露给客体。virtio-crypto标准指定经由virtio-crypto前端(FE)和后端(BE)驱动器从客体到主机交换的密码操作请求。主机可以解释客体发送的这些请求,并使用软件库处理这些请求,或者将其卸载到具有虚拟主机(vhost)用户后端驱动器的专用的密码硬件加速器(如QAT)。一旦请求被处理,主机可以更新响应并通知客体完成。由于在主机与客体之间交换数据以及在内核空间与用户空间之间交换数据的额外成本,virtio-crypto解决方案具有比SR-IOV解决方案更低的性能。然而,该virtio-crypto解决方案提供了比SR-IOV解决方案更大的灵活性,因为确保物理密码资源的客体数量受系统容量而不是VF数量的限制。此外,主机中的实现细节对客体是隐藏的,使得客体不必响应于硬件改变而更新驱动器和应用代码。然而,virtio-crypto的已知实施例未考虑设备中的服务质量(QoS)。即使在QoS被认为是上游的情况下,提交的服务请求也可能在单个virtio-crypto设备的范围之外。
SR-IOV和virtio-crypto两者都为客体提供了共享主机中密码资源的手段,因此为云计算服务提供商提供了向其订户出售虚拟密码服务的能力。在客体之间共享主机的物理资源的一个特征是针对单个客体对物理硬件进行切片以适应他们的需要的能力。这要求系统为服务提供商提供QoS。但是SR-IOV和virtio-crypto都不能为客体提供服务保证,并且硬件无法被适当地切片,使得服务提供商无法向订户提供SLA保证。这可以使共享密码服务和某些多租户云环境变得不切实际。
因此,本说明书提供了针对可超额预订资源的服务保证(SAOR)引擎。SAOR引擎为CSP脚本程序资源提供了灵活且高效的切片能力以及针对客体的QoS调度。这使CSP能够为更多租户超额预订其加速器资源(例如,密码资源)。此外,为了使想要拥有一个或多个专用密码加速器的租户的性能最大化,SAOR引擎提供了专用的卸载支持选项以实现真正的一对一映射,使得希望为额外能力付费的租户可以实现零复制方法(例如,直接去往和来自客体的直接存储器访问(DMA)缓冲器)以减少其开销。
本说明书的SAOR引擎实现专用的、可定制化的硬件加速,以卸载一些高成本的CPU计算,因此本质上提供加速即服务(AaaS)。
在整个说明书中,诸如Quick Assist Technology(QAT)之类的密码加速器被用作数据中心中的可超额预订加速器资源或服务的具体示例。然而,应当理解,本说明书的教导和所附权利要求书的范围不限于此。AaaS概念宽泛地涵盖任何加速器,可以有利地为任何可预测操作提供加速器,这些可预测操作可以是处理器密集的并且适合于卸载到辅助设备(其可以包括硬件或协处理器)。
本说明书的SAOR引擎提供了将AaaS提升为数据中心中可行的、可预订的资源的基础设施。本说明书的SAOR引擎还有利地定义了收费单位定义,使得可以提供加速SLA和用于支持超额预订的相关联的方法作为商业模型。这实现了数据中心中的AaaS的高效货币化。
现在将在更具体地参考附图的情况下描述用于提供可超额预订资源分配的系统和方法。应当注意的是,在所有附图中,可以重复某些附图标记以指示特定的设备或块在附图中完全或基本一致。然而,这并不旨在暗示所公开的各种实施例之间的任何特定关系。在某些示例中,元素的类可以由特定的附图标记(“小部件10”)来指代,而类的单个种类或示例可以由连字符(“第一特定小部件10-1”和“第二特定小部件10-2”)来指代。
图1是根据本说明书的一个或多个示例的多租户云环境100的框图。
在图1的示例中,多个租户(即,租户120-1、租户120-2和租户120-3)访问虚拟密码服务器112。虚拟密码服务器112可以访问CPU资源104以及密码加速器组108。CSP操作数据中心100可能希望在合同基础上向租户120提供密码服务,其可以包括SLA。然而,CSP可能希望超额预订密码加速器组108,以确保在某些租户不使用密码加速器时,密码加速器不会处于闲置状态。
为了提供简化的示例,密码加速器组108可以包括密码加速器,该密码加速器被划分为两个切片,即,切片0 110-0和切片1 110-1。为了简化示例,可以假设切片110具有相同的吞吐量和带宽。每个租户120可以具有SLA,该SLA包括例如对访问加速器资源的特定量子的保证。加速器访问的量子单位可以取决于SLA而变化。例如,租户120-1可以要求专用的硬件加速器资源。因此,CSP可以将切片0 110-0作为专用资源分配给租户120-1。切片0 110-0可以被映射到由租户120-1操作的、具有诸如SR-10V和/或DMA之类的专用资源的复合节点。在一些示例中,可以针对对专用切片110-0的保证的“始终在线”访问向租户120-1收取相对更多的费用。
租户120-2和120-3可以不要求相同级别的专用硬件支持。而是,租户120-2和120-3可以与SLA签订合同,其中对加速器组108的访问基于每个计费周期的给定字节数。换言之,当租户120将请求卸载到密码加速器组108时,针对该计费周期,将针对租户的SLA借记要处理的有效载荷的以字节为单位的大小。
由于针对租户120-2和120-3的计费模型不是基于硬件的专用块的分配,而是基于加速的资源的消耗,因此CSP可以维持为这些租户指派硬件资源的灵活性。例如,在高峰业务时段,可以将切片1 110-1分配给租户120-2。当租户120-2正在经历较少的业务需求,并且租户120-3正在经历增加的业务需求时,则可以可替代地将切片1 110-1分配给租户120-3。此外,可能有时租户120-2和租户120-3两者具有使用切片1 110-1的容量的一部分但不是全部容量的平均需求。在这些情况下,租户120-2和租户120-3可以同时共享切片1 110-1。
因为这些资源是从租户120的角度被虚拟化的,所以加速器资源的分配、解除分配和共享对租户是透明的。租户经由API向密码服务发出请求、经由API接收响应并且相应地处理分组。
图2是根据本说明书的一个或多个示例的硬件平台200的框图。
可以在当代计算平台(例如,由提供的硬件平台或类似的硬件平台)上提供本文的教导的实施例。硬件平台可以是单个计算设备(例如,具有(多个)专用的板载处理器、存储器、存储装置和外围设备的专用服务器或装置)。在其他情况下,硬件平台可以是更加独特的。例如,在例如可以由CSP提供的大型数据中心中,硬件平台可以包括具有计算资源(例如,处理器、存储器、存储池、加速器和其他类似资源)的机架安装式服务器。如本文所使用的,“云计算”包括实现对数据、资源和/或技术的普遍(通常是世界范围的)访问的网络连接的计算资源和技术。通常,云资源的特征在于很大的灵活性,以根据当前的工作负载和需求动态地指派资源。这可以例如经由虚拟化和/或容器化来实现,在虚拟化中,经由软件抽象层将诸如硬件、存储装置和网络之类的资源提供给虚拟机(VM),在容器化中,在彼此分离但共享基础操作系统、存储器和/或驱动程序资源的“容器”中提供网络功能的实例。
在新的机架规模设计(RSD)架构中也处于领先地位,在该RSD架构中,数据中心资源以完整的机架提供,包括诸如电源、处理器、加速的存储器组、存储装置、联网设备和加速器之类的资源的“托架”。尽管这些机架在外部可能符合“42U”(或其他)机架标准,但是这些机架在内部却可能但不必符合机架单元标准。而是,这些托架可以具有合适的尺寸和配置,以在单个机架中提供独立的云环境,其中单个托架用作线性可替代单元(LRU)。RSD特别(但不排他地)适用于软件定义的基础设施(SDI),在该SDI中,“复合节点”可以配置有分解式资源,例如,在相同机架或不同机架内提供给复合节点的计算、存储器、存储装置和加速器。在这种情况下,“硬件平台”可以包括被指派并聚合到复合节点中的所有不同的硬件元件(或其部分)。
硬件平台200包括平台资源212,例如,存储器、存储装置、处理器或其他资源。硬件平台200还包括虚拟化基础设施216,其为硬件平台200提供基础设施以提供经虚拟化的计算服务。硬件平台200可以是例如具有适当数量的处理器(例如,24个处理器)以及板载存储器的机架式服务器。硬件平台200可以经由PCIe接口204访问分布式资源,例如,快速或持久存储器、附加存储装置和加速器。本文提供PCIe作为适当接口的非限制性示例。应该理解,可以使用任何合适的结构或接口。
硬件平台200还包括SAOR引擎208。如在整个说明书中使用的,“引擎”包括可以在适当的硬件平台上托管的一个或多个逻辑元件的任意组合。逻辑元件可以是相似或不相似的种类,可操作用于并配置为执行引擎提供的一个或多个方法。例如,引擎可以包括要在任何种类的处理器(例如,微处理器、DSP、协处理器或可编程逻辑器件)上执行的可执行软件。该软件可以包括一个或多个有形的、非暂时性的计算机可读存储介质,其上存储有指令以指示处理器提供方法。通过非限制性示例的方式,这种存储介质可以包括硬盘驱动器、易失性或非易失性存储器、只读存储器(ROM)、基本输入输出系统(BIOS)、闪速存储器、CD-ROM、磁带驱动器或其他存储器。在适当情况下,非暂时性介质还可以包括微处理器内的微码,或直接编码到半导体逻辑中的硬件指令。存储介质还可以包括其上存储有指令的介质,该指令指示设备对另一设备内的逻辑进行编码。
Verilog或VHDL指令、掩码工作或其他逻辑用于使设备编程人员将硬件上的逻辑编码到硬件设备上。引擎也可以体现为知识产权(IP)块,该IP块可以作为具有定义的输入、输出和功能的“黑匣子”无缝集成到集成电路(IC)中。
在其中引擎体现在软件中的情况下,该软件可以是可以在任何适当刺激下启动的用户空间或根级进程。例如,可以响应于信号的接收和/或响应于用户命令来启动软件。在其他情况下,软件可以是“守护程序(daemon)”进程(无论是以硬件、软件、固件或其任何组合实现),该守护程序进程在系统启动时或在其他时间发起并在后台运行。引擎还可以是常驻程序、服务、系统扩展、控制面板、启动过程、BIOS子例程或无需直接用户交互来操作的任何类似程序。在某些实施例中,引擎可以在保护环形架构中与环0、1或2相关联的“驱动器空间”中以提升的非根特权运行。还应注意,通过非限制性示例的方式,引擎还可以包括其他硬件和软件,该软件包括配置文件、注册条目以及交互式或用户模式软件。
在其中引擎至少部分地体现在硬件而不是系统处理器中的情况下,通过非限制性示例的方式,硬件可以包括协处理器、FPGA、ASIC、IP块、片上系统(SoC)、GPU或类似硬件。
图3是根据本说明书的一个或多个示例的针对可超额预订资源的服务保证(SAOR)引擎300的框图。
注意,如图3中示出的,SAOR引擎300具有某些功能块。这些功能块可以体现在不同的软件模块、硬件模块、单个硬件或软件模块的不同部分或任何其他合适的配置中。SAOR引擎300的功能块内的某些功能的分配并不旨在暗示这些功能需要必然地体现在单独的硬件或软件元件中。而是,这说明了执行了这些不同的功能。
在该实施例中,SAOR引擎300包括存储的数据结构,该数据结构包括客体速率304。该客体速率304可以包括关于某些客体消耗可超额预订加速器资源的程度的信息。
SAOR引擎300包括管理模块308、计量模块316、QoS模块312和动作模块320。管理模块308管理针对每个租户和每个客体VM所允许的密码加速器资源。管理模块308允许在运行时对现有密码加速器资源进行精确切片,并且将切片分配给每个客体。从CSP的角度来看,这使得加速资源可超额预订。为了使想要拥有一个或多个密码加速器的租户的性能最大化,SAOR引擎300还提供了实现了一对一映射的专用的卸载支持,使得希望为这种专用支持付费的租户可以实现零复制方法(例如,直接去往和来自客体的DMA缓冲器)。这减少了这些租户的开销。
计量模块316计量由每个客体发送的密码工作负载。计量结果可以基于管理模块308做出的计算的速率。计量模块316可以支持多种计量方案。
动作模块320例如基于计量结果来决定接受或否认由客体发送的密码请求。如果客体在计费周期中已经超过了其分配的请求,则该请求可以被拒绝。动作模块320还可以拒绝针对加速的服务的无效请求。
QoS模块320可以提供整体吞吐量和延迟的运行时检查,并且可以向每个客体提供对所允许的速率的调整。SAOR模块300扩展了主机的硬件加速器灵活性,以适应现代多租户云基础设施的定制化需求。为了提供这种可超额预订资源,SAOR引擎300还可以确保满足某些条件。例如,可以向所有租户提供统一的密码虚拟接口,以访问由CSP提供的密码服务。这将硬件密码加速与软件虚拟接口分离。经由虚拟接口发送到主机的所有请求还可以由发送方租户标识,并且基于商定的定价计划和其他因素将其认证为合格的请求,这可以由SAOR引擎300实施。这提供了可定制化的密码请求/请求分配模型,并且还支持利用租户的元数据信息进行增值仲裁。
应注意的是,采用virtio或virtio-crypto规范可以满足这些条件中的一些。因此,在一些实施例中,SAOR引擎300可以在virtio或virtio-crypto之上实现,并且可以不要求模块来实现上面讨论的条件。其中体现SAOR引擎300的公共云和virtio-crypto的结构和布置可以与SAOR引擎300分开。当在virtio和virtio-crypto内实现SAOR引擎300时,可以在SAOR引擎300外部处理资源的结构和布置。此外,诸如会话创建、密钥交换和块密码加密之类的密码计算的实现细节不必是SAOR引擎300的一部分。然而,在某些实施例中,这些功能可以与SAOR引擎300集成以实现更紧密的耦合。
在图3中示出的示例中,SAOR引擎300可以接收与策略相关的两个加速器作业速率。这两个加速器作业速率是承诺作业速率(CJR)和峰值密码作业速率(PJR),该CJR是云计算提供商承诺提供的,该PJR可以在主机具有可用容量之后实现。应注意的是,PJR可能不适用于将资源的专用实例分配给租户的卸载场景。SAOR引擎300可以将每个密码请求的长度(以字节为单位)用作计量的基本单位。此外,SAOR引擎300可以支持几种计量方法,包括按业务速率计量和按使用计量。
·按业务速率计量:在业务速率进行计量时,只要密码资源的业务速率低于PJR,客体就可以具有对该密码资源的无限使用。只要主机具有额外的容量,该速率就可以高于CJR。应注意的是,在专用卸载的情况下,可以禁用此计量方法。
·按业务使用计量:在按业务使用进行计量时,业务速率计量仍然适用,但是在计费周期(例如,一个月)内的总密码工作负载可能不会超过商定的工作负载量。
应注意的是,出于计量目的,SAOR引擎300设置有计量模块,该计量模块可以包括二速率三色标记(TrTCM)方法。TrTCM可以用于例如区分服务(Diffserv)业务调节器中。TrTCM对IP分组流进行计量,并且基于两个速率(峰值信息速率(PIR)和承诺信息速率(CIR))以及其相关联的突发大小将其分组标记为绿色、黄色或红色中的一个。如果分组超过了PIR,则将其标记为红色。否则,取决于分组超过CIR还是没有超过CIR,将其标记为黄色或绿色。本说明书的SAOR引擎的实施例可以使用TrTCM方法,其中PJR代替PIR起作用,并且CJR代替CIR起作用。
由于多租户云(SA-OCR)中针对超额预订密码资源的服务保证以对针对每个客体的虚拟密码请求进行计量为目标,因此可以引入各种系数来调整计量结果。
例如,主机中物理密码硬件的容量可以是一个因素。除了最大吞吐量之外,由于各种因素(例如,PCIe总线使用和硬件“踢”成本),密码硬件可以具有不同的容量来处理不同长度的请求。可以引入与请求的大小相乘的系数Δs以补偿该容量差异。
SAOR引擎还可以配置为处理无效的密码请求。理想情况下,每个用户将只向主机提交有效的密码请求。但实际上,将收到无效的请求。在一些实施例中,SAOR引擎可以被配置为不对每个请求提供合法性检查。由于无效请求不由密码硬件处理,因此不应对这些无效请求进行计量。然而,惩罚系数Δe可以针对检查针对无效请求的有效性所使用的周期向订户计费。应注意的是,这可能特别适用于按使用计量的计量方法。
图4和图5示出了针对可超额预订资源的分配和解除分配的示例工作流程。
如图4中示出的,可以提供客体412-1至412-n-1。然后提供新的客体412-n。客体412-n可以请求由主机404提供的可超额预订资源408的实例。如图4中示出的,主机404包括或访问该可超额预订资源的多个实例,例如,实例408-1和实例408-2。每个实例的特定部分可能已经被承诺,如由承诺的区域示出的。在所示的未承诺的区域内,主机404可以向新客体412-n新分配区域。应注意的是,该新分配的区域不必在实例408-1上连续。
当新客体412-n向主机404发送用于分配的请求时,该请求可以包括与针对该预订/计费计划和时段的可超额预订服务或资源相关的、与CSP商定的CJR和PJR。
主机404可以针对其可用物理资源(实例408-1和408-2)检查该请求,以确定是否准许该请求。一旦请求被准许,主机404就可以向客体注册服务。应注意的是,这可以与任何合适的定价计划一起使用,因为这与CSP的详细业务模型相关。
在图5中示出了终止。在这种情况下,已经为客体n 512-n分配了跨越实例508-1和508-2的非连续区域。当客体n 512-n从主机504请求可超额预订服务的终止时,主机504可以释放其可超额预订服务的实例的分配的区域。在所示的实施例中,这可以自动地或被动地发生。例如,主机504可以跟踪每个客体的状态和预订有效性。一旦预订到达其端点或由于其他原因超时或终止,主机可以释放实例508-1和508-2的新释放的区域。应注意的是,在终止时,主机将更新现有客体的策略。
从主机504请求更新当前服务预订的后来的客体512将使实例508-1和508-2的新释放的区域对其可用。当主机504接收到新的请求时,主机504将确定是否可以准许更新后的请求。
图6是根据本说明书的一个或多个示例的分配资源的方法600的流程图。
从框604开始,主机从客体接收资源请求或更新请求。该请求可以包括请求内的CJR和PJR两者。
在框608中,主机查询其可用资源。这可以包括确定请求是否有效,以及主机是否具有可用于服务请求的其可超额预订资源的实例。
在决策框612中,主机确定该请求是否可准许。如果该请求是不可准许的,则在框616中,主机拒绝该请求,并且在框698中,该方法完成。
返回框612,如果请求是可准许的,则在框620中,主机将资源分配给客体。这可以包括将可超额预订资源的一个或多个切片分配给客体。如上面所讨论的,一旦已经确认请求是有效的,就可以利用系数Δs来调整请求的长度。
在框624中,主机通知客体它现在具有对可超额预订的加速的资源的访问权。在通知客体之后,主机可以继续进行QoS调度。
QoS调度可以包括计量和调度。在本说明书的SAOR引擎中,主机的物理密码处理能力的容量为ξc,其表示主机在密码工作负载中可以处理的最大字节数。
在框698中,该方法完成。
在客体已经被准许对密码服务进行访问之后,客体可以开始经由接口(例如PCIe)向主机发送密码作业请求。主机可以访问并识别该请求。
图7是根据本说明书的一个或多个示例的解除分配资源的方法700的流程图。应注意的是,在图7的实施例中,解除分配资源终止对可超额预订的加速器资源的实例的访问。
在框708中,如在框702中那样,资源预订可以超时,或者如框704中那样,客体可以明确地请求终止。在任一实例中,主机的SAOR引擎可以认为这是对每个客体信号的加速器分配的终止。
在框712中,主机可以释放分配的加速的资源,如图5中示出的。在框712中,该方法完成。
图8是根据本说明书的一个或多个示例的处理作业请求的方法800的流程图。
从框804开始,主机从客体接收加速器作业请求。该请求可以包括请求内的CJR和PJR两者。
在框808中,为了服务请求,主机可以首先获得请求的长度。可以根据业务速率或使用来计量请求长度。如果采用根据业务速率进行计量,则只要业务速率保持低于PJR,密码资源的使用就不受限制。如果根据使用对请求进行计量,则只要在计费时段内的总密码工作负载不超过商定的工作负载量,密码资源的使用就不受限制。
在框812中,主机检查请求的有效性。这可以包括确定该请求是否具有可接受的长度,或者准许该请求是否会导致超过商定的使用参数。
在决策框816中,如果请求未通过检查,则主机可以或可以不例如参考上文关于系数Δe讨论的惩罚计费来更新使用统计信息。未通过的请求可以被标记有“无效请求”或类似的状态,这可以是客体可识别的响应。
返回框816,如果请求是合法的,则主机可以根据Δs来调整请求的计费长度,如上面所讨论的。
主机可以维护每个客体的动态工作负载大小,单位为字节εi(i∈{0...N}),其中N是客体的数量。然后,主机可以获得客体策略阈值和实时统计信息。这些值可以与客体的唯一标识(ID)一起存储在哈希表中,该唯一ID可以用作查找的密钥。
如上面所描述的,主机还可以使用诸如TrTCM之类的技术来提供颜色标记。SAOR引擎可以使用此方法来确定是处理还是丢弃密码作业请求。应注意的是,也可以使用单速率三色标记(SrTCM),并且其具有较低的计算开销,但不太适合SAOR引擎中的“涡轮增压(turbo boosting)”模式。为了签署SLA,可以期望与密码服务订户一起定义CJR。一旦用户具有要处理的大量请求,并且主机中的物理硬件具有额外的容量,暂时增加用户的商定带宽以实现涡轮增压模式可以既帮助增加用户对服务的满意水平,并且更快地释放队列中的任务,以便利用其他线程进行处理。应注意的是,在TrTCM中,可以定义分别与PJR和CJR相关联的PIR和CIR的概念。SrTCM不包括PIR和CIR概念。
在框838中,在QoS调度之后,SAOR引擎可以确定准许处理请求,或者一旦作业请求被分别标记为绿色或红色时丢弃该作业请求。当作业请求被标记为黄色时,这意味着客体已经超过CJR而不是PJR,则可以执行其他检查。在将作业添加到队列后,主机可以通过区分∑εi和ξc来检查其密码资源的可用容量。如果添加作业后还有剩余容量,则可以准许处理该请求。否则,主机可以丢弃该请求。
在决策框832中,如果未准许该请求,则在框840中,主机通知客体,并且在框898中,该方法完成。
返回到决策框832,在准许由主机处理请求之后,在框836中,主机可以检查总的动态作业量。SAOR引擎的目的是允许主机的可超额预订资源(例如,密码和其他加速器资源)的超额预订。可以有∑εi大于ξc的场景。实际上,这可能经常发生。发生这种情况时,每个客体处的业务速率可以受到限制。应该使每个客体的PJR无效,并且可以临时利用系数Δl调整CJR,加上为防止类似的很快再次出现而进行的调整,其中Δl是通过在所有客体之中对∑εi和ξc之间的差异求平均来计算的。在TrTCM中将请求标记为黄色后,可以执行CJR和PJR调整。SAOR引擎还可以在继续获得下一个请求的长度之前确定是否反转此调整。
被准许的作业请求由主机密码或其他加速器资源处理,并导致将数据发送回客体。
应注意的是,在支持专用卸载的情况下,不需要特定的提供步骤、QoS调度以及检查请求是否有效。
在框898中,完成该方法。
图9是根据本说明书的一个或多个示例的具有到CSP 902的网络900的连接性的数据中心的选定的组件的框图。根据本说明书的教导,本文公开的移动网络900和CSP 902的实施例可以被适配或配置为提供可超额预订资源分配的方法。
通过非限制性示例的方式,CSP 902可以是传统的企业数据中心、企业“私有云”或“公共云”,从而提供诸如基础设施即服务(IaaS)、平台即服务(PaaS)或软件即服务(SaaS)之类的服务。在一些情况下,代替云服务或除云服务之外,CSP 902还可以提供高性能计算(HPC)平台或服务。实际上,尽管没有明确表示相同,但HPC集群(“超级计算机”)在结构上可以类似于云数据中心,并且除非并除了另有明确说明,否则本说明书的教导适用于其中任何一个。
CSP 902可以提供一定数量的工作负载集群918,该工作负载集群918可以是单独的服务器、刀片服务器、机架安装式服务器或任何其他合适的服务器拓扑的集群。在该说明性示例中,示出了两个工作负载集群918-1和918-2,每个集群在底座948中提供机架安装式服务器946。
在该图示中,工作负载集群918被示出为符合机架单元(“U”)标准的模块化工作负载集群,其中可以构造19英寸宽的标准机架以容纳42个单元(42U),每个单元1.75英寸高并且大约36英寸深。在这种情况下,诸如处理器、存储器、存储装置、加速器和交换机之类的计算资源可以在从一个到42个的某种多个机架单元中适合。
然而,也设想了其他实施例。例如,图13说明了资源托架。尽管可以根据标准机架单元(例如,3U资源托架)来构建资源托架,但在所谓的“机架规模”架构中不一定这样做。在这种情况下,可以提供整个预先填充的资源机架作为一个单元,其中该机架托管多个计算托架,这些计算托架可以符合或可以不符合机架单元标准(特别是高度)。在这些情况下,计算托架可以被认为是LRU。如果资源发生故障,则可以拉出托管该资源的托架,并且可以模块化地插入新托架。然后可以取决于故障的性质修复或丢弃故障的托架。机架规模架构在其中可以根据分解式资源构建复合节点的SDI的情况下特别有用。可以提供大型资源池,并且SDI协调器可以根据需要将其分配给复合节点。
每个服务器946可以托管独立的操作系统并且提供服务器功能,或者服务器可以被虚拟化,在这种情况下,服务器可以在虚拟机管理器(VMM)、管理程序和/或编排器的控制下,并且可以托管一个或多个虚拟机、虚拟服务器或虚拟装置。这些服务器机架可以并置在单个数据中心中,或者可以位于不同的地理数据中心中。取决于合同协议,某些服务器946可以具体地专用于某些企业客户端或租户,而其他服务器可以是共享的。
数据中心中的各种设备可以经由交换结构970彼此连接,交换结构970可以包括一个或多个高速路由和/或交换设备。交换结构970可以提供“北南”业务(例如,去往和来自诸如互联网之类的广域网(WAN)的业务)和“东西”业务(例如,跨数据中心的业务)两者。从历史上看,北南业务占网络业务的大部分,但是随着web服务变得更加复杂和分散,东西业务的量已经增加。在许多数据中心中,东西业务现在占业务的大部分。
此外,随着每个服务器946的能力增加,业务量可以进一步增加。例如,每个服务器946可以提供多个处理器插槽,其中每个插槽容纳具有四个到八个核心的处理器,以及用于这些核心的足够的存储器。因此,每个服务器可以托管多个VM,每个VM生成其自己的业务。
为了在数据中心中容纳大量业务,可以提供高性能的交换结构970。在该示例中,交换结构970被示出为“平面”网络,其中每个服务器946可以具有到机架顶部(ToR)交换机920的直接连接(例如,“星形”配置),并且每个ToR交换机920可以耦合到核心交换机930。这种两层平面网络架构仅被示出为说明性示例。在其他示例中,可以使用其他架构,通过非限制性示例的方式,例如,基于“克洛斯(Clos)”架构的三层星形或叶脊(也称为“胖树”拓扑)、中心辐射型拓扑、网格拓扑、环形拓扑或3D网格拓扑。
该结构本身可以由任何合适的互连提供。例如,每个服务器146可以包括主机结构接口(HFI)、网络接口卡(NIC)、主机通道适配器(HCA)或其他主机接口。为了简单和统一起见,在整个本说明书中,这些可以被称为“主机结构接口”(HFI),应宽泛地将其解释为用于将主机通信地耦合到数据中心结构的接口。HFI可以经由互连或总线(例如,PCI、PCIe或类似物)耦合到一个或多个主机处理器。在某些情况下,该互连总线以及其他“本地”互连(例如,核心到核心超路径互连)可以被认为是结构970的一部分。在其他实施例中,超路径互连(UPI)(或其他本地一致性互连)可以被认为是处理器联合体的安全域的一部分,并且因此不是结构的一部分。
互连技术可以由单个互连或混合互连提供,例如,其中PCIe提供片上通信,1Gb或10Gb铜以太网提供与ToR交换机920的相对短的连接,并且光缆提供与核心交换机930的相对长的连接。通过非限制性示例的方式,可以在数据中心中找到的互连技术包括Omni-PathTM架构(OPA)、TrueScaleTM、UPI(以前称为QPI或KTI)、光纤通道(FibreChannel)、以太网、通过以太网的光纤通道(FCoE)、InfiniBand、PCI、PCIe或光纤,仅举几例。该结构可以是高速缓存和存储器一致性的、高速缓存和存储器非一致性的,或者是一致性互连和非一致性互连的混合体。对于某些目的或功能,某些互连比其他互连更受欢迎,并且为本申请选择合适的结构是本领域普通技术人员的一项工作。例如,OPA和Infiniband通常在HPC应用中使用,而以太网和光纤通道在云数据中心中更为流行。但是这些示例显然是非限制性的,并且随着数据中心的演进,结构技术也类似地演进。
注意,尽管本文通过说明的方式提供了诸如OPA之类的高端结构,但更一般地,结构970可以是用于特定应用的任何合适的互连或总线。在某些情况下,该结构170包括旧有的互连,例如,局域网(LAN)、令牌环网络、同步光学网络(SONET)、异步传输模式(ATM)网络、无线网络(例如,WiFi和蓝牙)、“普通旧电话系统”(POTS)互连或类似的互连。还明确地预期的是,在将来,可以出现新的网络技术来补充或代替这里列出的技术中的一些,并且任何这种未来的网络拓扑和技术都可以是结构970或形成结构970的一部分。
在某些实施例中,结构970可以在各种“层”上提供通信服务,如在OSI七层网络模型中最初概述的那样。在当代实践中,没有严格遵循开放系统互联(OSI)模型。一般而言,第1层和第2层通常被称为“以太网”层(尽管在一些数据中心或超级计算机中,以太网可以由更新的技术取代或补充)。第3层和第4层通常被称为传输控制协议/互联网协议(TCP/IP)层(其可以进一步细分为TCP层和IP层)。第5-7层可以称为“应用层”。这些层的定义被公开为有用的框架,但旨在是非限制性的。
图10是根据本说明书的一个或多个示例的最终用户计算设备1000的框图。根据本说明书的教导,本文公开的最终用户计算设备1000的实施例可以被适配或配置为提供可超额预订资源分配的方法。
如上面所描述的,计算设备1000可以适当地提供云服务、HPC、电信服务、企业数据中心服务或受益于计算设备1000的任何其他计算服务。
在该示例中,提供结构1070以互连计算设备1000的各个方面。结构1070可以与图9的结构970相同,或者可以是不同的结构。如上,可以由任何适当的互连技术来提供结构1070。在该示例中,Omni-PathTM被用作说明性且非限制性的示例。
如所示的,计算设备1000包括形成多个节点的多个逻辑元件。应当理解,每个节点可以由物理服务器、服务器组或其他硬件提供。每个服务器可能正在运行适合其应用的一个或多个VM。
节点0 1008是包括处理器插座0和处理器插座1的处理节点。处理器可以是例如具有多个核心(例如,4个或8个核心)的XeonTM处理器。节点0 1008可以被配置为例如通过托管多个VM或虚拟装置来提供网络或工作负载功能。
可以由板上上行链路1078提供处理器插座0与处理器插座1之间的板上通信。这可以在两个处理器插座之间提供非常高速、短长度的互连,使得在节点0 1008上运行的VM可以以非常高的速度彼此通信。为了促进该通信,可以在节点0 1008上提供可以被认为是结构1070的一部分的虚拟交换机(vSwitch)。
节点0 1008经由HFI 1072连接到结构1070。HFI 1072可以连接到Omni-PathTM结构。在一些示例中,可以例如通过在Omni-PathTM上提供UPI隧道化来隧道化与结构1070的通信。
因为计算设备1000可以以分布式方式提供在先前几代中在板上提供的许多功能,所以可以提供高性能的HFI 1072。HFI 1072可以以每秒几千兆比特的速度操作,并且在某些情况下可以与节点0 1008紧密耦合。例如,在一些实施例中,用于HFI 1072的逻辑直接与处理器集成在SoC上。这在不需要中间总线设备的情况下提供了HFI 1072与处理器插座之间的非常高速的通信,中间总线设备可能在结构中引入附加的延迟。然而,这并不暗示将排除其中通过传统总线提供HFI 1072的实施例。而是,明确预期的是,在一些示例中,可以在诸如PCIe总线之类的总线上提供HFI 1072,该总线是提供比传统PCI更高的速度的PCI的经串行化的版本。在整个计算设备1000中,各种节点可以提供不同类型的HFI 1072,例如,板上HFI和插入式HFI。还应注意,SoC中的某些块可以作为IP块被提供,该IP块可以作为模块化单元“掉落”到集成电路中。因此,在某些情况下,HFI 1072可以源自这种IP块。
注意,以“网络即设备”方式,节点0 1008可以提供有限的板上存储器或存储装置或不提供板上存储器或存储装置。而是,节点0 1008可以主要依赖于分布式服务,例如,存储器服务器和联网的存储服务器。在板上,节点0 1008可以仅提供足够的存储器和存储装置以引导设备并且使设备与结构1070通信。由于当代数据中心的非常高的速度,因此这种类型的分布式架构是可能的,并且由于不需要针对每个节点过量提供资源,因此可以是有利的。相反,可以在多个节点之间动态地提供大型高速存储器或专用存储器的池,使得每个节点都可以具有对大型资源池的访问权,但是当该特定节点不需要这些资源时,这些资源不会处于空闲。
在该示例中,节点1存储器服务器1004和节点2存储服务器1010提供节点0 1008的操作存储器和存储能力。例如,存储器服务器节点1 1004可以提供远程直接存储器访问(RDMA),由此节点0 1008可以经由结构1070以DMA方式访问节点1 1004上的存储器资源,类似于节点0 1008将如何访问其自己的板上存储器。由存储器服务器1004提供的存储器可以是传统存储器(例如,易失性的双倍数据速率类型3(DDR3)动态随机存取存储器(DRAM)),或者可以是更独特的类型的存储器(例如,如同3D CrosspointTM(3DXP)的持久快速存储器(PFM),它以类似于DRAM的速度操作,但是是非易失性的)。
类似地,不是提供用于节点0 1008的板上硬盘,而是可以提供存储服务器节点21010。存储服务器1010可以提供联网的磁盘群(NBOD)、PFM、独立磁盘冗余阵列(RAID)、独立节点冗余阵列(RAIN)、网络附接的存储装置(NAS)、光学存储装置、磁带驱动器或其他非易失性存储器解决方案。
因此,在执行节点0 1008的指定功能时,节点0 1008可以从存储器服务器1004访问存储器并且将结果存储在由存储服务器1010提供的存储装置上。这些设备中的每一个经由HFI 1072耦合到结构1070,该HFI 1072提供了使这些技术成为可能的快速通信。
通过进一步说明的方式,还描绘了节点3 1006。节点3 1006还包括HFI 1072,以及通过上行链路在内部连接的两个处理器插座。然而,与节点0 1008不同,节点3 1006包括其自己的板上存储器1022和存储装置1050。因此,节点3 1006可以被配置为主要在板上执行其功能,并且可能不被要求依赖于存储器服务器1004和存储服务器1010。然而,在适当的情况下,节点31006可以利用类似于节点0 1008的分布式资源来补充其自己的板上存储器1022和存储装置1050。
计算设备1000还可以包括加速器1030。这些加速器1030可以提供各种加速的功能,包括用于诸如分组处理、加密、解密、压缩、解压缩、网络安全或者数据中心中的其他加速的功能之类的功能的硬件或协处理器加速。在一些示例中,加速器1030可以包括可以直接附接到诸如节点0 1008或节点3 1006之类的节点中的一个或多个核心的深度学习加速器。通过非限制性示例的方式,这种加速器的示例可以包括Quick DataTechnology(QDT)、Quick Assist Technology(QAT)、Direct Cache Access(DCA)、Extended Message Signaled Interrupt(MSI-X)、Receive SideCoalescing(RSC)和其他加速技术。
在其他实施例中,还可以提供加速器作为ASIC、FPGA、协处理器、图形处理单元(GPU)、数字信号处理器(DSP)或其他处理实体,其可以可选地被调谐或配置为提供加速器功能。
本文公开的各种组件的基本构造块可以被称为“逻辑元件”。逻辑元件可以包括硬件(包括例如软件可编程处理器、ASIC或FPGA)、(数字、模拟或混合信号的)外部硬件、软件、往复软件、服务、驱动程序、接口、组件、模块、算法、传感器、组件、固件、微码、可编程逻辑或可以协调以实现逻辑操作的对象。此外,一些逻辑元件由有形的、非暂时性的计算机可读介质提供,该计算机可读介质上存储有用于指示处理器执行某种任务的可执行指令。通过非限制性示例的方式,这种非暂时性介质可以包括例如硬盘、固态存储器或磁盘、ROM、PFM(例如,3D CrosspointTM)、外部存储装置、RAID、RAIN、NAS、光学存储装置、磁带驱动器、备份系统、云存储装置或前述的任何组合。这种介质还可以包括编程到FPGA中或在ASIC或处理器上的硬件中编码的指令。
图11是根据本说明书的一个或多个示例的网络功能虚拟化(NFV)基础设施1100的框图。根据本说明书的教导,本文公开的NFV基础设施1100的实施例可以被适配或配置为提供可超额预订资源分配的方法。
NFV是网络虚拟化的一个方面,其通常被认为与软件定义的网络(SDN)不同,但是仍然可以与SDN互操作。例如,虚拟网络功能(VNF)可以在SDN部署的数据平面内操作。NFV最初被设想为用于为电信服务提供减少的资本支出(Capex)和操作开支(Opex)的方法。NFV的一个特征是利用在经虚拟化的环境内的商用现成(COTS)硬件上运行的虚拟装置来代替专有的专用硬件装置。除了节省Capex和Opex之外,NFV还提供了更加敏捷且可适应的网络。随着网络负载的改变,可以提供(“旋转加速”)或移除(“旋转减速”)VNF以满足网络需求。例如,在高负载时,更多的负载平衡器VNF可以旋转加速,以将业务分发到更多的工作负载服务器(其本身可以是VM)。在经历更多可疑业务时,可能需要附加的防火墙或深度分组检查(DPI)装置。
因为NFV最初作为一种电信特征,所以许多NFV实例都集中于电信。然而,NFV不限于电信服务。从宽泛意义上讲,NFV包括在网络功能虚拟化基础设施(NFVI)(例如,NFVI400)内运行的一个或多个VNF。通常,VNF是与工作负载服务器或其他节点分离的内联服务功能。这些VNF可以一起链接到可以由虚拟子网定义的服务链中,并且可以包括提供幕后工作(例如,安全性、记录、计费以及类似的工作)的一系列网络服务。
如同SDN一样,NFV是网络虚拟化的子集。换言之,网络的某些部分可以依赖于SDN,而其他部分(或相同部分)可以依赖于NFV。
在图11的示例中,NFV编排器1101管理在NFVI 1100上运行的多个VNF 1112。NFV要求重要的资源管理,例如,在每个VNF的适当数量的实例之间分配非常大的计算资源池,管理VNF之间的连接,确定每个VNF要分配多少个实例,以及管理存储器、存储装置和网络连接。这可能要求复杂的软件管理,因此使NFV编排器1101成为宝贵的系统资源。注意,NFV编排器1101可以提供基于浏览器的接口或图形配置接口,并且在一些实施例中,NFV编排器1101可以与SDN编排功能集成。
注意,NFV编排器1101本身可以被虚拟化(而不是专用硬件装置)。NFV编排器1101可以被集成在现有的SDN系统内,其中操作支持系统(OSS)管理SDN。这可以与云资源管理系统(例如,OpenStack)交互以提供NFV编排。NFVI 1100可以包括硬件、软件和其他基础设施,以使VNF能够运行。这可以包括可以在其上运行一个或多个VM 1104的硬件平台1102。例如,该示例中的硬件平台1102-1运行VM 1104-1和VM 1104-2。硬件平台1102-2运行VM 1104-3和VM 1104-4。每个硬件平台可以包括管理程序1120、VMM或类似功能,其可以包括本地(裸机)操作系统并且在本地(裸机)操作系统上运行,该本地(裸机)操作系统可以是最小的以便消耗很少的资源。
硬件平台1102可以是或包括刀片服务器或插槽服务器的一个或若干个机架(包括例如处理器、存储器和存储装置)、一个或多个数据中心、跨一个或多个地理位置分布的其他硬件资源、硬件交换机或网络接口。NFVI 1100还可以包括使管理程序能够运行并且由NFV编排器1101管理的软件架构。
多个VM 1104在NFVI 1100上运行,在该示例中,VM 1104中的每一个是提供虚拟服务装置的VNF。在该示例中,每个VM 1104包括数据平面开发套件(DVDK)的实例、虚拟操作系统1108和提供VNF 1112的应用。
作为非限制性且说明性的示例,经虚拟化的网络功能可以包括防火墙、入侵检测系统、负载平衡器、路由器、会话边界控制器、DPI服务、网络地址转换(NAT)模块或呼叫安全性关联。
图11的图示示出了已经在NFVI 1100内提供并且在NFVI 1100内存在的多个VNF1104。该图不一定示出VNF与较大网络之间的任何关系或NFVI 1100可以采用的分组流。
所示出的数据平面开发套件(DPDK)实例1116提供了用于跨虚拟交换机(vSwitch)1122进行通信的一组高度优化的库。如同VM 1104一样,vSwitch 1122由管理程序1120提供并分配。管理程序使用网络接口以将硬件平台连接到数据中心结构(例如,HFI)。该HFI可以由在硬件平台1102上运行的所有VM 1104共享。因此,vSwitch可以被分配用于在VM 1104之间交换业务。vSwitch可以是纯软件vSwitch(例如,共享存储器vSwitch),该纯软件vSwitch可以被优化,使得数据不会在存储器位置之间移动,而是数据可以停留在一个位置,并且指针可以在VM 1104之间传递以模拟数据在vSwitch的入端口与出端口之间移动。vSwitch还可以包括硬件驱动程序(例如,硬件网络接口IP块,其交换业务,但是连接到虚拟端口而不是物理端口)。在该图示中,示出了分布式vSwitch 1122,其中vSwitch 1122在两个或更多个物理硬件平台1102之间共享。
图12是根据本说明书的一个或多个示例的计算平台1202A的组件的框图。根据本说明书的教导,本文公开的计算平台1202A的实施例可以被适配或配置为提供可超额预订资源分配的方法。
在所描绘的实施例中,平台1202A,1202B和1202C以及数据中心管理平台1206和数据分析引擎1204经由网络1208互连。在其他实施例中,计算机系统可以包括任何合适数量的(即,一个或多个)平台。在一些实施例中(例如,当计算机系统仅包括单个平台时),系统管理平台1206的全部或一部分可以被包括在平台1202上。平台1202可以包括平台逻辑1210,其具有一个或多个CPU 1212、存储器1214(其可以包括任何数量的不同模块)、芯片组1216、通信接口1218以及用于执行管理程序1220的任何其他合适的硬件和/或软件或能够执行与平台1202上运行的应用相关联的工作负载的其他操作系统。在一些实施例中,平台1202可以用作用于调用这些应用的一个或多个客体系统1222的主机平台。平台1202A可以表示任何合适的计算环境,例如,HPC环境、数据中心、通信服务提供商基础设施(例如,演进的分组核心的一个或多个部分)、存储器内计算环境、交通工具(例如,汽车或飞机)的计算系统、物联网环境、工业控制系统、其他计算环境或其组合。
在本公开的各种实施例中,监视多个硬件资源(例如,核心和非核心)的累积压力和/或累积压力的速率,并且计算机平台1202A的实体(例如,系统管理平台1206、管理程序1220或其他操作系统)可以指派平台逻辑1210的硬件资源以根据压力信息执行工作负载。在一些实施例中,可以将自我诊断能力与压力监视相结合,以更准确地确定硬件资源的健康状况。每个平台1202可以包括平台逻辑1210。除了实现平台1202的功能的逻辑之外,平台逻辑1210还包括一个或多个CPU 1212、存储器1214、一个或多个芯片组1216以及通信接口1228。尽管示出了三个平台,但是计算机平台1202A可以与任何合适数量的平台互连。在各种实施例中,平台1202可以驻留在安装在底座、机架或包括通过网络1208(其可以包括例如机架或背板交换机)耦合在一起的多个平台的其他合适的结构中的电路板上。
CPU 1212可以各自包括任何合适数量的处理器核和支持逻辑(例如,非核心)。核心可以通过驻留在CPU 1212和/或芯片组1216上的一个或多个控制器彼此耦合、耦合到存储器1214、耦合到至少一个芯片组1216和/或耦合到通信接口1218。在特定实施例中,CPU1212体现在插座内,该插座永久地或可移除地耦合到平台1202A。尽管示出了四个CPU,但是平台1202可以包括任何合适数量的CPU。
存储器1214可以包括任何形式的易失性或非易失性存储器,包括但不限于磁性介质(例如,一个或多个磁带驱动器)、光学介质、随机存取存储器(RAM)、ROM、闪速存储器、可移除介质或一个或多个任何其他合适的本地或远程存储器组件。存储器1214可以由平台1202A用于短期、中期和/或长期存储。存储器1214可以存储由平台逻辑1210利用的任何合适的数据或信息,包括嵌入在计算机可读介质中的软件,和/或结合在硬件中或以其他方式存储的编码逻辑(例如,固件)。存储器1214可以存储由CPU 1212的核心使用的数据。在一些实施例中,存储器1214还可以包括用于可以由CPU 1212的核心或其他处理元件(例如,驻留在芯片组1216上的逻辑)执行以提供与平台逻辑1210的可管理性引擎1226或其他组件相关联的功能的指令的存储。平台1202还可以包括一个或多个芯片组1216,该芯片组1216包括支持CPU 1212的操作的任何适当的逻辑。在各种实施例中,芯片组1216可以驻留在与CPU1212相同的芯片或封装上,或者驻留在一个或多个不同的芯片或封装上。每个芯片组可以支持任何合适数量的CPU 1212。芯片组1216还可以包括一个或多个控制器,以将平台逻辑1210的其他组件(例如,通信接口1218或存储器1214)耦合到一个或多个CPU。在所描绘的实施例中,每个芯片组1216还包括可管理性引擎1226。可管理性引擎1226可以包括支持芯片组1216的操作的任何适当的逻辑。在特定实施例中,可管理性引擎1226(也可以称为创新引擎)能够收集来自芯片组1216、由芯片组1216管理的(多个)CPU 1212和/或存储器1214、平台逻辑1210的其他组件和/或平台逻辑1210的组件之间的各种连接的实时遥测数据。在各种实施例中,收集的遥测数据包括本文所描述的压力信息。
在各种实施例中,可管理性引擎1226作为带外异步计算代理操作,其能够与平台逻辑1210的各种元件接合以收集遥测数据,而不会中断或很少中断CPU 1212上的正在运行的进程。因此,可管理性引擎1226可以包括芯片组1216上的专用处理元件(例如,处理器、控制器或其他逻辑),其(例如,通过执行软件指令)提供可管理性引擎1226的功能,从而节省了CPU 1212用于与由平台逻辑1210执行的与工作负载相关联的操作的处理周期。此外,用于可管理性引擎1226的专用逻辑可以相对于CPU 1212异步操作,并且可以收集遥测数据中的至少一些而不增加CPU上的负载。
可管理性引擎1226可以处理其收集的遥测数据(本文提供了压力信息的处理的特定示例)。在各种实施例中,可管理性引擎1226将其收集的数据和/或其处理的结果报告给计算机系统中的其他元件,例如,一个或多个管理程序1220或其他操作系统和/或系统管理软件(其可以在诸如系统管理平台1206之类的任何适当的逻辑上运行)。在特定实施例中,诸如核心已经累积了过多压力量之类的关键事件可以在用于报告遥测数据的正常间隔之前报告(例如,可以在检测到之后立即发送通知)。
另外地,可管理性引擎1226可以包括可配置为设置特定芯片组1216管理哪个(哪些)CPU 1212和/或可以收集哪些遥测数据的可编程代码。
芯片组1216还各自包括通信接口1228。通信接口1228可以用于芯片组1216与一个或多个I/O设备、一个或多个网络1208和/或耦合到网络1208的一个或多个设备(例如,系统管理平台1206)之间的信令和/或数据的通信。例如,通信接口1228可以用于发送和接收诸如数据分组之类的网络业务。在特定实施例中,通信接口1228包括一个或多个物理网络接口控制器(NIC),其也被称为网络接口卡或网络适配器。NIC可以包括电子电路,以使用诸如以太网(例如,由IEEE 802.3标准定义)、光纤通道、InfiniBand、Wi-Fi或其他适当标准之类的任何适当的物理层和数据链路层标准进行通信。NIC可以包括一个或多个物理端口,其可以耦合到电缆(例如,以太网电缆)。NIC可以实现芯片组1216的任何合适的元件(例如,可管理性引擎1226或交换机1230)与耦合到网络1208的另一设备之间的通信。在各种实施例中,NIC可以与芯片组集成(即,可以位于与芯片组逻辑的其余部分相同的集成电路或电路板上),或者可以位于与芯片组机电耦合的不同的集成电路或电路板上。
在特定实施例中,通信接口1228可以允许与由可管理性引擎1226执行的管理和监视功能相关联的数据的通信(例如,在可管理性引擎1226与数据中心管理平台1206之间)。在各种实施例中,可管理性引擎1226可以利用通信接口1228的元件(例如,一个或多个NIC)来(例如,向系统管理平台1206)报告遥测数据,以便为与由平台逻辑1210执行的工作负载相关联的操作保留通信接口1218的NIC的使用。
交换机1230可以耦合到通信接口1228的(例如,由NIC提供的)各种端口,并且可以在这些端口与芯片组1216的各种组件(例如,耦合到CPU 1212的一个或多个快速外围组件互连(PCIe)通道)之间切换数据。交换机1230可以是物理交换机或虚拟(即,软件)交换机。
平台逻辑1210可以包括附加的通信接口1218。类似于通信接口1228,通信接口1218可以用于平台逻辑1210与一个或多个网络1208以及耦合到该网络1208的一个或多个设备之间的信令和/或数据的通信。例如,通信接口1218可以用于发送和接收诸如数据分组之类的网络业务。在特定实施例中,通信接口1218包括一个或多个物理NIC。这些NIC可以实现平台逻辑1210的任何合适的元件(例如,CPU 1212或存储器1214)与耦合到网络1208的另一设备(例如,其他平台的元件或通过一个或多个网络耦合到网络1208的远程计算设备)之间的通信。
平台逻辑1210可以接收并执行任何合适类型的工作负载。工作负载可以包括利用平台逻辑1210的一个或多个资源(例如,一个或多个核或相关联的逻辑)的任何请求。例如,工作负载可以包括用于实例化软件组件(例如,I/O设备驱动器1224或客体系统1222)的请求;用于处理从虚拟机(VM)1232或平台1202A外部的设备(例如,耦合到网络1208的网络节点)接收到的网络分组的请求;用于执行与客体系统1222、在平台1202A上运行的应用、管理程序1220或在平台1202A上运行的其他操作系统相关联的进程或线程的请求;或其他合适的处理请求。
VM 1232可以利用其自己的专用硬件来模拟计算机系统。VM 1232可以在管理程序1220之上运行客体操作系统。可以使平台逻辑1210的组件(例如,CPU 1212、存储器1214、芯片组1216和通信接口1218)虚拟化,使得其对于客体操作系统表现为VM 1232具有其自己的专用组件。
VM 1232可以包括经虚拟化的NIC(vNIC),该vNIC由VM用作其网络接口。可以为vNIC指派介质访问控制(MAC)地址或其他标识符,因此允许多个VM 1232在网络中可单独寻址。
VNF 1234可以包括功能性构建块的软件实现方式,该功能性构建块具有可以在经虚拟化的基础设施中部署的定义的接口和行为。在特定实施例中,VNF 1234可以包括一个或多个VM 1232,其共同提供特定功能(例如,WAN优化、虚拟私人网络(VPN)终端、防火墙操作、负载平衡操作、安全性功能等)。在平台逻辑1210上运行的VNF 1234可以提供与通过专用硬件实现的传统网络组件相同的功能。例如,VNF 1234可以包括用于执行任何合适的NFV工作负载的组件,例如,经虚拟化的演进的分组核心(vEPC)组件、移动性管理实体、第三代合作伙伴计划(3GPP)控制和数据平面组件等。
SFC 1236是一组VNF 1234,其被组织为一条链以执行一系列操作,例如,网络分组处理操作。服务功能链可以提供定义网络服务(例如,防火墙、负载平衡器)的有序列表的能力,这些网络服务在网络中缝合在一起以创建服务链。
管理程序1220(也称为VM监视器)可以包括创建和运行客体系统1222的逻辑。管理程序1220可以向由VM运行的客体操作系统呈现虚拟操作平台(即,当客体操作系统实际上被合并到单个硬件平台上时,对于VM表现为客体操作系统在单独的物理节点上运行),并通过平台逻辑1210管理客体操作系统的执行。管理程序1220的服务可以通过在软件中进行虚拟化或通过要求最少的软件干预的硬件辅助的资源或两者来提供。管理程序1220可以管理各种客体操作系统的多个实例。每个平台1202可以具有管理程序1220的单独的实例化。
管理程序1220可以是直接在平台逻辑1210上运行以控制平台逻辑并管理客体操作系统的本机或裸机管理程序。可替代地,管理程序1220可以是在主机操作系统上运行并从该主机操作系统抽象客体操作系统的托管的管理程序。管理程序1220可以包括虚拟交换机1238,该虚拟交换机1238可以向客体系统1222的VM提供虚拟交换和/或路由功能。虚拟交换机1238可以包括将VM 1232的vNIC彼此耦合的逻辑交换结构,因此创建VM可以通过其彼此通信的虚拟网络。
虚拟交换机1238可以包括使用平台逻辑1210的组件被执行的软件元素。在各种实施例中,管理程序1220可以与任何合适的实体(例如,SDN控制器)通信,这可以使管理程序1220响应于平台1202中的改变条件而重新配置虚拟交换机1238的参数(例如,VM 1232的添加或删除或可以进行以增强平台的性能的优化的标识)。
管理程序1220还可以包括资源分配逻辑1244,该资源分配逻辑1244可以包括用于基于遥测数据(其可以包括压力信息)来确定平台资源的分配的逻辑。资源分配逻辑1244还可以包括用于与平台1202A的平台逻辑1210实体的各种组件(例如,平台逻辑1210的组件)进行通信以实现这种优化的逻辑。
任何合适的逻辑都可以做出这些优化决策中的一个或多个。例如,系统管理平台1206;管理程序1220或其他操作系统的资源分配逻辑1244;或计算机平台1202A的其他逻辑可以能够做出这样的决策。在各种实施例中,系统管理平台1206可以跨多个平台1202接收遥测数据并管理跨多个平台1202的工作负载布置。系统管理平台1206可以与管理程序1220或各种平台1202的其他操作系统(例如,以带外方式)进行通信,以实现由系统管理平台指示的工作负载布置。
平台逻辑1210的元件可以以任何合适的方式耦合在一起。例如,总线可以将组件中的任何组件耦合在一起。总线可以包括任何已知的互连,例如,多点总线、网格互连、环形互连、点对点互连、串行互连、并行总线、一致性(例如,高速缓存一致性)总线、分层协议架构、差分总线或Gunning收发器逻辑(GTL)总线。
如本说明书中所使用的,高速缓存一致性是在多个高速缓存之间提供统一共享和映射的存储器架构。例如,高速缓存可以映射到相同的地址空间。如果两个不同的高速缓存已经在共享地址空间中缓存了相同的地址,则一致性代理将提供逻辑(硬件和/或软件)以确保共享资源的兼容性和统一性。例如,如果两个高速缓存已经缓存了相同的地址,则当在一个缓存中更新存储在该地址中的值时,一致性代理将确保将改变传播到另一个缓存。可以例如经由“窥探(snoop)”来维持一致性,其中,每个高速缓存监视每个其他高速缓存的地址线并检测更新。高速缓存一致性也可以经由基于目录的系统来维持,其中共享数据被放置在维护一致性的共享目录中。一些分布式共享存储器架构还可以例如通过仿真前述机制来提供一致性。
一致性可以是“窥探式”或基于目录的。在窥探协议中,可以经由写无效来维持一致性,其中窥探到对第二高速缓存中的相同地址的写入的第一高速缓存使其自己的副本无效。如果程序试图从第一高速缓存中读取值,则这将强制从存储器中进行读取。可替代地,在写入更新中,第一高速缓存窥探对第二高速缓存的写入,并且高速缓存控制器(其可以包括一致性代理)将数据复制出并更新第一高速缓存中的副本。
通过非限制性示例的方式,当前的高速缓存一致性模型包括MSI(修改,共享,无效)、MESI(修改,排他,共享,无效)、MOSI(修改,拥有,共享,无效)、MOESI(修改,拥有,排他,共享,无效)、MERSI(已修改,排他,只读或近期,共享,无效)、MESIF(修改,排他,共享,无效,转发)、一次写入、Synapse、Berkeley、Firefly和Dragon协议。此外,ARM处理器可以使用包括AMBA 4ACE的高级微控制器总线架构(AMBA),以在片上系统(SoC)中或其他地方提供高速缓存一致性。
计算机平台1202A的元件可以以任何适当的方式(例如,通过一个或多个网络1208)耦合在一起。网络1208可以是任何适当的网络或使用一个或多个适当的联网协议进行操作的一个或多个网络的组合。网络可以表示用于接收和发送通过通信系统传播的信息分组的一系列节点、点和互连的通信路径。例如,网络可以包括一个或多个防火墙、路由器、交换机、安全性装置、防病毒服务器或其他有用的网络设备。
图13是根据本说明书的一个或多个示例的机架规模架构1300的框图。根据本说明书的教导,本文公开的机架规模架构1300的实施例可以被适配或配置为提供可超额预订资源分配的方法。
在该示例中,RSA 1300包括单个机架1304以示出RSD的某些原理。应当理解,RSA1300可以包括许多这样的机架,并且机架不一定彼此相同。在一些情况下,可以提供诸如机架1304之类的多用途机架,而在其他示例中,可以提供单用途机架。例如,机架1304可以被认为是高度包容的机架,其包括可以用于分配大量复合节点的资源。另一方面,其他示例可以包括仅专用于计算托架、存储托架、存储器托架和其他资源类型的机架,这些机架可以一起集成到复合节点中。因此,图13的机架1304应该被理解为可以在RSA 1300中使用的机架的非限制性示例。
在图13的示例中,机架1304可以是具有大约23.6英寸的外部宽度和78.74英寸的高度的标准机架。在通常的使用者,其被称为“42U机架”。但是,机架1304不必符合“机架单元”标准。而是,机架1304可以包括针对其目的被优化的多个底座。
机架1304可以作为整体单元销售和出售,每个底座内具有多个LRU。在这种情况下,LRU可以是托架,并且因此可以在需要进行更换时很容易地交换出来。
在该示例中,机架1304包括电源底座1310、存储底座1316、三个计算底座(1324-1、1324-2和1324-3)、3-D CrosspointTM(3DXP)底座1328、加速器底座1330和联网底座1334。每个底座可以包括一个或多个LRU托架,这些托架上保持有合适的资源。例如,电源底座1310包括多个热插拔电源供应1312,其可以向机架1304提供共享的电力。在其他实施例中,取决于实施例的需要,一些托架底座也可以包括其自己的电源供应。
存储底座1316包括多个存储托架1318。计算底座1324各自包含多个计算托架1320。3DXP底座1328可以包括多个3DXP托架1326,每个托架托管3DXP存储服务器。并且加速器底座1330可以托管多个加速器,例如Quick AssistTM技术(QAT)、FPGA、ASIC或相同或不同类型的其他加速器。根据特定实施例的需要,加速器底座1330内的加速器可以是相同类型或不同类型的。
随着时间推移,机架1304内的各种LRU可以损坏、过时或出现功能错误。发生这种情况时,可以拉出LRU并用兼容的LRU代替,因此允许机架继续进行全规模操作。
图14是根据本说明书的一个或多个示例的软件定义的基础设施(SDI)数据中心1400的框图。根据本说明书的教导,本文公开的SDI数据中心1400的实施例可以被适配或配置为提供可超额预订资源分配的方法。
托管在SDI数据中心1400内的某些应用可以采用一组资源来实现其指定的目的,例如,处理数据库查询、服务web页面或提供计算机智能。
某些应用倾向于对资源的特定子集敏感。例如,SAP HANA是存储器内的、面向列的关系数据库系统。SAP HANA数据库可以使用处理器、存储器、磁盘和结构,同时对存储器和处理器最敏感。在一个实施例中,复合节点1402包括执行处理功能的一个或多个核心1410。节点1402还可以包括提供对高速缓存的访问的缓存代理1406。一个或多个应用1414在节点1402上运行,并且经由HFI 1418与SDI结构通信。向节点1402动态提供资源可以包括选择一组资源,并确保提供的数量和质量满足要求的性能指标,例如,SLA和QoS。针对应用1414的资源选择和分配可以由资源管理器执行,该资源管理器可以在编排和系统软件栈1422内实现。通过非限制性示例的方式,在整个本说明书中,可以将资源管理器认为是可以单独实现或由编排器实现。应注意的是,许多不同的配置都是可能的。
在SDI数据中心中,应用可以由诸如由SDI管理器1480动态分配的节点1402之类的复合节点来执行。这样的节点被称为复合节点,因为它们是其中不一定并置所有资源的节点。而是,这些节点可以包括分布在数据中心的不同部分中的、被动态分配并虚拟化到特定应用1414的资源。
在该示例中,来自存储器机架1430的三个存储器托架的存储器资源被分配给节点1402,来自存储机架1434的四个存储托架的存储资源被分配,并且来自资源机架1436的五个资源托架的附加资源被分配给在复合节点1402上运行的应用1414。所有这些资源都可以与特定的计算托架相关联并且被聚合以创建复合节点。一旦创建了复合节点,就可以在节点1402中启动操作系统,并且应用可以开始使用聚合的资源运行,就好像这些资源是物理并置的资源一样。如上面所描述的,HFI 1418可以提供使该操作能够相对于节点1402无缝发生的某些接口。
通常,添加到数据库处理器的存储器和计算资源越多,数据库处理器可以实现的吞吐量就越好。然而,这对于磁盘或结构不一定是正确的。添加更多的磁盘和结构带宽可能不一定会使SAP HANA数据库的性能增加超过特定阈值。
SDI数据中心1400可以通过基于用户或网络管理员或直接由应用本身提供的应用要求将外部资源的合适的量映射到应用来解决资源的扩展。这可以包括从诸如存储器机架1430、存储机架1434和资源机架1436之类的各种资源机架分配资源。
在示例中,SDI控制器1480还包括资源保护引擎(RPE)1482,其被配置为将针对各种目标资源的许可指派给被许可对它们进行访问的分解式计算资源(DRC)。在该示例中,预期资源要由服务目标资源的HFI强制实施。
在某些实施例中,SDI数据中心1400的元件可以被适配或配置为与本说明书的分解式遥测模型一起操作。
前述内容概述了本文公开的主题的一个或多个实施例的特征。提供这些实施例以使本领域普通技术人员(PHOSITA)能够更好地理解本公开的各个方面。可以在不详细描述的情况下引用某些易于理解的术语以及基础技术和/或标准。将预期的是,本领域普通技术人员将拥有足以实践本说明书的教导的那些技术和标准中的背景知识或信息或能够获得这种背景知识或信息。
本领域普通技术人员将认识到,他们可以容易地将本公开用作设计或修改其他过程、结构或变型以用于执行与本文介绍的实施例相同的目的和/或实现与本文介绍的实施例相同的优点的基础。本领域普通技术人员还将认识到,这样的等效构造不脱离本公开的精神和范围,并且在不脱离本公开的精神和范围的情况下,他们可以在本文中进行各种改变、替换和替代。
在前述描述中,一些或所有实施例的某些方面比用于实践所附权利要求书所严格必要的内容更详细地进行了描述。出于提供所公开的实施例的上下文和说明的目的,这些细节仅通过非限制性示例的方式提供。这样的细节不应被理解为是要求的,并且不应作为限制被“读入”权利要求书中。短语可以指代“实施例”或“多个实施例”。这些短语以及对实施例的任何其他引用应被宽泛地理解为指代一个或多个实施例的任何组合。此外,在特定“实施例”中公开的若干特征也可以跨多个实施例分布。例如,如果在“实施例”中公开了特征1和2,则实施例A可以具有特征1但是缺少特征2,而实施例B可以具有特征2但是缺少特征1。
本说明书可以以框图格式提供说明,其中某些特征在单独的框中公开。这些内容应被宽泛地理解为公开各种特征如何互操作,但并不旨在暗示这些特征必须一定以单独的硬件或软件体现。此外,在单个框在相同的框中公开了多于一种特征的情况下,这些特征不一定以相同的硬件和/或软件体现。例如,在某些情况下,计算机“存储器”可以在多个级别的高速缓存或本地存储器、主存储器、电池后备的易失性存储器以及各种形式的持久性存储器(例如,硬盘、存储服务器、光盘、磁带驱动器或类似存储器)之间分布或映射。在某些实施例中,组件中的一些可以被省略或合并。在一般意义上,在附图中描绘的布置可以在它们的表示中更合逻辑,而物理架构可以包括这些元素的各种排列、组合和/或混合。可以使用无数种可能的设计配置来实现本文概述的操作目标。因此,相关联的基础设施具有无数种替换布置、设计选择、设备可能性、硬件配置、软件实现方式和设备选项。
本文可以参考计算机可读介质,该计算机可读介质可以是有形的且非暂时性的计算机可读介质。如本说明书和整个权利要求书中所使用的,“计算机可读介质”应被理解为包括相同或不同类型的一种或多种计算机可读介质。通过非限制性示例的方式,计算机可读介质可以包括光学驱动器(例如,CD/DVD/Blu-Ray)、硬盘驱动器、固态驱动器、闪速存储器或其他非易失性介质。计算机可读介质也可以包括诸如ROM之类的介质、被配置为执行期望指令的FPGA或ASIC、用于对FPGA或ASIC进行编程以执行期望指令的存储的指令、可以在硬件中集成到其他电路中的IP块,或在适当的情况下并且基于特定需求直接编码到硬件中的指令或在处理器(例如,微处理器、DSP、微控制器)上或在任何其他合适的组件、设备、元件或对象中的微码。本文的非暂时性存储介质明确地旨在包括被配置为提供所公开的操作或使处理器执行所公开的操作的任何非暂时性专用或可编程硬件。
在本说明书和权利要求书中,各个元件可以彼此“通信地”、“电气地”、“机械地”或以其他方式“耦合”。这样的耦合可以是直接的点对点耦合,或者可以包括中间设备。例如,两个设备可以经由促进通信的控制器彼此通信地耦合。设备可以经由诸如信号增强器、分压器或缓冲器之类的中间设备彼此电气地耦合。机械地耦合的设备可以间接地机械耦合。
本文公开的任何“模块”或“引擎”可以指代或包括软件,软件栈,硬件、固件和/或软件的组合,被配置为执行引擎或模块的功能的电路或如上面公开的任何计算机可读介质。在适当的情况下,可以在硬件平台上或结合硬件平台来提供这样的模块或引擎,该硬件平台可以包括硬件计算资源,例如,处理器、存储器、存储装置、互连、网络和网络接口、加速器或其他合适的硬件。这样的硬件平台可以被提供作为单个整体式设备(例如,以PC形状因子),或具有被分布的功能中的一些或一部分(例如,高端数据中心中的“复合节点”,其中计算、存储器、存储装置和其他资源可以动态地分配,并且不一定对彼此而言在本地)。
本文可能公开了流程图、信号流程图或其他图示,从而以特定次序示出了执行的操作。除非另有明确说明,或者除非在特定上下文中要求,否则次序应被理解为仅是非限制性示例。此外,在其中一个操作被示出为在另一操作之后的情况下,也可能发生其他可能是相关的或不相关的中间操作。某些操作也可以同时或并行执行。在其中操作被称为“基于”或“根据”另一项目或操作的情况下,这应该被理解为暗示该操作至少部分地基于或至少部分地根据另一项目或操作。这不应被解释为暗示该操作仅基于或排他地基于该项目或操作,或仅根据或排他地根据该项目或操作。
本文公开的任何硬件元件的全部或一部分可以容易地在包括CPU封装的SoC中提供。SoC表示将计算机或其他电子系统的组件集成到单个芯片中的集成电路(IC)。因此,例如,可以全部或部分地在SoC中提供客户端设备或服务器设备。SoC可以包含数字信号、模拟信号、混合信号和射频功能,所有这些功能都可以在单个芯片衬底上提供。其他实施例可以包括多芯片模块(MCM),其中多个芯片位于单个电子封装内并且被配置为通过电子封装彼此紧密地交互。
在一般意义上,任何适当配置的电路或处理器都可以执行与数据相关联的任何类型的指令,以实现本文详述的操作。本文公开的任何处理器都可以将元素或物品(例如,数据)从一种状态或事物转换为另一种状态或事物。此外,基于特定的需要和实现方式,可以在任何数据库、寄存器、表、高速缓存、队列、控制列表或存储结构中提供正在被跟踪、发送、接收或存储在处理器中的信息,这些信息全都可以在任何合适的时间范围内引用。本文公开的存储器或存储元件中的任一个都应该在适当的情况下被解释为包含在广义术语“存储器”和“存储装置”之内。
实现本文描述的功能的全部或部分的计算机程序逻辑以各种形式体现,包括但绝不限于源代码形式、计算机可执行形式、机器指令或微码、可编程硬件和各种中间形式(例如,由汇编器、编译器、链接器或定位器生成的形式)。在示例中,源代码包括以用于与各种操作系统或操作环境一起使用的各种编程语言(例如,目标代码、汇编语言或诸如OpenCL、FORTRAN、C、C++、JAVA或HTML之类的高级语言)或以诸如Spice、Verilog和VHDL之类的硬件描述语言实现的一系列计算机程序指令。源代码可以定义并使用各种数据结构和通信消息。源代码可以以计算机可执行形式(例如,经由解译器),或者可以将源代码(例如,经由转换器、汇编器或编译器)转换为计算机可执行形式或者转换为中间形式,例如,字节码。在适当的情况下,前述的任何内容可以用于构造或描述适当的分立或集成电路,无论是顺序的、组合的、状态机还是其他方式。
在一个示例实施例中,可以在相关联的电子设备的板上实现附图中任意数量的电路。该板可以是通用电路板,其可以保留电子设备的内部电子系统的各种组件,并且进一步提供用于其他外围设备的连接器。基于特定的配置需要、处理需求和计算设计,可以将任何合适的处理器和存储器适当地耦合到板上。注意,利用本文提供的许多示例,可以关于两个、三个、四个或更多个电子组件来描述交互。然而,这仅出于清楚和示例的目的来完成。应当认识到,可以以任何合适的方式来合并或重新配置系统。沿着类似的设计替代方案,可以以各种可能的配置组合附图中示出的组件、模块和元件中的任一个,所有这些都在本说明书的宽泛范围内。
本领域技术人员可以确定许多其他改变、替换、变型、替代和修改,并且本公开旨在包含落入所附权利要求书范围内的所有这种改变、替换、变型、替代和修改。为了帮助美国专利商标局(USPTO)以及另外地与本申请相关的任何授权的专利的任何读者解释所附权利要求,申请人希望指出,申请人:(a)不旨在所附权利要求中的任一项援引35U.S.C章节112的第六(6)段(AIA前)或相同章节的第(f)段(AIA后),因为其在本申请的提交之日存在,除非在特定的权利要求中特别使用词语“用于……的模块”或“用于……的步骤”;并且(b)不旨在通过说明书中的任何陈述以在所附权利要求书中未以其他方式明确反映的任何方式来限制本公开。
示例实现方式
通过说明的方式提供了以下示例。
示例1包括一种计算装置,该计算装置包括:硬件平台,其被配置为与多租户云服务通信地耦合,该多租户云服务包括可超额预订资源;以及针对可超额预订资源的服务保证(SAOR)引擎,该SAOR引擎被配置为:接收对可超额预订资源的租户预订,其中,租户预订超过了可超额预订资源的可用实例;接收针对可超额预订资源的每租户服务质量(QoS)度量;接收来自客体的针对可超额预订资源的实例的分配的分配请求;将该请求与可超额预订资源的当前可用实例进行比较;根据租户的QoS度量来确定可超额预订资源具有服务请求的容量;以及将可超额预订资源的实例分配给客体。
示例2包括示例1的计算装置,其中,可超额预订资源是硬件密码加速器。
示例3包括示例1的计算装置,其中,SAOR引擎还被配置为从客体接收服务请求,并且确定是否服务该服务请求,包括应用二速率三色标记算法(TrTCM)。
示例4包括示例3的计算装置,其中,确定可超额预订资源具有服务请求的容量包括确定承诺作业速率(CJR)和峰值作业速率(PJR),并且应用CJR和PJR分别作为TrTCM算法的承诺信息速率(CIR)和峰值信息速率(PIR)。
示例5包括示例4的计算装置,其中,确定可超额预订资源具有服务请求的容量包括应用按业务速率计量模型,其中,如果客体的业务速率低于PJR,则该客体被许可对可超额预订资源进行无限制访问。
示例6包括示例5的计算装置,其中,如果客体的业务速率低于CJR并且主机平台具有用于可超额预订资源的可用容量,则客体被进一步许可对可超额预订资源进行访问。
示例7包括示例6的计算装置,其中,如果在计费周期内客体的总密码工作负载不超过商定的量,则客体被进一步许可对可超额预订资源进行访问。
示例8包括示例1的计算装置,其中,根据租户的QoS度量来确定可超额预订资源具有服务请求的容量包括:应用计量因子,其中,计量因子至少部分地基于可超额预订资源的使用的以字节为单位的长度。
示例9包括示例1的计算装置,其中,SAOR引擎还被配置为确定请求无效,并且拒绝该请求。
示例10包括示例1的计算装置,其中,SAOR引擎还被配置为提供专用卸载模式,在该专用卸载模式中,峰值作业速率(PJR)度量被忽略。
示例11包括示例1的计算装置,其中,SAOR引擎还被配置为确定对可超额预订资源的客体的分配已经超时,并且解除对客体的资源分配。
示例12包括示例1的计算装置,其中,SAOR引擎还被配置为从客体接收显式终止信号,并且解除对客体的资源分配。
示例13包括示例1的计算装置,其中,SAOR引擎还被配置为根据因子Δs来调整请求的长度,以补偿容量差异。
示例14包括示例1的计算装置,其中,SAOR引擎还被配置为响应于无效请求而计算惩罚计费因子Δe。
示例15包括一个或多个有形的非暂时性计算机可读存储介质,其上存储有指令,该指令用于提供针对可超额预订资源的服务保证(SAOR)引擎,该SAOR引擎配置为:耦合到多租户云服务,该多租户云服务包括可超额预订资源;以及接收对可超额预订资源的租户预订,其中,租户预订超过了可超额预订资源的可用实例;接收针对可超额预订资源的每租户服务质量(QoS)度量;接收来自客体的针对可超额预订资源的实例的分配的分配请求;将该请求与可超额预订资源的当前可用实例进行比较;根据租户的QoS度量来确定可超额预订资源具有服务请求的容量;以及将可超额预订资源的实例分配给客体。
示例16包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,可超额预订资源是硬件密码加速器。
示例17包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为从客体接收服务请求,并且确定是否服务该服务请求,包括应用二速率三色标记算法(TrTCM)。
示例18包括示例17的一个或多个有形的非暂时性计算机可读介质,其中,确定可超额预订资源具有服务请求的容量包括确定承诺作业速率(CJR)和峰值作业速率(PJR),并且应用CJR和PJR分别作为TrTCM算法的承诺信息速率(CIR)和峰值信息速率(PIR)。
示例19包括示例18的一个或多个有形的非暂时性计算机可读介质,其中,确定可超额预订资源具有服务请求的容量包括应用按业务速率计量模型,其中,如果客体的业务速率低于PJR,则该客体被许可对可超额预订资源进行无限制访问。
示例20包括示例19的一个或多个有形的非暂时性计算机可读介质,其中,如果客体的业务速率低于CJR并且主机平台具有用于可超额预订资源的可用容量,则客体被进一步许可对可超额预订资源进行访问。
示例21包括示例20的一个或多个有形的非暂时性计算机可读介质,其中,如果在计费周期内客体的总密码工作负载不超过商定的量,则客体被进一步许可对可超额预订资源进行访问。
示例22包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,根据租户的QoS度量来确定可超额预订资源具有服务请求的容量包括:应用计量因子,其中,计量因子至少部分地基于可超额预订资源的使用的以字节为单位的长度。
示例23包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为确定请求无效,并且拒绝该请求。
示例24包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为提供专用卸载模式,在该专用卸载模式中,峰值作业速率(PJR)度量被忽略。
示例25包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为确定对可超额预订资源的客体的分配已经超时,并且解除对客体的资源分配。
示例26包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为从客体接收显式终止信号,并且解除对客体的资源分配。
示例27包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为根据因子Δs来调整请求的长度,以补偿容量差异。
示例28包括示例15的一个或多个有形的非暂时性计算机可读介质,其中,SAOR引擎还被配置为响应于无效请求而计算惩罚计费因子Δe。
示例29包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括非易失性存储器。
示例30包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括现场可编程门阵列。
示例31包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括专用集成电路(ASIC)。
示例32包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括知识产权(IP)块。
示例33包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括片上系统(SoC)。
示例34包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中一个或多个介质包括处理器微码指令。
示例35包括示例15-28中任一示例的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括闪速存储器。
示例36包括一种提供针对可超额预订资源的服务保证(SAOR)引擎的计算机实现的方法,该方法包括:通信地耦合到多租户云服务,该多租户云服务包括可超额预订资源;以及接收对可超额预订资源的租户预订,其中,租户预订超过了可超额预订资源的可用实例;接收针对可超额预订资源的每租户服务质量(QoS)度量;接收来自客体的针对可超额预订资源的实例的分配的分配请求;将该请求与可超额预订资源的当前可用实例进行比较;根据租户的QoS度量来确定可超额预订资源具有服务请求的容量;以及将可超额预订资源的实例分配给客体。
示例37包括示例36的方法,其中,可超额预订资源是硬件密码加速器。
示例38包括示例36的方法,从客体接收服务请求,并且确定是否服务该服务请求,包括应用二速率三色标记算法(TrTCM)。
示例39包括示例38的方法,其中,确定可超额预订资源具有服务请求的容量包括确定承诺作业速率(CJR)和峰值作业速率(PJR),并且应用CJR和PJR分别作为TrTCM算法的承诺信息速率(CIR)和峰值信息速率(PIR)。
示例40包括示例39的方法,其中,确定可超额预订资源具有服务请求的容量包括应用按业务速率计量模型,其中,如果客体的业务速率低于PJR,则该客体被许可对可超额预订资源进行无限制访问。
示例41包括示例40的方法,其中,如果客体的业务速率低于CJR并且主机平台具有用于可超额预订资源的可用容量,则客体被进一步许可对可超额预订资源进行访问。
示例42包括示例41的方法,其中,如果在计费周期内客体的总密码工作负载不超过商定的量,则客体被进一步许可对可超额预订资源进行访问。
示例43包括示例36的方法,其中,根据租户的QoS度量来确定可超额预订资源具有服务请求的容量包括:应用计量因子,其中,计量因子至少部分地基于可超额预订资源的使用的以字节为单位的长度。
示例44包括示例36的方法,还包括确定请求无效,并且拒绝该请求。
示例45包括示例36的方法,还包括提供专用卸载模式,在该专用卸载模式中,峰值作业速率(PJR)度量被忽略。
示例46包括示例36的方法,还包括确定对可超额预订资源的客体的分配已经超时,并且解除对客体的资源分配。
示例47包括示例36的方法,还包括从客体接收显式终止信号,并且解除对客体的资源分配。
示例48包括示例36的方法,还包括将请求的长度调整因子Δs以补偿容量差异。
示例49包括示例36的方法,还包括响应于无效请求而计算惩罚计费因子Δe。
示例50包括一种装置,该装置包括用于执行示例36-49中任一示例的方法的模块。
示例51包括示例50的装置,其中,该模块包括处理器和存储器。
示例52包括示例50的装置,其中,该模块包括一个或多个有形的非暂时性的计算机可读存储介质,其上存储有用于提供SAOR引擎的可执行指令。
示例53包括52的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括非易失性存储器。
示例54包括52的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括现场可编程门阵列。
示例55包括52的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括专用集成电路(ASIC)。
示例56包括52的一个或多个有形的非暂时性计算机可读介质,其中一个或多个介质包括知识产权(IP)块。
示例57包括52的一个或多个有形的非暂时性计算机可读介质,其中一个或多个介质包括片上系统(SoC)。
示例58包括52的一个或多个有形的非暂时性计算机可读介质,其中,一个或多个介质包括处理器微码指令。
示例59包括52的一个或多个有形的非暂时性计算机可读介质,其中一个或多个介质包括闪速存储器。
Claims (25)
1.一种计算装置,包括:
硬件平台,其被配置为与多租户云服务通信地耦合,所述多租户云服务包括能够超额预订资源;以及
针对能够超额预订资源的服务保证(SAOR)引擎,所述SAOR引擎被配置为:
接收对所述能够超额预订资源的租户预订,其中,租户预订超过了所述能够超额预订资源的能够使用的实例;
接收针对所述能够超额预订资源的每租户服务质量(QoS)度量;
接收来自客体的针对所述能够超额预订资源的实例的分配的分配请求;
将所述请求与所述能够超额预订资源的当前能够使用的实例进行比较;
根据所述租户的所述QoS度量来确定所述能够超额预订资源具有服务所述请求的容量;以及
将所述能够超额预订资源的实例分配给所述客体。
2.根据权利要求1所述的计算装置,其中,所述能够超额预订资源是硬件密码加速器。
3.根据权利要求1所述的计算装置,其中,所述SAOR引擎还被配置为从所述客体接收服务请求,并且确定是否服务所述服务请求,包括应用二速率三色标记算法(TrTCM)。
4.根据权利要求3所述的计算装置,其中,确定所述能够超额预订资源具有服务所述请求的容量包括确定承诺作业速率(CJR)。
5.根据权利要求4所述的计算装置,其中,确定所述能够超额预订资源具有服务所述请求的容量还包括确定峰值作业速率(PJR)。
6.根据权利要求5所述的计算装置,其中,确定所述能够超额预订资源具有服务所述请求的容量还包括应用所述CJR和所述PJR分别作为所述TrTCM算法的承诺信息速率(CIR)和峰值信息速率(PIR)。
7.根据权利要求6所述的计算装置,其中,确定所述能够超额预订资源具有服务所述请求的容量包括应用按业务速率计量模型,其中,如果所述客体的业务速率低于所述PJR,则所述客体被许可对所述能够超额预订资源进行无限制访问。
8.根据权利要求7所述的计算装置,其中,如果所述客体的业务速率低于所述CJR并且主机平台具有用于所述能够超额预订资源的能够使用的容量,则所述客体被进一步许可对所述能够超额预订资源进行访问。
9.根据权利要求8所述的计算装置,其中,如果在计费周期内所述客体的总密码工作负载不超过商定的量,则所述客体被进一步许可对所述能够超额预订资源进行访问。
10.根据权利要求1所述的计算装置,其中,根据所述租户的所述QoS度量来确定所述能够超额预订资源具有服务所述请求的容量包括:应用计量因子,其中,所述计量因子至少部分地基于能够超额预订资源的使用的以字节为单位的长度。
11.根据权利要求1所述的计算装置,其中,所述SAOR引擎还被配置为确定所述请求无效,并且拒绝所述请求。
12.根据权利要求1所述的计算装置,其中,所述SAOR引擎还被配置为提供专用卸载模式,在所述专用卸载模式中,峰值作业速率(PJR)度量被忽略。
13.根据权利要求1所述的计算装置,其中,所述SAOR引擎还被配置为根据因子Δs来调整所述请求的长度,以补偿容量差异。
14.根据权利要求1所述的计算装置,其中,所述SAOR引擎还被配置为响应于无效请求而计算惩罚计费因子Δe。
15.一个或多个有形的非暂时性计算机可读存储介质,其上存储有指令,所述指令用于提供针对能够超额预订资源的服务保证(SAOR)引擎,所述SAOR引擎配置为:
耦合到多租户云服务,所述多租户云服务包括能够超额预订资源;以及
接收对所述能够超额预订资源的租户预订,其中,租户预订超过了所述能够超额预订资源的能够使用的实例;
接收针对所述能够超额预订资源的每租户服务质量(QoS)度量;
接收来自客体的针对所述能够超额预订资源的实例的分配的分配请求;
将所述请求与所述能够超额预订资源的当前能够使用的实例进行比较;
根据所述租户的所述QoS度量来确定所述能够超额预订资源具有服务所述请求的容量;以及
将所述能够超额预订资源的实例分配给所述客体。
16.根据权利要求15所述的一个或多个有形的非暂时性计算机可读介质,其中,所述一个或多个介质包括非易失性存储器。
17.根据权利要求15所述的一个或多个有形的非暂时性计算机可读介质,其中,所述一个或多个介质包括现场可编程门阵列。
18.根据权利要求15所述的一个或多个有形的非暂时性计算机可读介质,其中,所述一个或多个介质包括专用集成电路(ASIC)。
19.根据权利要求15所述的一个或多个有形的非暂时性计算机可读介质,其中,所述一个或多个介质包括知识产权(IP)块。
20.一种片上系统,包括根据权利要求15-19中任一项所述的一个或多个有形的非暂时性计算机可读介质。
21.根据权利要求15所述的一个或多个有形的非暂时性计算机可读介质,其中,所述一个或多个介质包括处理器微码指令。
22.根据权利要求15所述的一个或多个有形的非暂时性计算机可读介质,其中,所述一个或多个介质包括闪速存储器。
23.一种提供针对能够超额预订资源的服务保证(SAOR)引擎的计算机实现的方法,包括:
通信地耦合到多租户云服务,所述多租户云服务包括能够超额预订资源;以及
接收对所述能够超额预订资源的租户预订,其中,租户预订超过了所述能够超额预订资源的能够使用的实例;
接收针对所述能够超额预订资源的每租户服务质量(QoS)度量;
接收来自客体的针对所述能够超额预订资源的实例的分配的分配请求;
将所述请求与所述能够超额预订资源的当前能够使用的实例进行比较;
根据所述租户的所述QoS度量来确定所述能够超额预订资源具有服务所述请求的容量;以及
将所述能够超额预订资源的实例分配给所述客体。
24.根据权利要求23所述的方法,其中,所述能够超额预订资源是硬件密码加速器。
25.根据权利要求23所述的方法,还包括从所述客体接收服务请求,并且确定是否服务所述服务请求,包括应用二速率三色标记算法(TrTCM)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/092840 WO2020000175A1 (en) | 2018-06-26 | 2018-06-26 | Oversubscribable resource allocation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111903109A true CN111903109A (zh) | 2020-11-06 |
Family
ID=68985402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880091787.3A Pending CN111903109A (zh) | 2018-06-26 | 2018-06-26 | 可超额预订资源分配 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11296956B2 (zh) |
CN (1) | CN111903109A (zh) |
WO (1) | WO2020000175A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11296956B2 (en) | 2018-06-26 | 2022-04-05 | Intel Corporation | Oversubscribable resource allocation |
WO2024017286A1 (zh) * | 2022-07-19 | 2024-01-25 | 华为云计算技术有限公司 | 基于公有云服务的公网带宽分配方法及云管理平台 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762695B2 (en) * | 2019-03-29 | 2023-09-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Transparent memory management for over-subscribed accelerators |
US11880713B2 (en) * | 2019-12-10 | 2024-01-23 | Arris Enterprises Llc | Method and apparatus for optimization of cryptographic resource usage |
US11057315B1 (en) * | 2020-01-06 | 2021-07-06 | International Business Machines Corporation | Generating a scaling plan for external systems during cloud tenant onboarding/offboarding |
CN113742028A (zh) * | 2020-05-28 | 2021-12-03 | 伊姆西Ip控股有限责任公司 | 资源使用方法、电子设备和计算机程序产品 |
GB202011550D0 (en) * | 2020-07-24 | 2020-09-09 | Nyabteh Andrews Offei | The smart network virtualization hypervisor technology /solution (cloudSimHypervisor) |
US12039356B2 (en) * | 2021-01-06 | 2024-07-16 | Baidu Usa Llc | Method for virtual machine migration with checkpoint authentication in virtualization environment |
US12086620B2 (en) * | 2021-01-06 | 2024-09-10 | Kunlunxin Technology (Beijing) Company Limited | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment |
CN113259444B (zh) * | 2021-05-20 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 虚拟服务的订阅方法、装置和存储介质及电子设备 |
US11606267B1 (en) * | 2021-09-10 | 2023-03-14 | Microsoft Technology Licensing, Llc | Detecting and quantifying latency components in accessing cloud services |
US11941266B2 (en) | 2021-10-20 | 2024-03-26 | Samsung Electronics Co., Ltd. | Resource isolation in computational storage devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516241B2 (en) | 2011-07-12 | 2013-08-20 | Cisco Technology, Inc. | Zone-based firewall policy model for a virtualized data center |
WO2013149343A1 (en) * | 2012-04-03 | 2013-10-10 | Gridcentric Inc. | Method and system for memory oversubscription for virtual machines |
US9842002B2 (en) | 2012-05-01 | 2017-12-12 | Red Hat, Inc. | Node selection for a new application in a multi-tenant cloud hosting environment |
CN103020205B (zh) * | 2012-12-05 | 2018-07-31 | 中科天玑数据科技股份有限公司 | 一种分布式文件系统上基于硬件加速卡的压缩解压缩方法 |
US9760847B2 (en) * | 2013-05-29 | 2017-09-12 | Sap Se | Tenant selection in quota enforcing request admission mechanisms for shared applications |
US11296956B2 (en) | 2018-06-26 | 2022-04-05 | Intel Corporation | Oversubscribable resource allocation |
-
2018
- 2018-06-26 US US16/978,826 patent/US11296956B2/en active Active
- 2018-06-26 WO PCT/CN2018/092840 patent/WO2020000175A1/en active Application Filing
- 2018-06-26 CN CN201880091787.3A patent/CN111903109A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11296956B2 (en) | 2018-06-26 | 2022-04-05 | Intel Corporation | Oversubscribable resource allocation |
WO2024017286A1 (zh) * | 2022-07-19 | 2024-01-25 | 华为云计算技术有限公司 | 基于公有云服务的公网带宽分配方法及云管理平台 |
Also Published As
Publication number | Publication date |
---|---|
US20210044503A1 (en) | 2021-02-11 |
US11296956B2 (en) | 2022-04-05 |
WO2020000175A1 (en) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11296956B2 (en) | Oversubscribable resource allocation | |
US11379342B2 (en) | Cache monitoring | |
US20200322287A1 (en) | Switch-managed resource allocation and software execution | |
US11809338B2 (en) | Shared memory for intelligent network interface cards | |
US20180357086A1 (en) | Container virtual switching | |
US11394649B2 (en) | Non-random flowlet-based routing | |
CN110633170A (zh) | 本地化服务恢复 | |
US11095755B2 (en) | Telemetry for disaggregated resources | |
US20230185732A1 (en) | Transparent encryption | |
WO2022125211A1 (en) | Technologies that provide policy enforcement for resource access | |
US11303638B2 (en) | Atomic update of access control list rules | |
US11005968B2 (en) | Fabric support for quality of service | |
US20220166666A1 (en) | Data plane operation in a packet processing device | |
US10949313B2 (en) | Automatic failover permissions | |
Niranjan Mysore et al. | FasTrak: enabling express lanes in multi-tenant data centers | |
US20190042434A1 (en) | Dynamic prefetcher tuning | |
CN109964211B (zh) | 用于半虚拟化网络设备队列和存储器管理的技术 | |
US20190042456A1 (en) | Multibank cache with dynamic cache virtualization | |
US20230109396A1 (en) | Load balancing and networking policy performance by a packet processing pipeline | |
WO2019173937A1 (en) | Improved memory-mapped input/output (mmio) region access | |
US20240012769A1 (en) | Network interface device as a computing platform | |
EP4187868A1 (en) | Load balancing and networking policy performance by a packet processing pipeline | |
US20240250873A1 (en) | Adjustment of transmission scheduling hierarchy | |
US20230375994A1 (en) | Selection of primary and secondary management controllers in a multiple management controller system | |
US20230409511A1 (en) | Hardware resource selection |
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 |