[go: up one dir, main page]

CN110063051B - 用于重新配置服务器的系统和方法以及服务器 - Google Patents

用于重新配置服务器的系统和方法以及服务器 Download PDF

Info

Publication number
CN110063051B
CN110063051B CN201780077097.8A CN201780077097A CN110063051B CN 110063051 B CN110063051 B CN 110063051B CN 201780077097 A CN201780077097 A CN 201780077097A CN 110063051 B CN110063051 B CN 110063051B
Authority
CN
China
Prior art keywords
server
adapter device
reconfigurable
hardware
management
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
CN201780077097.8A
Other languages
English (en)
Other versions
CN110063051A (zh
Inventor
A·N·利古里
N·布沙拉
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN110063051A publication Critical patent/CN110063051A/zh
Application granted granted Critical
Publication of CN110063051B publication Critical patent/CN110063051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/445Program loading or initiating
    • 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/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文公开用于重新配置服务器以执行各种硬件功能的技术。在一个实施例中,服务器包含可重新配置的适配器装置,其中所述可重新配置的适配器装置包含可重新配置的资源,所述可重新配置的资源可重新编程以执行不同硬件功能。所述服务器可从管理服务接收对应于硬件功能的提供请求。所述可重新配置的适配器装置可根据所述硬件功能配置所述可重新配置的资源,且向所述服务器报告所述配置的硬件功能。可使用固件或模拟软件来重新配置所述可重新配置的资源。

Description

用于重新配置服务器的系统和方法以及服务器
背景技术
许多组织通过多个通信网络提供计算服务。计算服务可包含例如基于网络的服务,例如可通过互联网提供给不同客户端的网络存储或虚拟服务器。在一些情况下,服务器可能会根据需要或使用情况租借给客户端。
计算服务系统可以包含具有固定硬件资源的服务器。在大多数情况下,计算服务系统上的固定硬件资源可能由于不规则的工作负载需求而无法高效地利用。举例来说,在某一时间,对具有硬件资源的特定配置的服务器可能有较低需求,但对具有不同配置的服务器可能有较高需求。因此,计算服务系统可能由于不同容量池中的服务器的固定硬件资源以及来自客户端的不规则工作负载需求而无法高效地利用。
附图说明
将参考各图描述根据本公开的各种实施例,图中:
图1示出根据本公开的某些方面的在基于网络的服务环境中的示例计算服务系统;
图2示出根据本公开的某些方面的计算服务系统中的示例服务器;
图3示出根据本公开的某些方面的示例适配器装置的简化框图;
图4示出根据本公开的某些方面的示例可重新配置的适配器装置的简化框图;
图5示出根据本公开的某些方面的在计算服务系统中的示例服务器的简化框图;
图6示出根据本公开的某些方面的示例计算服务系统;
图7示出根据本公开的某些方面的计算服务系统中的示例服务器;
图8示出根据本公开的某些方面的计算服务系统中的示例服务器;
图9示出根据本公开的某些方面的用于通过管理服务提供实例的过程的示例流程图;
图10示出根据本公开的某些方面的用于通过适配器装置提供实例的过程的示例流程图;
图11示出根据本公开的某些方面的用于通过计算服务系统提供实例的过程的示例流程图;以及
图12示出根据本公开的某些方面的本文所描述的特征和系统的示例架构,其包含一个或多个服务提供商计算机和/或经由一个或多个网络连接的用户装置。
具体实施方式
在下面的描述中,将描述各种实施例。出于解释的目的,阐述特定配置和细节以便提供对实施例的透彻理解。然而,所属领域的技术人员还应清楚,可在无所述特定细节的情况下实践实施例。此外,可能省略或简化众所周知的特征,以免使描述的实施例模糊不清。
计算服务系统可以包含可运行工作负载(例如,直接在服务器硬件上的虚拟机或操作系统)的多个服务器。在本公开中,术语“客户端”、“客户”、“用户”和“租户”可互换使用。术语“实例”可指代例如直接在服务器(即,裸机实例)上或虚拟机上运行的实例。不同类型的实例大体上对应于具有不同硬件功能或配置的硬件。举例来说,一种类型的实例可以对应于CPU、存储器、存储装置和网络容量的唯一组合。
大体上,客户端从计算服务系统请求实例(例如,经由计算服务系统的管理实体或控制平面系统,其控制服务器上的实例的提供),且所述管理实体通过提供服务器(或服务器上的虚拟机)且使实例可供客户端使用而进行响应。不同客户端可以具有对于其实例的不同硬件要求。举例来说,一些客户端可能需要高计算能力或图形处理能力,而其它客户端可能想要大存储空间或需要高网络业务带宽。此外,一些客户端可能出于各种原因而偏好一个操作系统而非另一操作系统。为了提供由客户端请求的不同类型的实例,可能需要具有不同硬件和软件配置的服务器。
计算服务系统可以包含具有固定硬件资源的服务器,所述服务器被分段成各种池,例如包含图形处理单元(GPU)的服务器池、包含固态驱动器(SSD)的服务器池等。在许多情况下,在每一服务器上具有固定硬件资源的这些服务器可能由于客户端请求的不同类型的硬件而无法高效地利用。举例来说,对于要求具有GPU或其它硬件的服务器的客户端,服务提供商可能没有足够的包含满足来自所述客户端的给定请求的硬件的服务器。
在一些情况下,为了更高效地利用服务器上的资源,计算服务系统可以包含若干类型的服务器,其中每种类型的服务器可以具有不同硬件和/或软件配置或不同固定资源。举例来说,一些服务器可以包含多个处理器以满足客户对高计算能力的需求。一些服务器可以包含大存储器或大的基于SSD的本地存储。一些服务器可以包含高带宽或高速网络接口。一些服务器可以包含专用GPU。取决于客户端请求的实例,可以选择具有匹配于客户端的要求的配置的服务器且将其分配给客户端。以此方式,不同类型的服务器可以提供不同类型的实例,且可以更高效地利用服务器的硬件资源。
然而,在许多情况下,来自客户的需求可能在不同时间是不同的,且可能难以预测。举例来说,在一个时间,特定类型的服务器可能处于高需求,而在另一时间,不同类型的服务器可能处于高需求。因此,在某个时间,计算服务系统可能没有足够的被设计用于一些类型实例的服务器,且可能有许多空闲的被设计用于其它类型实例的服务器。在一些情况下,具有超过所需的资源的服务器可能用于实例,且因此无法高效地使用所述服务器上的资源。此外,在不同配置用于不同类型的服务器的情况下,设计、制造、维护和更换不同类型的服务器可能成本更高。
本公开的实施例涉及计算服务系统,其包含连接到一个或多个网络组构的多个服务器,其中所述服务器可以具有相同或相似的硬件资源,但硬件资源的至少一部分可以连接到其它服务器或重新配置成基于从客户接收或预期的请求而执行不同功能。更具体地,服务器可以包含相关联可重新配置的适配器装置,其中所述可重新配置的适配器装置可重新编程以根据多种不同个性中的一个或多个而操作,这又意味着适配器装置可以被重新编程以执行不同功能或者连接到包含能够执行不同功能的硬件的其它服务器。与相关联服务器组合,可重新配置的适配器装置的每一种个性可以对应于不同硬件配置/功能。在一些实施例中,可以由模拟软件使用可重新配置的适配器装置上的硬件资源来模拟所述硬件配置/功能。在一些实施例中,个性可以与指示所述个性的硬件功能的供应商标识(ID)和装置ID相关联。因此,当CPU启动且列举附接到母板的装置时,可重新配置的适配器装置可表现为多种不同类型的硬件装置中的一个或多个,例如GPU、协处理器、硬盘驱动器、FPGA装置、随机存取存储器、网络适配器等。
计算服务系统可以包含管理服务(例如,包含提供实例的服务的控制平面),其可选择服务器且将提供请求(其可能包含例如可执行代码或微码中的模拟器等信息或数据)或配置文件发送到可重新配置的适配器装置,所述适配器装置可以随后使用所述信息或数据来根据所请求个性对自身进行配置。在一些实施例中,服务器可以包含管理适配器装置,其可以接收来自管理装置的提供请求,且使用提供请求中的信息或数据来配置可重新配置的适配器装置。可重新配置的适配器装置和/或服务器可以随后被重启以提供所需的硬件和/或软件配置/功能。以此方式,计算服务系统可以减少不同服务器之间的变化,以便基于不存在对空闲服务器具有的特定硬件的请求而最小化这些空闲服务器的数目。这还可以极大地减少维护服务器的成本,使服务器的选择更容易,且改善计算服务系统中的服务器的总体利用率。
在一些情况下,管理服务可以估计可能在未来时间请求的具有特定个性的实例的数目,且基于所述特定个性来预先配置对应数目的服务器。在一些情况下,管理服务可以接收来自用户的特定请求,选择服务器,且在计算代码上将提供请求发送到管理适配器装置或可重新配置的适配器装置,以提供所请求的硬件功能。
在一些情况下,计算服务系统还可以在网络组构上包含一些专用资源或服务器,例如GPU或存储装置,其可以由不同客户端共享和利用以满足客户端的特殊服务要求。在此示例实施例中,提供请求可以致使可重新配置的适配器装置对自身进行配置以通过运行模拟器且连接到专用资源中的一个而提供功能,使得适配器装置处置一些功能性,且将提供功能的一些工作转移到所述专用资源。在一些情况下,计算服务系统可以包含用于实例的分层资源。举例来说,服务器可以包含较快的本地存储器,且可以配置成使用网络组构上的远程服务器上的额外存储器。在一些情况下,可以组合一组服务器以对客户端提供实例。
在一些情况下,服务器可以配置成包含管理程序或操作系统,且客户端可以在所提供操作系统上运行应用程序或使用所提供的管理程序运行虚拟机。在一些情况下,服务器可以配置为无管理程序或操作系统的裸机系统,且客户端可以在所述服务器上加载客户操作系统(或客户管理程序,如果需要)。
图1示出根据本公开的某些方面的在基于网络的服务环境中的示例计算服务系统100。在基于网络的服务环境中,一个或多个客户端可利用客户端装置140a至140m(统称为客户端装置140)通过一个或多个网络150接入计算服务系统100。举例来说,客户端装置140可以使用网络浏览器、命令行接口或网络服务应用程序接口(API)接入计算服务系统100。客户端装置140可以包含可操作以在适当网络150上发送和接收请求、消息或其它信息且将信息递送回到装置的用户的任何适当装置。所述装置可以包含例如但不限于移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、桌上型计算机、精简客户端装置、平板计算机、电子书(e-book)阅读器等。
在一些示例中,网络150可包含许多不同类型的网络中的任一种或组合,例如电缆网络、互联网、无线网络、蜂窝网络和其它私有和/或公共网络。在网络上的通信可以通过有线或无线连接及其组合来实现。网络150可以使用多种可商购的协议中的任一种来支持通信,例如传输控制协议/互联网协议(TCP/IP)、开放式系统互连(OSI)、文件传输协议(FTP)、通用即插即用(UpnP)、网络文件系统(NFS)、通用互联网文件系统(CIFS)等。
计算服务系统100可以包含管理服务120以及处于分布式计算环境中的多个服务器130a、130b、130c、130d、...和130n(统称为服务器130)。管理服务120和服务器130可以以通信方式联接到一个或多个网络组构110,所述一个或多个网络组构可以通过高速网络连接等连接到网络150,所述高速网络连接例如无限频带(InfiniBand)、数据中心以太网(DCE)、千兆以太网、光纤通道、以太网光纤通道(FCoE)等。网络组构110可以是任何适当网络,包含内联网、互联网、蜂窝网络、局域网或其任何组合。网络组构110可使用多种高速通信协议中的任一种来支持通信。
服务器130可以包含在集群中布置为服务器集群的一个或多个服务器,或布置为不与彼此相关联的个别服务器。这些服务器可配置成主机实例。在一些实施方案中,服务器130中的每一服务器可具有相同或相似硬件资源。在一些实施方案中,服务器130可以包含可以具有不同硬件/软件资源和/或配置的多个不同类型的服务器。服务器可以包含提供用于所述服务器的一般管理和操作的可执行指令的操作系统或虚拟化系统,且可以包含存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时允许服务器执行其既定功能。操作系统或虚拟化系统可以是多种可商购的操作系统或客户操作系统中的任一种。客户端可以在操作系统上运行各种应用程序。
管理服务120可以是服务器或平台,其配置成管理异构资源池(例如,服务器或专用硬件资源),对客户端和最终用户提供接入,监测安全,并且管理资源分配。管理服务120还可以包含可由系统管理员使用以控制管理服务120的用户界面,以及用于接收来自客户的请求以启动实例的网络服务应用程序接口。举例来说,管理服务120可以接收来自客户端装置140或系统管理员的请求,且基于来自客户端或系统管理员的特定请求而选择一个或多个服务器130以提供所请求实例。在一些情况下,管理服务120可以将预定数目的资源分配给可支付固定费用或月费的客户端。在一些情况下,对于基于按使用付费进行充值的客户端,管理服务120可在客户端需要资源时将资源分配给客户端,并在不再需要资源时进行解除,使得资源可分配给其它客户端。管理服务120可包含:用于与网络组构110通信的网络接口,用于存储连接到网络组构110的服务器130的配置和状态的数据库,以及用于选择实例的一个或多个可用服务器并执行其它管理功能的处理逻辑。
如上文所描述,客户端装置140可以从计算服务系统100请求不同类型的实例(例如,虚拟机或服务器)。举例来说,在一些情况下,客户端可以请求包含一个或多个GPU的实例。在一些情况下,客户端可请求实例执行用于复杂计算工作负载的高性能计算,例如批处理、分布式分析、高性能科学或工程应用、游戏或视频编码。在这些情况下,可能需要具有多个(例如,数十个或数百个)高性能处理器和大存储器的服务器。
在一些情况下,客户端可以请求具有针对数据的高速、低时延、随机I/O存取进行优化的硬件的实例,例如来运行极高性能的不仅(非关系型)结构化查询语言(NoSQL)数据库(例如,Apache
Figure GDA0002594087840000061
和MongoDB)、事务数据库、数据仓储、Apache
Figure GDA0002594087840000062
或集群文件系统。在这些情况下,可以使用具有由例如SSD技术支持的高输入/输出(I/O)性能存储的服务器。在一些情况下,客户端可以请求具有高速网络通信能力的实例以用于对网络性能敏感的应用。在这些情况下,可能需要具有高速网络链接的服务器。
在一些情况下,客户端可以请求具有高存储密度和高速循序I/O的实例以用于数据密集的应用,例如大规模并行处理(MPP)数据仓库、Apache MapReduce和
Figure GDA0002594087840000063
分布式计算,或日志和数据处理。
在一些情况下,客户端可以请求能存取大的易失性存储器空间的实例。在这些情况下,可能需要能在低时延下存取例如动态随机存取存储器(DRAM)等大的易失性存储器的服务器。在一些情况下,客户端可以请求能存取大的非易失性存储器空间的实例。在这些情况下,可能需要能存取例如SSD或硬盘等大容量非易失性存储器装置的服务器。如本文所使用,易失性存储器可指当数据存储装置的电力断开或中断时可能丢失其内容的一类数据存储装置,例如随机存取存储器(RAM),而非易失性存储器可指即使没有电力也可保持其内容的一类数据存储装置,例如只读存储器(ROM)或快闪存储器。
在一些情况下,客户端可以请求包含高性能计算(HPC)集群、GPU集群或存储器集群的实例,其中所述集群中的服务器通过节点到节点通信而紧密联接,以实现需要执行网络密集操作的客户应用所需的低时延和高处理量网络性能。
在一些情况下,客户端可以请求特定系统硬件配置。举例来说,客户端可以指定处理器核心的数目、存储器的大小、存储装置(例如,SSD)的大小,和/或应用所需要的操作系统或虚拟机监视器(VMM,即管理程序)。在一些情况下,客户端可从计算服务系统提供的多个类型的实例中选择一个类型的实例。举例来说,计算服务提供商可基于计算、存储器和存储能力提供不同类型或系列的实例,其中不同类型的实例可提供关于计算性能、I/O性能、存储器大小和性能、存储大小和性能、网络性能和图形处理性能的不同能力。在一些情况下,客户端可以请求用于应用的特定操作系统或管理程序,例如Microsoft
Figure GDA0002594087840000064
Linux、Microsoft
Figure GDA0002594087840000065
Citrix
Figure GDA0002594087840000066
VMware
Figure GDA0002594087840000067
或开源基于内核的虚拟机(KVM)。在一些情况下,客户端可请求特定类型的硬件,例如GPU或SSD。
基于从客户端请求的实例的特定要求,管理服务120可以选择一个或多个服务器用于所述客户端。在所有服务器具有相同或相似硬件资源的实施方案中,管理服务120可以随机地选择任何可用服务器,或靠近地定位以用于低时延联网的可用服务器的集群。在服务器可具有不同硬件资源的实施方案中,管理服务120可选择具有最少额外资源的最匹配客户端请求的实例的要求的服务器。
图2示出可以用于执行本文所述的实施例的计算服务系统中的示例服务器200。相关领域的技术人员应了解,所公开的说明性组件并不意味着是服务器所需或服务器中存在的所有组件的详尽识别。实际上,已以非限制性方式识别说明性组件,从而促进本申请的一个或多个方面的说明。另外,服务器200的说明性组件在本质上可以是逻辑的,使得一个或多个组件的物理实施方案可改变,或使得一个或多个逻辑组件可以虚拟化方式实施。另外,一个或多个服务器200可以共享所示组件中的一个或多个,例如处理器、图形处理单元、存储器及类似物。
在说明性实施例中,服务器200可以与促进客户端应用程序的执行的各种硬件组件、软件组件和相应配置相关联,这将在下文详细描述。在一些实施方案中,服务器200可通过多个适配器装置将多租户平台提供给多个客户端。举例来说,服务器200可以对不同客户端提供基于网络的服务,例如计算、存储、分析、网络服务、数据库、应用程序、部署服务、网站托管等。具体地,在图2所示的示例实施例中,服务器200可以包含一个或多个适配器装置,例如适配器装置210a、210b和210c,其可以用于对一个或多个客户端提供一个或多个实例,例如服务器或一个或多个虚拟机。适配器装置210a、210b和210c可以包含相同或不同硬件资源,且可以执行相同或不同功能以用于实例提供。适配器装置210a、210b和210c中的一个或多个可以联接到一个或多个网络组构220,所述网络组构可以类似于上文关于图1所描述的网络组构110。适配器装置210a、210b和210c与服务器200的其它组件之间的通信可以使用接口执行,例如外围组件互连(PCI)接口、PCI快速(PCIe)接口、PCI扩展(PCI-X)接口,或任何其它合适的接口。
服务器200可以包含例如x86服务器等服务器。服务器200可以包含一个或多个中央处理单元(CPU)231,例如一个或多个x86处理器核心。CPU 231中可以包含的处理器的示例可以包含由
Figure GDA0002594087840000071
及类似者开发的处理器。在一些实施例中,CPU 231还可以包含GPU。在一些实施方案中,服务器200可以包含管理控制器232,用于根据例如智能平台管理接口(“IPMI”)管理服务器200的操作。管理控制器232可以包含嵌入式微控制器,其管理系统管理软件与服务器200的各种组件之间的接口。
服务器200还可以包含非易失性存储器235,其可以包含系统基本输入/输出系统(SBIOS)组件。非易失性存储器235可以包含经常称为固件的非暂时性可执行代码,其可由CPU 231执行以致使服务器200的组件初始化且识别系统装置,例如视频显示卡、键盘和鼠标、硬盘驱动器、光盘驱动器和其它硬件。非易失性存储器235还可以存储可用于启动服务器200的启动加载器软件。举例来说,在一个实施例中,非易失性存储器235可以包含可执行代码,所述可执行代码在由处理器执行时致使服务器200尝试定位预启动执行环境(PXE)启动软件。另外,非易失性存储器235可以包含或得益于硬件锁存器,所述硬件锁存器可限制对非易失性存储器235的一个或多个方面的存取,例如控制非易失性存储器235中维持的可执行代码的修改或配置。非易失性存储器235可以连接到(或与之通信)服务器200的若干组件,例如CPU 231、存储器236及类似物。在一些实施例中,非易失性存储器235可包含快闪存储器或只读存储器(ROM)。
存储器236可以包含例如随机存取存储器(RAM)、DRAM或同步动态随机存取存储器(SDRAM),例如双数据速率(DDR)、DDR2、DDR3或DDR4 SDRAM。在一些实施例中,存储器236可包含若干级别的高速缓存层级,例如1级(L1)高速缓存、2级(L2)高速缓存、3级(L3)或最后级别高速缓存。在一些情况下,存储器236中的一些或全部可以在服务器200的内部,而在其它情况下,存储器236中的一些或全部可以在服务器200的外部。存储器236可以存储包括可执行指令的操作系统,所述可执行指令当由CPU 231执行时提供用于执行客户端应用程序的执行环境。存储器236还可以存储且维持数据结构和例如路由表。在一些实施方案中,存储器236可以存储描述用于计算系统的硬件和/或软件配置的配置文件。在一些实施方案中,存储器236可以存储用于计算系统的操作参数的一个或多个描述。
服务器200可以包含一个或多个控制器234,用于管理服务器200的内部或外围装置(未图示),例如硬盘驱动器或其它形式的存储器。控制器234的一个示例可以是串行高级技术附件(SATA)硬盘驱动器控制器。
服务器200的组件中的一个或多个可以在通信信道237上与彼此通信。通信信道237可以包含一个或多个总线、网格、矩阵、组构、这些通信信道的组合,或一些其它合适的通信信道。举例来说,通信信道237可对应于共享总线(例如前端总线、存储器总线)、例如PCI或PCIe总线的点对点总线等,服务器200的组件在其中进行通信。也可以利用其它类型的通信信道、通信介质、通信总线或通信协议(例如,以太网通信协议)。虽然在图2中将通信信道237示为连接服务器200的所有组件,但应了解,通信信道根据一些实施例可以连接所述组件和/或其它组件的任何子组。举例来说,通信信道可以经由北桥(north bridge)或主机桥接器将PCIe装置连接到CPU。适配器装置210a、210b和210c也可以联接到通信信道237且通过通信信道237与服务器200的其它组件通信。
服务器200还可以包含额外组件(未图示),其与服务器200的说明性组件中的一个或多个(例如一个或多个控制器234)通信。所述额外组件可以包含一个或多个外围装置,例如硬盘或其它存储装置,或外部GPU。
适配器装置210a、210b和210c(统称为适配器装置210)可以使用例如插入卡联接到服务器200或焊接到服务器200的母板。适配器装置210可以提供各种服务,例如流量监测、流量整形、计算、记账、安全管理或加密等。适配器装置210可以对服务器200和/或在服务器200上运行的虚拟过程提供物理和虚拟服务。在各种实施例中,适配器装置210可以包含沿着通信信道237输入和/或输出数据的各种组件。在一个方面中,适配器装置210可以作为标准桥接器组件通信,用于促进各种物理和模拟组件与通信信道237之间的接入。在另一方面中,适配器装置210可以包含嵌入式微处理器以允许适配器装置执行与管理功能的实施有关的计算机可执行指令,或执行与客户端应用程序有关的其它计算机可执行指令。在一些实施例中,可使用例如多个卡、多个集成电路或其它装置等多个离散硬件元件来实施适配器装置210。在一些实施例中,适配器装置210可以在外部附接到服务器200。在一些实施例中,适配器装置210可以集成到服务器200中。
如上文所描述,适配器装置210可以包含相同或不同硬件资源且可以执行相同或不同功能。举例来说,在一些实施例中,适配器装置210可以包含至少一个管理适配器装置,例如管理适配器装置210a,以及一个或多个可重新配置的适配器装置,例如适配器装置210b和210c。管理适配器装置210a可以连接到网络组构220且可以接收来自管理服务的提供请求,所述管理服务例如图1的管理服务120。管理适配器装置210a可以随后基于所述提供请求而重新配置可重新配置的适配器装置210b和/或210c。在各种实施例中,可重新配置的适配器装置210b和210c可以包含可重新配置的硬件资源以使得它们可动态地配置成不同硬件配置或提供不同硬件功能性。举例来说,可重新配置的适配器装置210b和210c可以基于客户端的特定请求而重新配置且提供到客户端。因此,从客户端来看,即使底层硬件资源是固定的,也会提供具有定制硬件/软件功能的系统。在一些实施例中,可重新配置的适配器装置210b和210c可以动态地重新配置以与服务器200的其它组件组合来实施不同硬件功能,所述功能从客户端来看可以是脱离或附接不同硬件资源。在一些情况下,管理服务可以估计在某一时间周期期间对具有特定硬件和/或软件配置的实例的需要,选择对应数目的服务器,且将请求发送到选定服务器以用于在客户端请求一个此类实例之前根据硬件/软件配置来配置选定服务器。
在一些实施方案中,可重新配置的适配器装置,例如可重新配置的适配器装置210b,可以不直接连接到网络,且可以受例如管理适配器装置210a等管理适配器装置控制。在一些实施方案中,可重新配置的适配器装置,例如可重新配置的适配器装置210c,可以连接到网络结构220以使得其可以使用远程资源,例如远程存储或远程GPU。在一些实施方案中,可重新配置的适配器装置210c可以直接从管理服务接收提供请求,且可能不需要管理适配器装置。
因此,在一些实施方案中,服务器可以包含管理适配器装置210a和可重新配置的适配器装置210b。在一些实施方案中,服务器可以包含管理适配器装置210a和可重新配置的适配器装置210c。在一些实施方案中,服务器可以仅包含可重新配置的适配器装置210c,所述可重新配置的适配器装置也可以充当管理适配器装置。在一些实施方案中,服务器可以包含管理适配器装置210a和可重新配置的适配器装置210b和210c。
图3示出根据本公开的某些方面的示例适配器装置300的简化框图。适配器装置300可以用作如上文所描述的管理适配器装置或可重新配置的适配器装置。适配器装置300可以硬件实施,且包含软件以与例如图2的服务器200等服务器的其它组件组合来对客户端提供实例。适配器装置300的功能性和/或组件可以无所限制地与本公开中在别处所公开的其它实施例一起使用。
在一个示例中,适配器装置300可以包含处理逻辑302、总线接口模块308、存储器310、非易失性存储器304、网络接口312,和可重新配置的资源318。这些模块可以是硬件模块、软件模块或硬件与软件的组合。在某些示例中,在不脱离本公开的范围的情况下,模块可以与装置、组件或引擎可互换地使用。适配器装置300可以包含此处未示出的额外模块。在一些实施方案中,适配器装置300可以包含较少模块。举例来说,当适配器装置300用作管理适配器装置时,可重新配置的资源318可以是任选的。举例来说,可重新配置的资源318在一些实施例中可以是一个或多个模拟器。在此示例中,模拟器可以加载到存储器中且由处理逻辑302执行,且模拟器可响应于在可重新配置的适配器装置300的引脚上接收的输入信号而运行;基于输入信号确定适当的响应;以及相应地进行响应以模拟特定类型的硬件装置。在相同或其它实施例中,可重新配置的资源可以是硬件,例如FPGA或专用协处理器,例如加密处理器或GPU。在一些实施方案中,模块中的一个或多个可组合成一个模块。模块中的一个或多个可通过通信信道314彼此通信。
通信信道314可以包含一个或多个总线、网格、矩阵、组构、这些通信信道的组合,或一些其它合适的通信信道。如图2的通信信道237,通信信道314可以对应于共享总线(例如,前端总线、存储器总线)、例如PCI或PCI快速总线的点对点总线等等,适配器装置300的模块在其中通信。也可以利用其它类型的通信信道、通信介质、通信总线或通信协议(例如,以太网通信协议)。虽然在图3中将通信信道314示为连接所有组件302-318,但应了解,根据一些实施例,通信信道可以连接组件302-318和/或其它组件的任何子组。
处理逻辑302可包含专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、网络处理单元(NPU)、配置成执行指令的处理器,或配置成执行逻辑算术和浮点运算的任何其它电路。处理逻辑302中可以包含的处理器的示例可以包含由
Figure GDA0002594087840000111
及类似者开发的处理器。在某些实施方案中,处理逻辑302可包含多个处理核心,其中每一处理核心可配置成独立于其它处理核心来执行指令。此外,在某些实施方案中,每个处理器或处理核心可实施在同一处理器或处理核心上执行指令的多个处理线程,同时维持多个处理线程之间的逻辑分离。在处理器或处理核心上执行的此类处理线程可作为单独的逻辑处理器或处理核心暴露于软件。在一些实施方案中,在同一核心上执行的多个处理器、处理核心或处理线程可共享某些资源,例如总线、1级(L1)高速缓存和/或2级(L2)高速缓存。由处理逻辑302执行的指令可例如以计算机程序形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。在一些情况下,计算机可读存储介质可以是存储器310或非易失性存储器304的部分。
在适配器装置300用作可重新配置的适配器装置的实施方案中,处理逻辑302可以例如执行模拟软件以模拟所需硬件功能或执行固件以配置可重新配置的资源318。在适配器装置300用作管理适配器装置的实施方案中,处理逻辑302可以控制可重新配置的适配器装置的配置,例如在可重新配置的适配器装置上加载适当代码(例如,模拟软件)、配置文件或固件。在一些实施方案中,管理适配器装置还可用于对应服务器的安全管理。
存储器310可包含易失性或非易失性类型的存储器,或包含易失性和非易失性两种类型的存储器。存储器310可以例如包含随机存取存储器(RAM)、ROM、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性存储器、光学存储器、固态存储器,和/或一些其它合适的存储介质。在一些情况下,存储器310中的一些或全部可以在适配器装置300的内部,而在其它情况下,存储器310中的一些或全部可以在适配器装置300的外部。存储器310可以存储包括可执行指令的操作系统,所述可执行指令当由处理逻辑302执行时提供用于执行提供适配器装置300的功能性的指令的执行环境。存储器310还可以存储可由处理逻辑302运行的模拟软件。存储器310还可以存储且维持数据结构以及例如路由表以用于促进适配器装置300的功能性。在一些实施方案中,存储器310可以存储描述用于计算系统的硬件和/或软件配置的配置文件。在一些实施方案中,存储器310可以存储用于计算系统的操作参数的一个或多个描述。
非易失性存储器304可为存储器310的一部分或可以与存储器310分离。非易失性存储器304可以包含基本输入/输出系统(BIOS)组件。非易失性存储器304可以包含固件,其可由例如处理逻辑302执行,以致使适配器装置300的组件初始化且识别模块,例如处理逻辑302和存储器310,以及可能在图3中未示出的适配器装置的其它装置,例如视频显示卡、键盘和鼠标、硬盘驱动器、光盘驱动器和其它硬件。非易失性存储器304可以包含或定位将用于启动适配器装置300的启动加载器软件。举例来说,在一个实施例中,非易失性存储器304可以包含可执行代码,所述可执行代码在由处理器(例如,处理逻辑302)执行时致使适配器装置300尝试定位PXE启动软件。另外,非易失性存储器304可以包含固件,其可以用于重新配置和启动可重新配置的资源318以用于基于提供请求而执行不同硬件功能性。在一些实施例中,非易失性存储器304可包含快闪存储器。在一些实施方案中,非易失性存储器304可以包含模拟软件,其可以加载于存储器310中以用于根据所需硬件功能配置适配器装置300(即,使用适配器装置300上的硬件资源模拟所需硬件功能)。
在一些实施方案中,非易失性存储器304可以包含或存储配置模块305和/或管理模块306。配置模块305可以包含一个或多个配置寄存器。配置寄存器可以控制适配器装置300的操作。在一些实施方案中,配置寄存器中的一个或多个位可表示适配器装置300的某些能力。配置寄存器可以通过在处理逻辑302中执行的指令和/或通过外部实体编程,所述外部实体例如服务器、在服务器上执行的操作系统、管理适配器装置和/或远程装置。配置模块305可以包含软件,其可以由处理逻辑302执行以控制适配器装置300的操作。举例来说,在一些实施方案中,配置模块305可以配置成基于来自处理逻辑302和/或外部实体的指令而启用或停用适配器装置300的一个或多个操作,例如复位适配器装置300或保持适配器装置300处于复位。
在一些实施方案中,管理模块306可以配置成管理适配器装置300的不同组件。在一些情况下,管理模块306可以在通电时配置一个或多个配置寄存器中的一个或多个位,以启用或停用适配器装置300的某些能力。在某些实施方案中,管理模块306可以使用来自处理逻辑302的处理资源。管理模块306还可用以配置且控制可重新配置的资源318的操作。在一些实施方案中,配置模块305和管理模块306可以是非易失性存储器304中的同一模块。
总线接口模块308可通过外部通信介质实现与外部实体的通信,所述外部实体例如服务器和/或计算系统中的其它组件。总线接口模块308可包含用于连接到电缆、插座、端口或与外部通信介质的其它连接的物理接口。总线接口模块308还可包含管理传入和传出事务的硬件和/或软件。总线接口模块308可以实施局部总线协议,例如基于PCI的协议、非易失性存储器快速(NVMe)、高级主机控制器接口(AHCI)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、SATA、并行高级技术附接(PATA)、快速通道互连(QPI)、UltraPath互连(UPI)、一些其它标准总线协议,或专有总线协议。总线接口模块308可包含用于这些总线协议中的任何一个的物理层,包含连接器、电源管理和差错处理等。在一些实施方案中,适配器装置300可包含用于与多个外部实体通信的多个总线接口模块。这多个总线接口模块可实施相同局部总线协议、不同局部总线协议或相同和不同总线协议的组合。
在一些实施方案中,网络接口312可包含硬件和/或软件,所述硬件和/或软件配置成实施用于与外部连接的装置或功能通信的协议。举例来说,网络接口312可以包含硬件和/或软件以用于与一个或多个网络组构通信,例如上文关于图1所描述的网络组构110。网络接口312可以例如包含用于到网络的有线连接的物理连接器或物理网络端口和/或用于到网络的无线通信的天线。网络接口312还可包含配置成实施网络协议栈的硬件和/或软件。网络接口312可使用网络协议与网络通信,所述网络协议例如TCP/IP、无限频带、融合以太网上的远程直接存储器存取(RDMA)(Remote Direct Memory Access(RDMA)overConverged Ethernet,RoCE)、电气电子工程师学会(IEEE)802.11无线协议、用户数据报协议(UDP)、异步传输模式(ATM)、令牌环、帧中继、高级数据链路控制(HDLC)、光纤分布式数据接口(FDDI)和/或点对点协议(PPP)等等。在一些实施方案中,适配器装置300可包含多个网络接口模块,所述模块各自配置成与例如有线以太网网络、无线802.11网络、蜂窝网络或无限频带网络等不同网络通信。
在各种实施例中,可重新配置的资源318可以包含可以响应于例如实例启动请求而动态地重新配置的多个资源。举例来说,在一些实施例中,可重新配置的资源318可以包含可重新配置的处理核心、可重新配置的存储器资源、可重新配置的I/O资源、可重新配置的网络链路和可重新配置的存储资源,如在下文相对于图4详细描述。
在一些实施方案中,适配器装置300可以是基于PCI的装置。在这些实施方案中,适配器装置300可以包含用于与服务器通信的PCI接口。术语“PCI”可用于描述PCI系列总线协议中的任何协议,包含原始PCI标准、AGP、PCIe和PCI-X。PCI协议是用于将本地外围装置连接到服务器的标准总线协议。标准总线协议是一种数据传输协议,其规范已由各个制造商定义并采用。制造商确保兼容装置与实施总线协议的计算系统兼容,反之亦然。如本文所使用,基于PCI的装置还包含使用非易失性存储器快速(NVMe)通信的装置。NVMe是用于使用PCIe存取附接到计算系统的非易失性存储介质的装置接口规范。举例来说,总线接口模块308可以实施NVMe,且适配器装置300可以使用PCIe接口连接到计算系统。
尽管未在图3中示出,但适配器装置300可包含其它组件或模块,例如大容量存储控制器、网络控制器、显示控制器、存储器控制器、串行总线控制器、无线控制器或加密和解密控制器等。在一些实施例中,上文描述的适配器装置300的各种组件和模块,例如处理逻辑302、总线接口模块308和网络接口312,可以被实施为一个或多个离散组件,被实施为一个或多个片上系统(SoC),被实施为一个或多个ASIC,被实施为一个或多个NPU,被实施为一个或多个FPGA,或其任何组合。
图4示出根据本公开的某些方面的示例可重新配置的适配器装置400的简化框图。可重新配置的适配器装置400可以包含可重新配置的资源410、处理逻辑405和非易失性存储器415。省略了可重新配置的适配器装置400的许多其它组件,例如图3所示的组件,以免混淆本文所描述的特征。
可重新配置的资源410可以是图3的可重新配置的资源318的示例。可重新配置的资源410可以包含硬件资源,所述硬件资源可根据不同硬件配置进行重新配置以用于执行不同硬件功能且使可重新配置的适配器装置400能够与一个或多个服务器组合对客户端提供多个类型的实例中的任一个。所述多个类型的实例可以对应于各种不同硬件配置或硬件功能,例如重新配置的处理核心420、重新配置的存储器资源430、重新配置的存储资源440、重新配置的网络资源450和重新配置的GPU资源460。
可重新配置的适配器装置400的不同硬件功能可以各种方式实施。举例来说,在一些实施例中,可重新配置的适配器装置400的硬件功能可以由可重新配置的资源410经由模拟软件进行模拟。模拟软件可以使可重新配置的资源410能够类似于所需硬件资源来表现。举例来说,在一些实施例中,模拟软件可以提供可重新配置的资源410与装置或不同服务器上的其它硬件资源之间的接口,以使得从其它硬件资源来看,可重新配置的资源410可以表现成所需硬件。
在一些实施例中,所请求硬件功能中的至少一些可以由物理上配置的硬件资源执行,所述硬件资源例如可重新配置的资源410中的可重新编程的逻辑(例如,FPGA、可编程阵列逻辑(PAL)或复杂可编程逻辑装置(CPLD))。在一些实施例中,所请求硬件功能中的至少一些,例如GPU和SSD,可以由远程服务器上的硬件资源执行,其中可重新配置的资源410可以重新配置为服务器上的其它硬件资源与远程服务器之间的接口,以使得服务器上的其它硬件资源可以与可重新配置的资源410通信,就如同它们与例如GPU或SSD等所需硬件资源直接通信。
在一些实施例中,可重新配置的资源410可以重新配置到重新配置的处理核心420中,所述处理核心可以包含多个处理核心,例如2、4、8、16、32、64或更多个处理核心。处理核心可以包含(例如)2核心处理器、4核心处理器或8核心处理器。在一些实施例中,可重新配置的资源410可以配置成包含L1和/或L2高速缓存,所述高速缓存可以在处理器的多个核心之间共享。举例来说,每一L1和/或L2高速缓存(例如,4兆字节高速缓存)可以与一个多核心处理器(例如,2核心处理器)集成。在一些示例中,L1高速缓存可以用作一级高速缓存且L2高速缓存可以用作二级高速缓存。举例来说,在一些实施例中,模拟软件可以将设计成在x86处理器上执行的工作负载解译成可由可重新配置的资源410执行的指令,即使可重新配置的资源410可能物理上未包含x86处理器。
在一些实施例中,可重新配置的资源410可以重新配置成重新配置的存储器资源430,其可以包含存储器控制器和/或相关联存储器。举例来说,重新配置的存储器资源430可以包含DDR、DDR2、DDR3或DDR4存储器,和对应存储器控制器。在一些实施例中,重新配置的存储器资源430可以作为脱离不均匀存储器架构(NUMA)节点的本地存储器而被暴露且对例如CPU 231等处理器是可接入的。举例来说,通过处理逻辑405和/或可重新配置的资源410在可重新配置的适配器装置400上执行的模拟软件可以暴露用于存取存储器的基于PCI的接口(例如,作为
Figure GDA0002594087840000151
快速通道互连或UltraPath互连)。重新配置的存储器资源430还可以包含可以用于管理对外部存储器的存取的任何合适的控制器,以使得外部存储器可以对服务器上的其它硬件资源表现为本地存储器或高速缓存。举例来说,在一些实施例中,重新配置的存储器资源430可以维持页表,其可将本地存储器页映射到外部存储器上的存储器页。
在一些实施例中,可重新配置的资源410可以重新配置成重新配置的存储资源440,其可以包含用于连接到例如硬盘驱动器、光学驱动器等外部大容量存储装置的接口。举例来说,所述接口可基于SATA。在一些实施例中,重新配置的存储资源440可以包含到SSD的一个或多个接口,其可以低成本支持极高的随机I/O性能。举例来说,在一些实施例中,重新配置的存储资源440可以包含用于存取经由PCIe总线附接的非易失性存储介质的NVMe接口,以及使适配器装置能够作为NVMe装置响应于从CPU接收的输入信号的软件。
在一些实施例中,可重新配置的资源410可以重新配置成重新配置的网络资源450,其可以包含例如用于联网或数据存储的链路,例如用于高处理量、低时延联网的具有RDMA功能的网络链路。举例来说,重新配置的网络资源450可以包含支持虚拟接口架构、融合以太网上的RDMA(RoCE)、无限频带或互联网广域RDMA协议(iWARP)的网络适配器。在一些实施例中,可重新配置的资源410可以包含可重新配置为RDMA链路或此处描述的不同网络链路的网络链路。在一些实施例中,重新配置的网络资源450可以包含不同类型的加速器,例如硬件加速器、各种管线、加密引擎等。举例来说,加密引擎可以在硬件中执行加密功能,因此减少软件开销且加速与联网有关的解密、加密和验证功能的执行。
在一些实施例中,可重新配置的资源410可以重新配置成重新配置的GPU资源460,其可以包含多个GPU核心。在例如计算机辅助设计(CAD)应用等需要GPU的许多应用中,许多工作负载可能仅需要2维(2-D)再现。此类工作负载可以由重新配置的GPU资源460、可重新配置的处理核心420、处理逻辑405或服务器上的CPU执行,所述CPU例如图2的CPU 231。可能需要真实3D再现的工作负载可以转移到包含高性能GPU核心的服务器。在一些实施例中,重新配置的GPU资源460可能够进行至少一些真实3D再现。举例来说,在一些实施例中,模拟软件可以将设计成在GPU上操作的工作负载转移或分配到通过网络联接到可重新配置的资源410的远程GPU资源,或者将工作负载转换为可由可重新配置的资源410执行的工作负载,即使可重新配置的资源410可能物理上未包含GPU。
在各种实施例中,可重新配置的资源410可以重新配置成包含上述硬件配置/功能的任何组合。处理逻辑405可以配置成基于所请求实例的要求而动态地配置可重新配置的资源410。在一些实施例中,处理逻辑405可以在启动期间重新配置可重新配置的资源410。举例来说,处理逻辑405可以配置成加载对应于用户请求的实例的固件或软件(例如,模拟软件和/或配置文件)以用于执行硬件和/或软件功能。所述固件或软件可以从例如非易失性存储器415或管理适配器装置或其它装置上的非易失性存储器加载。在一些实施例中,处理逻辑405可以将对应于新类型的实例或适配器装置400的新配置/功能的新固件或新软件(包含新配置文件或新模拟软件)加载到非易失性存储器415中。可重新配置的适配器装置400和/或可重新配置的资源410可以随后使用加载的固件重启,或者运行加载的模拟软件以重新配置可重新配置的适配器装置并且因此重新配置服务器。非易失性存储器415可以包含如上文相对于非易失性存储器235和非易失性存储器304所描述的任何非易失性存储器。举例来说,非易失性存储器415可以包含快闪存储器或ROM。
在各种实施例中,如果可重新配置的适配器装置也可充当管理适配器装置,那么可重新配置的适配器装置400可以例如直接从管理适配器装置或从管理服务(例如,图1的管理服务120)接收请求480。请求480可以包含例如选自由计算服务提供商预定义的多个类型实例的实例484、可执行代码482(例如模拟软件或定制代码)、配置文件486、将在服务器上运行的操作系统488,或固件490。非易失性存储器415可以包含对应于由计算服务提供商预定义的所述多个类型实例中的一个或多个的固件。举例来说,对应于所述多个类型实例中的一个或多个的固件或模拟软件可以基于例如将由适配器装置和对应服务器提供的实例的默认或预测类型而预加载到非易失性存储器415中。在一些情况下,客户端可以请求未被计算服务提供商预定义的定制实例。在这些情况下,请求480可以包含代码482中的定制代码(例如,定制固件)或配置文件486中的用户定义的配置文件,其可以用于配置可重新配置的资源410、适配器装置400和/或对应服务器。在一些情况下,请求480可以包含操作系统488中的用户提供的操作系统或管理程序。
还如图4中所示,适配器装置400可以通过例如图1的网络组构110或图2的网络组构220连接到远程资源470,且任选地,连接到与远程资源470相关联的适配器装置。远程资源470可以包含一个或多个服务器,其包含例如GPU、存储器装置、存储装置、处理核心或网络资源。可重新配置的资源410可与远程资源470组合使用以提供客户端请求的实例。举例来说,在一些情况下,代码482可以包含可由可重新配置的资源410执行以与远程资源470通信的指令。在一些情况下,配置文件486可以包含用以配置可重新配置的资源410以用于与远程资源470通信的配置文件。
图5示出根据本公开的某些方面的在计算服务系统中的示例服务器500的简化框图。服务器500可以包含使用接口联接到一个或多个总线510的可重新配置的适配器装置550,所述接口例如PCIe接口或如上文相对于图2的通信信道237所描述的任何其它合适的接口。如图5所示,可重新配置的适配器装置550可以包含可重新配置的资源540、处理逻辑570和存储器580,如上文相对于图4所描述。服务器500还可以包含CPU 520、存储器525和非易失性存储器530,如上文相对于图2所描述。服务器500还可以包含管理适配器装置590和其它电路535,例如基板管理控制器(BMC)。适配器装置550和590的一些组件,例如图3和4中示出的一些模块,以及服务器500的一些组件,例如图2所示的一些组件,被省略以免混淆本文相对于图5所描述的特征。服务器500可以通过管理适配器装置590和/或可重新配置的适配器装置550联接到一个或多个网络组构,例如图1的网络组构110。在图5中示出的示例服务器500中,可重新配置的资源540可以重新配置为包含RDMA适配器560。
在一些实施例中,当提供请求由服务器500的管理适配器装置590接收时,管理适配器装置590的处理逻辑595可以从用于可重新配置的适配器装置550的可重新配置的资源540的多个可能的个性中选择个性,且根据选定的个性来配置可重新配置的资源540。所述多个个性中的每一个性可以对应于不同硬件配置或功能。举例来说,选定个性可以包含RDMA链路。处理逻辑595可以通过经由可重新配置的适配器装置550上的处理逻辑570将对应于选定个性的固件或模拟软件加载到存储器580中来配置可重新配置的资源540,或者启用存储器580的存储对应固件或模拟软件的部分。举例来说,可以用于使可重新配置的资源540变为RDMA适配器的固件或模拟软件可以加载到存储器580中或在其中启用。处理逻辑570可以随后使用加载或启用的固件来初始化可重新配置的资源540和/或可重新配置的适配器装置550,或者运行存储器580中的模拟软件以将可重新配置的适配器装置550的可重新配置的资源540配置为包含例如RDMA适配器560。
在可重新配置的适配器装置550被启动或初始化且可重新配置的资源540根据选定个性被配置之后,适配器装置590可以使用存储于非易失性存储器530中的固件发起服务器500的重启。如在下文详细描述,在一些实施例中,服务器500可以作为裸机系统重启,且客户端可以例如通过管理适配器装置590将客户操作系统(或客户管理程序,如果需要)加载到服务器500。在一些实施例中,重启服务器500可以包含将计算服务提供商提供的管理程序或操作系统加载到服务器500上。在启动过程期间,CPU 520可以列举服务器500上的硬件资源,在此期间可重新配置的适配器装置550可以将自身报告或另外识别为已配置成例如RDMA适配器、GPU、存储器控制、处理器等所需硬件。举例来说,在一个实施方案中,在列举过程期间可以将已模拟的所需硬件的供应商/装置ID报告给CPU 520。
在一些实施例中,在启动过程期间,管理适配器装置590可以执行安全管理以维持服务器500上的安全执行环境。举例来说,在启动过程期间,管理适配器装置590可以通过服务器500上的各种电路来控制对非易失性存储器530的存取,且控制服务器500上的各种电路之间的通信。管理适配器装置590可首先验证或更新非易失性存储器530中的固件,同时保持服务器500上的其它电路处于复位。举例来说,管理适配器装置可核实可重新配置的适配器装置上的固件。在检查固件是有效的之后,可以使可重新配置的适配器装置脱离复位,且管理适配器装置可发送请求到适配器装置以致使适配器装置加载模拟器以模拟一类装置。在固件验证和/或更新之后,管理适配器装置590可以从复位释放CPU 520,且CPU可以开始使用非易失性存储器530中的固件来启动。CPU还可以执行存储器整理以使用存储于非易失性存储器530中的已验证固件或管理适配器装置590上的选项ROM来清除存储器。管理适配器装置590可以从复位释放例如BMC等其它电路或装置,以使得这些电路可以使用非易失性存储器530中的已验证固件来启动。在服务器上的电路使用对应固件启动之后,管理适配器装置590可以限制电路或装置对非易失性存储器530的存取。管理适配器装置590还可以限制电路或装置中的至少一些之间的通信。可以列举这些电路或装置,且CPU可以检查列举的(或盘点的)电路或装置以确保它们恰当地起作用。举例来说,电路可以例如使用适当供应商ID和/或装置ID将自身报告或另外识别为某些装置。CPU 520可以随后在服务器500上加载操作系统或管理程序,且操作系统或管理程序可以执行所列举电路或装置的另一硬件验证。在一些实施例中,服务器500上的电路或装置可以仅被列举和验证一次。在一些实施例中,可重新配置的资源540和/或可重新配置的适配器装置550可以配置为即插即用装置,且因此可以不需要重启。
图6示出根据本公开的某些方面的在基于网络的服务环境中的示例计算服务系统600。在基于网络的服务环境中,用户装置640可以请求例如具有包含数百或数千个并行处理核心的一个或多个GPU的实例,所述并行处理核心可能不包含于一些服务器中。所请求实例还可以包含可由服务器提供的其它一般功能。用户请求可以通过一个或多个网络650以及连接到网络650的计算服务系统600中的一个或多个网络组构610发送到计算服务系统600中的管理服务620。用户装置640、网络650和网络组构610可以类似于如上文所描述的图1的客户端装置140、网络150和网络组构110。
在接收到用户请求后,管理服务620可以选择可以用于提供所请求实例的至少一些功能的服务器630a。管理服务620还可以选择包含GPU的服务器,例如服务器630b,以与服务器630a组合来提供所请求实例。服务器630a可以包含适配器装置632a,其可以是如上文例如关于图2-5所描述的任何适配器装置,且可以包含一个或多个适配器装置,例如管理适配器装置和/或一个或多个可重新配置的适配器装置。服务器630b可以任选地包含适配器装置632b,其可以是如上文例如关于图2-5所描述的任何适配器装置,且可以包含一个或多个适配器装置,例如管理适配器装置和/或一个或多个可重新配置的适配器装置。服务器630b可以配置成使用服务器630b和/或适配器装置632b的一些资源来运行虚拟机以用于并行数据处理(例如,3D图形处理)。服务器630b还可以配置成使用服务器630b和适配器装置632b的所有资源以用于所请求实例。例如通过根据对应于所请求实例的个性在适配器装置632a上配置可重新配置的资源,重启服务器630a,且在服务器630a上加载所需操作系统或管理程序,服务器630a可以基于所请求实例而重新配置。适配器装置632a和/或适配器装置632b可以配置成彼此协调以提供所请求实例。举例来说,适配器装置632a和适配器装置632b中的一个可以充当用于所请求实例的主适配器装置。
如上文所描述,在例如CAD应用等需要GPU的许多应用中,许多工作负载可能仅需要2D再现。此类工作负载可以由具有适配器装置632a的服务器630a执行。仅可能需要真实3D再现的工作负载才可以转移到包含高性能GPU核心的服务器630b。在一些实施例中,服务器630a可能能够进行至少一些真实3D再现。在一些实施例中,例如适配器装置632a等主适配器装置可以配置成处置工作负载拆分和转移。
相似的工作负载拆分和转移方案可用于提供其它类型的实例。举例来说,在一些情况下,用户可以请求具有单个服务器无法提供的大量存储器空间的实例。在这些情况下,计算服务系统可以提供分层存储器系统。举例来说,服务器上的本地存储器可以用作用于需要快速存储器存取的工作负载的主要存储器,而远程服务器上的存储器或具有大存储器空间的专用存储器装置可以用作用于可能具有较低速度或时延要求的工作负载的辅助存储器。相似方案可用于需要大存储空间的实例。
作为另一示例,在一些情况下,用户可以请求包含靠近定位的服务器的集群的实例。在这些情况下,管理服务620可以选择彼此靠近的服务器的集群,以使得联网时延可以满足用户需求。选定服务器可以随后相应地重新配置。举例来说,与选定服务器相关联的适配器装置中的每一个可以重新配置为包含用于服务器集群之间的通信的RDMA链路。
图7示出根据本公开的某些方面的计算服务系统中的示例服务器700。服务器700可以是已配置为裸机系统的服务器。服务器700可以包含硬件资源710,其包含适配器装置720,例如具有PCIe接口或任何其它合适的接口的适配器装置。通过如上文所描述根据对应于特定类型的实例的预定义或定制个性来配置适配器装置720上的可重新配置的资源(例如,可重新配置的资源318、410或540),适配器装置720可重新配置以对客户端提供特定类型的预定义或定制实例。
服务器700可以包含在硬件资源710上运行的客户操作系统730。可以通过使用存储于服务器700上的非易失性存储器中的固件进行重启来配置服务器700,所述非易失性存储器例如上文描述的非易失性存储器235或530。在一些实施例中,在服务器700的重启期间,可以例如从适配器装置740上的选项ROM加载某些扩展固件,和/或可以例如从例如硬盘驱动器或SSD等永久性存储装置加载例如Microsoft Windows、Linux或MacOS等客户操作系统。服务器700可以运行扩展固件以例如整理高速缓存或其它易失性存储器中的数据。服务器700可以使用客户操作系统继续重启过程。在客户操作系统通过启动加载器进行的启动过程加载之后,客户端可接着在客户操作系统上运行应用程序以接入并利用服务器700上的硬件资源710。
图8示出根据本公开的某些方面的计算服务系统中的示例服务器800。服务器800可以是已配置成在底层硬件资源上运行管理程序的服务器,其中不同的操作系统可在不同虚拟机的管理程序上运行。服务器800可以包含硬件资源810,其包含一个或多个适配器装置,例如适配器装置820a、820b和820c(统称为适配器装置820),其中每一适配器装置可用于对应虚拟机。
如图8所示,服务器800可以在底层硬件资源810上执行管理程序840。管理程序840可以管理一个或多个进程,例如虚拟机830a、830b、830c(统称为虚拟机830)。每一虚拟机可以由适配器装置820模拟且可以运行单独操作系统。在一些实施例中,适配器装置820可以是虚拟适配器装置,并且可由相同卡或SoC模拟。虚拟机830可以是计算机系统的任何合适的模拟。每个虚拟机830可通过数据路径与适配器装置820或虚拟适配器装置通信。
在服务器800上运行的虚拟机830可以由管理程序840管理。管理程序840可以例如配置成创建、启动、监视、停止和删除虚拟机830。另外,管理程序840可以配置成与适配器装置820通信以使得适配器装置820可以创建或移除虚拟适配器装置。虚拟机830可以被指派优先级,使得由一个虚拟机830(例如,830a)发起的事务可以优先于由另一虚拟机830(例如,830b)发起的事务。在一些实施例中,优先级可仅在服务器800或适配器装置820的资源被大量占用时才生效。优先级可呈服务水平协议形式。服务水平协议可例如指示针对虚拟机而准许的资源使用量。举例来说,服务水平协议可以指示虚拟机(例如,830c)可能仅被允许某一量的网络带宽、主机存储器和/或适配器装置使用。
通过如上文所描述根据对应于特定类型的预定义或定制实例的个性来配置每一适配器装置820上的可重新配置的资源(例如,可重新配置的资源318、410或540),每一适配器装置820可能已重新配置以对客户端提供特定类型的实例。可以通过使用存储于服务器800上的非易失性存储器中的固件进行重启来配置服务器800,所述非易失性存储器例如上文描述的非易失性存储器235或530。在一些实施例中,在服务器800的重启期间,服务器800可以例如从适配器装置820上的选项ROM加载某些扩展固件,和/或例如从例如硬盘驱动器或SSD等永久性存储装置加载默认管理程序,例如由网络服务提供商提供的管理程序。在一些实施例中,在重启期间,服务器800可加载客户管理程序,而非由网络服务提供商提供的管理程序。服务器800可以运行扩展固件以例如整理高速缓存或其它易失性存储器中的数据。服务器800可以通过加载用于每一虚拟机的单独操作系统而继续重启过程。在加载操作系统之后,客户端可随后在用于每一虚拟机的操作系统上运行应用程序。
在一些情况下,服务器可能不具有用于客户端请求实例的所有硬件资源,例如GPU、存储器或存储资源。在这些情况下,服务器可以通过例如图1中所示的网络组构将请求实例的一些部分转移到另一服务器或网络中的其它专用硬件资源。
图9示出根据本公开的某些方面的用于通过管理服务提供实例的过程900的示例流程图。所述过程可以由上文描述的系统实施,例如图1的管理服务120或图6的管理服务620。
在框910处,管理服务可以接收例如来自客户端的提供对应于计算服务系统中的硬件功能的实例的请求。客户端可以使用例如API来请求实例,所述API可从用户取得各种参数作为输入,例如用户想要的实例的类型或用户想要的硬件的类型(例如,CPU、GPU、SSD、加密协处理器)、存储器量、存储量、联网的类型和带宽,或任何其它额外硬件。如上文所描述,客户端可以从计算服务系统请求不同类型的实例。举例来说,在一些情况下,客户端可以请求用于复杂计算工作负载的实例或用于对网络性能敏感的应用的实例。在一些情况下,客户端可以请求具有高并行执行能力的实例,例如用于3D图形应用。在一些情况下,客户端可以请求具有对数据的高速、低时延且随机的I/O存取的实例。在一些情况下,客户端可以请求具有高存储密度和高循序I/O能力的实例。在一些情况下,客户端可以请求特定系统硬件配置。在一些情况下,客户端可从计算服务系统提供的多个类型的实例中选择一个类型的实例。在一些情况下,客户端可以请求用于应用程序的特定操作系统或管理程序。在一些情况下,客户端可请求特定类型的硬件,例如GPU或SSD。在一些情况下,客户端可以通过与请求一起发送定制固件或定制代码(例如,定制软件或定制配置文件)来请求定制实例。客户端可以使用例如网络浏览器或用户应用程序通过网络发送请求,如上文相对于图1所描述。在一些情况下,请求可以来自计算服务提供商,例如系统管理员。举例来说,系统管理员可以甚至在没有来自客户端的请求的情况下请求基于特定实例类型或硬件功能预配置特定数目的服务器。
在框920处,响应于接收到请求,管理服务可以选择可用于基于请求提供所请求实例的一个或多个服务器,包含具有专用硬件资源(例如,GPU、存储器装置、存储装置)的服务器。如上文所描述,管理服务可以维持数据库,所述数据库存储连接到计算服务系统中的网络组构的服务器和其它硬件资源的配置(包含容量和其它参数)和状态,例如可重新配置的适配器装置在服务器上如何配置、当前在服务器上运行的客户的客户账户识别符等等。在一些情况下,管理服务可以基于服务器的硬件配置与所请求实例之间的最佳匹配而选择服务器。在一些情况下,管理服务可以随机地选择任何可用服务器。在一些情况下,管理服务可以选择可用的靠近定位的服务器的集群。在一些情况下,管理服务可以选择服务器和专用服务器或硬件资源,例如GPU、存储器装置或存储装置。在一些情况下,管理服务可以选择同一服务器用于多个客户端实例,所述多个客户端实例可以在服务器上的不同虚拟机上运行,如上文相对于例如图2和8所描述。
在框930处,管理服务可以通过例如图1的网络组构110等一个或多个网络组构将提供请求发送到与一个或多个硬件资源(例如,服务器)相关联的一个或多个管理适配器装置。在一些情况下,所述提供请求可以包含由管理服务确定的用于服务器的目标或所需硬件/软件系统配置。在一些情况下,提供请求可以类似于来自客户端或系统管理员的请求,且管理适配器装置可以基于提供请求而确定系统配置。在一些情况下,提供请求可以包含来自客户端的定制固件或定制代码(包含定制配置文件)。举例来说,单独的队列管理服务可以跟踪服务器的配置和对不同功能的预期需求。队列管理服务可指示管理服务将可重新配置的适配器装置提供到预期客户需要的功能性中。因此,服务器队列可以分段成各种服务器池,所述服务器池配置成通过改变可重新配置的适配器装置而具有不同功能性。
图10示出根据本公开的某些方面的用于通过管理适配器装置提供实例的过程1000的示例流程图。所述过程可以由上文描述的系统实施,所述系统例如图2的适配器装置210、图4的适配器装置400、图5的适配器装置550、图6的适配器装置632a和632b、图7的适配器装置720,或图8的适配器装置820。
在框1010处,如上文相对于图9所描述,与由管理服务选择的硬件资源(例如,服务器)相关联的适配器装置(例如,上文描述的管理适配器装置)可以从管理服务接收提供硬件功能的提供请求。所述请求可以响应于来自客户的实例启动请求而产生,或者通过来自将服务器配置到不同池中的队列管理服务的提供请求而产生。服务器可以包含可重新配置的适配器装置,其包含可重新配置的资源,所述可重新配置的资源可重新编程以执行对应于不同类型的实例的不同硬件功能。提供请求可以包含由管理服务确定的用于服务器的目标硬件/软件系统配置。在一些情况下,适配器装置可以基于来自管理服务的提供请求而确定目标硬件/软件系统配置。在一些情况下,提供请求可以包含来自客户端的定制固件、定制软件或定制配置文件以用于提供定制实例。
在框1020处,适配器装置可以基于提供请求而在服务器的可重新配置的适配器装置上加载固件或软件(例如,模拟软件、定制代码或配置文件)。所述固件或软件可以存储于例如快闪存储器、ROM、硬盘或SSD等非易失性存储器中,且可以在例如非易失性存储器等BIOS装置中加载或启用。定制代码可以来自客户端,且可以由适配器装置或与适配器装置相关联的服务器执行以配置适配器装置和/或服务器。固件可以包含对应于由客户端限定或针对客户端限定的定制实例的定制固件。定制配置文件还可以对应于由客户端限定或针对客户端限定的定制实例。定制固件、定制代码或定制配置文件可以加载到服务器的可重新配置的适配器装置上的例如BIOS装置等易失性或非易失性存储器装置上。
在框1030处,适配器装置可以通过例如使用加载的固件(包含定制固件)启动可重新配置的适配器装置或运行软件来配置可重新配置的适配器装置,所述软件例如可重新配置的适配器装置上的模拟软件或定制代码。适配器装置还可以在如上文描述配置可重新配置的适配器装置之前、期间和之后执行用于服务器的安全管理。在可重新配置的适配器装置和服务器启动且初始化之后,服务器能够执行用于所请求实例的所需硬件/软件功能,且可以被提供给客户端,使得客户端可以控制服务器且在其上运行应用程序或在其上运行虚拟机。还如上文描述,在一些实施例中,可以使用适当固件、软件(例如,模拟软件)或配置文件来配置多个服务器或其它硬件资源,且提供给客户端以用于提供所请求实例。
图11示出根据本公开的某些方面的用于通过计算服务系统提供实例的过程1100的示例流程图。所述过程可以由上文描述的系统实施,例如图1的计算服务系统100、图2的服务器200、图5的服务器500、图6的计算服务系统600、图7的服务器700或图8的服务器800。
在框1110处,管理服务可以接收提供对应于计算服务系统中的硬件功能的实例的请求,如上文相对于图9的框910所描述。在框1120处,管理服务可以基于请求而选择可用于提供实例的硬件资源,例如服务器,包含具有专用硬件资源(例如,GPU、存储器装置或存储装置)的服务器,如上文相对于图9的框920所描述。在框1130处,管理服务可以将提供请求发送到选定服务器上的管理适配器装置,如上文相对于图9的框930所描述。提供请求可以对应于硬件功能。
在框1140处,选定服务器上的管理适配器装置可以接收来自管理服务的提供请求。管理适配器装置可以保持CPU和BMC处于复位,且检查母板上的各种组件的固件,例如可重新配置的适配器装置。在检查固件之后,管理适配器装置可以致使可重新配置的适配器装置配置自身以模拟硬件装置。举例来说,管理适配器装置可以基于提供请求而在服务器的可重新配置的适配器装置上加载(或指示可重新配置的适配器装置加载)固件(包含定制固件,如果提供)或软件(包含例如模拟软件、定制软件或配置文件),如上文相对于图10的框1010和1020所描述。可重新配置的适配器装置可以包含可重新配置的资源,其可重新编程以执行对应于不同类型的实例的不同硬件功能。
在框1150处,管理适配器装置可以通过以下方式来配置可重新配置的资源:例如使用加载的固件来启动可重新配置的适配器装置,或者通过将请求发送到可重新配置的适配器装置(这致使可重新配置的适配器装置将对应于请求的模拟器加载到存储器中)而致使可重新配置的适配器装置运行可重新配置的适配器装置上的软件(例如,模拟软件)。在框1160处,选定服务器可以重启CPU,或从复位释放CPU以致使其开始启动过程以加载适当的固件和/或管理程序或操作系统。如上文所描述,在选定服务器的CPU执行的启动过程期间,服务器可以列举附接的硬件,在此期间,可重新配置的适配器装置可以向服务器报告或另外识别其配置的硬件功能。在框1170处,可以使服务器可由客户使用。举例来说,当CPU开始启动时,管理适配器装置可以使启动加载器可用,所述启动加载器可致使CPU加载裸机实例或虚拟化系统。举例来说,在裸机服务器的情况下,启动加载器可以致使CPU直接在服务器的硬件上加载客户选定图像。在另一情形中,管理适配器装置可以暴露用于虚拟化系统的启动加载器,其可以用于托管来自一个或多个客户的虚拟机。
应注意,即使图9-11将示例过程描述为循序操作,但操作中的一些可以并行地或同时执行。此外,可以重新布置所述操作的次序。操作可能具有图中未包含的另外步骤。一些操作可为任选的,且因此在各种实施例中可省略。一个框中描述的一些操作可与另一框处的操作一起执行。此外,可用硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施所述方法的实施例。
图12示出网络1200,示出各种不同类型的网络装置,例如上文描述的各种服务器。在某些实施例中,网络1200可基于具有点对点链路的切换架构。如图12中所示,网络1200包含可布置成网络的多个交换机1204a-1204d。在一些情况下,交换机布置成多层网络,例如Clos网络。在局域网(LAN)段之间筛选和转发包的网络装置可称作交换机。交换机通常在数据链路层(层2)处操作,且有时在开放系统互连(OSI)参考模型的网络层(层3)处操作,并且可支持若干包协议。交换机1204a-1204d可连接到多个节点1202a-1202h,并在任何两个节点之间提供多个路径。
网络1200还可以包含用于与例如其它子网、LAN、广域网(WAN)或互联网等其它网络1208进行连接的一个或多个网络装置,且可称为路由器1206。路由器使用标头和转发表来确定用于转发包的最佳路径,且使用例如互联网控制消息协议(ICMP)等协议彼此通信且配置任何两个装置之间的最佳路线。
在一些示例中,网络1200可包含许多不同类型的网络中的任一种或组合,例如电缆网络、互联网、无线网络、蜂窝网络和其它私有和/或公共网络。互连交换机1204a-1204d和路由器1206(如果存在的话)可称作交换机组构、组构、网络组构或简称为网络。在计算机网络的上下文中,术语“组构”和“网络”在本文中可互换使用。
节点1202a-1202h可以是表示用户装置、服务提供商计算机或第三方计算机的主机系统、处理器节点、存储子系统和I/O机箱的任何组合。
用户装置可包含接入应用程序1232(例如网络浏览器或移动装置应用程序)的计算装置。在一些方面,应用程序1232可由计算资源服务或服务提供商托管、管理和/或提供。应用程序1232可以允许用户与服务提供商计算机交互以例如接入网络内容(例如,网页、音乐、视频等)。用户装置可以是计算装置,例如移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、上网本计算机、桌上型计算机、精简客户端装置、平板计算机、电子书(e-book)阅读器、游戏控制台等。在一些示例中,用户装置可以经由其它网络1208与服务提供商计算机通信。另外,用户装置可以是由服务提供商计算机管理、控制或另外作为其部分的分布式系统的部分(例如,与服务提供商计算机集成的控制台装置)。
图12的节点还可表示一个或多个服务提供商计算机。一个或多个服务提供商计算机可以提供配置成在用户装置上运行的原生应用程序,用户可以与所述原生应用程序交互。在一些示例中,服务提供商计算机可以提供计算资源,例如但不限于客户端实体、低时延数据存储、耐久的数据存储、数据存取、管理、虚拟化、基于云的软件解决方案、电子内容性能管理等等。服务提供商计算机还可操作以向用户提供网络托管、数据库化、计算机应用程序开发和/或实施平台、前述内容的组合等。在一些实施例中,可以提供服务提供商计算机作为在托管计算环境中实施的一个或多个虚拟机。托管计算环境可包含一个或多个快速提供和释放的计算资源。这些计算资源可包含计算、联网和/或存储装置。托管计算环境也可被称作云计算环境。服务提供商计算机可包含一个或多个服务器,其可能布置在集群中,布置为服务器集群,或者作为彼此不相关联的个别服务器,并且可托管应用程序1232和/或基于云的软件服务。这些服务器可配置为集成的分布式计算环境的部分。在一些方面中,服务提供商计算机可以另外或替代地包含计算装置,例如移动电话、智能电话、个人数字助理(PDA)、膝上型计算机、桌上型计算机、上网本计算机、服务器计算机、精简客户端装置、平板计算机、游戏控制台等等。在一些示例中,服务提供商计算机可以与一个或多个第三方计算机通信。
在一个示例配置中,节点1202a-1202h可以包含至少一个存储器1218和一个或多个处理单元(或处理器1220)。处理器1220可以硬件、计算机可执行指令、固件或其组合实施。处理器1220的计算机可执行指令或固件实施方案可包含以任何合适的编程语言编写的用于执行所描述的各种功能的计算机可执行或机器可执行指令。
在一些情况下,硬件处理器1220可以是单核处理器或多核处理器。多核处理器可包含同一处理器内的多个处理单元。在一些实施例中,多核处理器可共享某些资源,例如总线和第二级或第三级高速缓存。在一些情况下,单核或多核处理器中的每个核心还可包含多个执行逻辑处理器(或执行线程)。在此类核心(例如,具有多个逻辑处理器的核心)中,也可共享执行管线的若干级以及较低级别的高速缓存。
存储器1218可存储可在处理器1220上加载和执行的程序指令,以及在执行这些程序期间产生的数据。取决于节点1202a-1202h的配置和类型,存储器1218可以是易失性(例如RAM)和/或非易失性(例如ROM、快闪存储器等)。存储器1218可包含操作系统1228、一个或多个数据存储区1230、一个或多个应用程序1232、一个或多个驱动器1234和/或用于实施本文公开的特征的服务。
操作系统1228可支持节点1202a-1202h基本功能,例如调度任务、执行应用程序,和/或控制器外围装置。在一些实施方案中,服务提供商计算机可托管一个或多个虚拟机。在这些实施方案中,每个虚拟机可配置成执行其自身的操作系统。操作系统的示例包含Unix、Linux、Windows、Mac OS、iOS、Android等等。操作系统1228也可以是专有操作系统。
数据存储区1230可包含由操作系统1228、应用程序1232或驱动器1234使用和/或操作的永久性或瞬时性数据。此类数据的示例包含网页、视频数据、音频数据、图像、用户数据等。在一些实施方案中,数据存储区1230中的信息可以在网络1208上提供到用户装置1204。在一些情况下,数据存储区1230可另外或替代地包含存储的应用程序和/或驱动器。替代地或另外,数据存储区1230可存储标准和/或专有软件库,和/或标准和/或专有应用程序用户接口(API)库。存储在数据存储区1230中的信息可以是机器可读目标代码、源代码、解译代码或中间代码。
驱动器1234包含可提供节点中的组件之间的通信的程序。举例来说,一些驱动器1234可提供操作系统1228与附加存储装置1222、网络装置1224和/或I/O装置1226之间的通信。替代地或另外,一些驱动器1234可提供应用程序1232与操作系统1228和/或应用程序1232和服务提供商计算机可接入的外围装置之间的通信。在许多情况下,驱动器1234可包含提供易于理解的功能的驱动程序(例如,打印机驱动器、显示器驱动器、硬盘驱动器、或固态磁盘驱动器)。在其它情况下,驱动器1234可提供专有或专用功能。
服务提供商计算机或服务器还可包含附加存储装置1222,其可包含可移除存储和/或不可移除存储。附加存储装置1222可包含磁性存储装置、光盘、固态盘、快闪存储器和/或磁带存储装置。附加存储装置1222可与节点1202a-1202h容纳在相同的机箱中,或可在外部壳体中。存储器1218和/或附加存储装置1222以及其相关联的计算机可读介质可为计算装置提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。在一些实施方案中,存储器1218可包含多种不同类型的存储器,例如SRAM、DRAM或ROM。
可移除和不可移除的存储器1218和附加存储装置1222是计算机可读存储介质的示例。举例来说,计算机可读存储介质可包含以用于存储信息的方法或技术实施的易失性或非易失性、可移除或不可移除介质,所述信息包含例如计算机可读指令、数据结构、程序模块或其它数据。存储器1218和附加存储装置1222是计算机存储介质的示例。可存在于节点1202a-1202h中的额外类型的计算机存储介质可包含但不限于PRAM、SRAM、DRAM、RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、DVD或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储装置、固态驱动器或一些其它介质,其可用于存储所要信息并可由节点1202a-1202h接入。计算机可读介质还包含任何上述介质类型的组合,包含一个介质类型的多个单元。
替代地或另外,计算机可读通信介质可包含计算机可读指令、程序模块或在数据信号(载波或其它传输)内传输的其它数据。然而,如本文所使用,计算机可读存储介质不包含计算机可读通信介质。
节点1202a-1202h还可以包含I/O装置1226,例如键盘、鼠标、笔、语音输入装置、触摸输入装置、显示器、扬声器、打印机及类似物。节点1202a-1202h还可以包含一个或多个通信信道1236。通信信道1236可以提供节点1202a-1202h的各种组件可在其上通信的介质。通信信道或多个通信信道1236可呈总线、环、交换组构或网络的形式。
节点1202a-1202h还可以含有网络装置1224,其允许节点1202a-1202h与存储的数据库、另一计算装置或服务器、用户终端和/或网络1200上的其它装置通信。图12的网络装置1224可以包含上文参考服务器所论述的相似组件。
在一些实施方案中,网络装置1224是外围装置,例如基于PCI的装置。在这些实施方案中,网络装置1224包含用于与服务器通信的PCI接口。术语“PCI”或“基于PCI”可用于描述PCI系列总线协议中的任何协议,包含原始PCI标准、PCI-X、加速图形端口(AGP)和PCI快速(PCIe)或基于本文所论述的PCI协议的任何其它改进或衍生协议。基于PCI的协议是用于将例如本地外围装置等装置连接到服务器的标准总线协议。标准总线协议是一种数据传输协议,其规范已由各个制造商限定并采用。制造商确保兼容装置与实施总线协议的计算系统兼容,反之亦然。如本文所使用,基于PCI的装置还包含使用非易失性存储器快速(NVMe)通信的装置。NVMe是用于使用PCIe存取附接到计算系统的非易失性存储介质的装置接口规范。举例来说,总线接口308可实施NVMe,并且网络装置1224可使用PCIe接口连接到计算系统。
基于PCI的装置可包含一个或多个功能。“功能”描述可由网络装置1224提供的操作。功能的示例包含大容量存储控制器、网络控制器、显示控制器、存储器控制器、串行总线控制器、无线控制器以及加密和解密控制器等。在一些情况下,基于PCI的装置可包含多于一个功能。举例来说,基于PCI的装置可提供大容量存储控制器和网络适配器。作为另一示例,基于PCI的装置可提供两个存储控制器以控制两个不同的存储资源。在一些实施方案中,基于PCI的装置可具有多达八个功能。
在一些实施方案中,网络装置1224可以包含单根I/O虚拟化(SR-IOV)。SR-IOV是基于PCI的装置中可以包含的扩展能力。SR-IOV允许物理资源(例如,单个网络接口控制器)表现为多个资源(例如,六十四个网络接口控制器)。因此,对于利用基于PCI的装置的装置,提供某一功能性(例如,网络接口控制器)的基于PCI的装置可以表现为提供同一功能性的多个装置。具有SR-IOV能力的存储适配器装置的功能可分类为物理功能(PF)或虚拟功能(VF)。物理功能是装置的可被发现、管理和操控的全功能功能。物理功能具有可用于配置或控制存储适配器装置的配置资源。物理功能包含与非虚拟化装置所具有的相同配置地址空间和存储器地址空间。物理功能可具有与其相关联的数个虚拟功能。虚拟功能类似于物理功能,但为通常可能缺少配置资源的轻量级功能,并且通常由其基础物理功能的配置来控制。可将每个物理功能和/或虚拟功能指派到在服务器上运行的相应执行线程(例如虚拟机)。
本文描述的模块可以是软件模块、硬件模块或其合适的组合。如果模块是软件模块,则模块可体现在非暂时性计算机可读介质上,并且由本文描述的任何计算机系统中的处理器处理。应注意,所描述的过程和架构可在任何用户交互之前实时或以异步模式执行。可按图12中推荐的方式来配置模块,和/或本文所描述的功能可由作为单独模块存在的一个或多个模块提供,和/或本文所描述的模块功能可分散在多个模块上。
因此,本说明书和附图应在说明性意义上而非限制性意义上看待。然而,显而易见的是,在不脱离权利要求中所阐述的本公开的更广泛精神和范围的情况下,可对其进行各种修改和改变。
其它变化在本公开的精神内。因此,虽然所公开的技术可接受各种修改和替代构造,但其某些所说明实施例已在附图中示出且已在上文详细描述。然而,应理解,无意将本公开限制于所公开的特定形式,相反,意在涵盖落入所附权利要求中所限定的本公开的精神和范围内的所有修改、替代构造和等同物。
除非本文另有说明或与上下文明显矛盾,否则在描述所公开实施例的上下文中(尤其在所附权利要求书的上下文中)使用词语“一”和“所述”以及类似指示物应理解为涵盖单数以及复数。术语“包括”、“具有”、“包含”和“含有”应理解为开放式术语(即,意味着“包含但不限于”),除非另外指出。术语“连接”应理解为部分或全部地包含在内、附接到或接合在一起,即使是在存在中间物的情况下也是如此。除非本文中另有说明,否则本文中对数值范围的描述仅旨在用作单独提及落入所述范围内的每个单独值的简写方法,并且每个单独的值并入本说明书中,如同其在本文中单独引用一样。除非在本文中另外指示或另外明显与上下文相矛盾,否则本文所描述的所有方法可以任何适合的顺序执行。除非另外声明,否则本文提供的任何和所有示例或示例性语言(例如,“例如”)的使用仅旨在更好地说明本公开的实施例,而不对本公开的范围构成限制。本说明书中的任何语言都不应理解为指示任何未请求保护的要素对于实践本公开是必需的。
除非另有具体陈述,否则例如词组“X、Y或Z中的至少一者”等分离性语言在所使用的上下文内希望理解为一般呈现项目、术语等可为X、Y或Z,或其任何组合(例如X、Y和/或Z)。因此,这类分离性语言一般无意且不应暗示某些实施例要求X中的至少一个、Y中的至少一个,或Z中的至少一个各自都存在。
本文中描述本公开的各种实施例,包含本发明人已知的用于执行本公开的最佳模式。在阅读前面的描述后,这些实施例的变化对于所属领域的技术人员而言将变得显而易见。本发明人期望所属领域的技术人员在适当时使用此类变化,并且本发明人打算以与本文具体描述的方式不同的方式来实践本公开。因此,本公开包含适用法律所允许的在此随附的权利要求书中所述的主题的所有修改和等同物。此外,除非本文另外指示或另外明显与内容相矛盾,否则本发明涵盖上述要素以其所有可能变化形式的任何组合。
可鉴于以下各条描述本公开的实施例:
1.一种系统,其包括:
多个服务器,每一服务器包含管理适配器装置和可重新配置的适配器装置,其中所述可重新配置的适配器装置包括可重新配置的资源,所述可重新配置的资源可重新编程以执行不同硬件功能;以及
管理服务,其配置成从所述多个服务器中选择服务器且将提供请求发送到所述选定服务器,
其中所述选定服务器的所述管理适配器装置配置成:
从所述管理服务接收所述提供请求;以及
基于所述提供请求,根据硬件功能配置所述可重新配置的适配器装置;且
其中所述选定服务器的所述可重新配置的适配器装置配置成:
根据所述硬件功能来配置所述可重新配置的资源;以及
向所述服务器上的CPU报告所述配置的硬件功能。
2.根据第1条所述的系统,其中:
所述管理适配器装置通过基于所述提供请求而在所述可重新配置的适配器装置上加载固件或模拟软件中的至少一个来根据所述硬件功能配置所述可重新配置的适配器装置。
3.根据第1条所述的系统,其中所述选定服务器的所述管理适配器装置还配置成在所述选定服务器上加载客户管理程序或客户操作系统。
4.根据第1条所述的系统,其中所述可重新配置的适配器装置以通信方式联接到所述多个服务器中的远程服务器,所述远程服务器配置成执行所述配置的硬件功能中的至少一些。
5.一种服务器,其包括:
可重新配置的适配器装置,所述可重新配置的适配器装置包含可重新配置的资源,所述可重新配置的资源可重新编程以执行不同硬件功能,
其中所述服务器配置成接收对应于硬件功能的提供请求;且
其中所述可重新配置的适配器装置配置成:
根据所述硬件功能配置所述可重新配置的资源;以及
向所述服务器报告所述配置的硬件功能。
6.根据第5条所述的服务器,其中所述可重新配置的适配器装置还配置成:
接收所述提供请求;以及
通过以下操作来根据所述硬件功能配置所述可重新配置的资源:
基于所述提供请求,在所述可重新配置的适配器装置上加载固件或软件中的至少一个。
7.根据第5条所述的服务器,其还包括:
管理适配器装置,其联接到所述可重新配置的适配器装置,
其中所述管理适配器装置配置成:
接收所述提供请求;以及
基于所述提供请求,致使所述可重新配置的适配器装置加载固件或软件中的至少一个。
8.根据第7条所述的服务器,其中所述管理适配器装置还配置成:
发起所述服务器的重启;
控制所述服务器的所述重启的顺序;以及
在所述服务器的所述重启期间控制所述服务器的组件对存储器的存取。
9.根据第7条所述的服务器,其中所述管理适配器装置配置成在所述服务器上加载客户管理程序或客户操作系统。
10.根据第7条所述的服务器,其中所述管理适配器装置联接到管理服务且配置成从所述管理服务接收所述提供请求,所述管理服务配置成基于请求而从多个服务器中选择所述服务器且将所述提供请求发送到所述管理适配器装置。
11.根据第10条所述的服务器,其中所述请求包含系统硬件配置、选自多个硬件功能的硬件功能、操作系统、硬件的类型、可执行代码或配置文件中的至少一个。
12.根据第5条所述的服务器,其中所述硬件功能包含以下各项中的至少一个:
浮点处理器;
易失性存储器;
非易失性存储器;
图形处理单元;或
远程直接存储器存取(RDMA)适配器。
13.根据第5条所述的服务器,其中:
所述适配器装置以通信方式联接到远程服务器,所述远程服务器配置成执行所述配置的硬件功能中的至少一些。
14.根据第13条所述的服务器,其中所述远程服务器包含图形处理单元、易失性存储器装置或非易失性存储器装置中的至少一个。
15.根据第5条所述的服务器,其中所述可重新配置的资源包含可配置成远程直接存储器存取(RDMA)链路的网络链路。
16.根据第5条所述的服务器,其中所述适配器装置通过外围组件互连(PCI)总线、外围组件互连高速(PCIe)总线和外围组件互连扩展(PCI-X)总线中的一个联接到所述服务器的其它部分。
17.根据第5条所述的服务器,其包括现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)、可编程阵列逻辑(PAL),或复杂可编程逻辑装置(CPLD)。
18.一种方法,其包括:
由服务器接收提供请求,所述服务器包含可重新配置的适配器装置,所述可重新配置的适配器装置包含可重新配置的资源,所述可重新配置的资源可重新编程以执行不同硬件功能,且所述提供请求对应于硬件功能;
基于所述提供请求,在所述可重新配置的适配器装置上加载固件或软件中的至少一个;以及
通过使用所述固件重启所述可重新配置的适配器装置或在所述可重新配置的适配器装置上执行所述软件来配置所述可重新配置的资源以执行所述硬件功能。
19.根据第18条所述的方法,其中所述软件包含模拟软件、定制代码或配置文件中的至少一个,所述定制代码或所述配置文件对应于定制实例。
20.根据第18条所述的方法,其还包括:
在所述服务器上加载客户管理程序或客户操作系统。
21.根据第18条所述的方法,其还包括:
将对应于所述硬件功能中的至少一些的工作负载分布到远程服务器,所述远程服务器以通信方式联接到所述可重新配置的适配器装置。

Claims (21)

1.一种用于重新配置服务器的系统,其包括:
多个服务器,每一服务器包含:
处理器;
存储器装置;
管理适配器装置;和
可重新配置的适配器装置,其中所述可重新配置的适配器装置包括可重新配置的资源,所述可重新配置的资源可重新编程以执行不同硬件功能以使得所述可重新配置的适配器装置表现为多种不同类型的硬件装置中的一个或多个;以及
管理服务平台,其配置成接收提供所述不同硬件功能中的特定硬件功能的请求,基于该请求从所述多个服务器中选择服务器且将提供请求发送到所选择的服务器,
其中所选择的服务器的所述管理适配器装置配置成:
从所述管理服务平台接收所述提供请求;以及
基于所述提供请求,根据所述特定硬件功能配置所述可重新配置的适配器装置;且
其中所选择的服务器的所述可重新配置的适配器装置配置成:
响应于由所述管理适配器装置对所述可重新配置的适配器装置进行配置,根据所述特定硬件功能来对所述可重新配置的资源进行配置;以及
向所述服务器报告所述可重新配置的适配器装置的特定硬件功能,以将所述可重新配置的适配器装置识别为所述不同类型的硬件装置之中的特定类型的硬件装置以及所述可重新配置的适配器装置属于所述服务器且已经根据所述特定硬件功能进行配置,其中所述报告在以下中的至少一者下被执行:
在所述服务器的重启期间,或
在根据所述特定硬件功能对所述可重新配置的资源进行配置之后并且在所述可重新配置的适配器装置的重启期间。
2.根据权利要求1所述的系统,其中:
所述管理适配器装置通过基于所述提供请求而在所述可重新配置的适配器装置上加载固件或模拟软件中的至少一个来根据所述特定硬件功能配置所述可重新配置的适配器装置,所述固件或模拟软件中的至少一个包括用于根据所述特定硬件功能对所述可重新配置的资源进行编程的指令。
3.根据权利要求1所述的系统,其中所选择的服务器的所述管理适配器装置还配置成在所选择的服务器上加载客户管理程序或客户操作系统。
4.根据权利要求1所述的系统,其中所述可重新配置的适配器装置以通信方式联接到所述多个服务器中的远程服务器,所述远程服务器配置成执行所述配置的硬件功能中的至少一些。
5.一种服务器,其包括:
处理器;
存储器,所述存储器连接至所述处理器;以及
可重新配置的适配器装置,所述可重新配置的适配器装置包含可重新配置的资源,所述可重新配置的资源能够重新编程以执行不同硬件功能以使得所述可重新配置的适配器装置表现为多种不同类型的硬件装置中的一个或多个,
其中所述服务器配置成从管理服务平台接收对应于所述不同硬件功能中的特定硬件功能的提供请求,其中所述管理服务平台配置成接收提供所述特定硬件功能的请求,基于该请求而从多个服务器中选择所述服务器且将所述提供请求发送到所述服务器;且
其中所述可重新配置的适配器装置配置成:
根据所述硬件功能对所述可重新配置的资源进行配置;以及
向所述服务器报告所述可重新配置的适配器装置的所述特定硬件功能,以将所述可重新配置的适配器装置识别为所述不同类型的硬件装置之中的特定类型的硬件装置以及所述可重新配置的适配器装置属于所述服务器且已经根据所述特定硬件功能进行配置,其中所述报告在以下中的至少一者下被执行:
在所述服务器的重启期间,或
在根据所述特定硬件功能对所述可重新配置的资源进行配置之后并且在所述可重新配置的适配器装置的重启期间。
6.根据权利要求5所述的服务器,其中所述可重新配置的适配器装置还配置成:
接收所述提供请求;以及
基于所述提供请求,在所述可重新配置的适配器装置上加载固件或软件中的至少一个,所述固件或软件中的至少一个包括用于根据所述特定硬件功能对所述可重新配置的资源进行编程的指令。
7.根据权利要求5所述的服务器,还包括:
管理适配器装置,其联接到所述可重新配置的适配器装置,
其中所述管理适配器装置配置成:
接收所述提供请求;以及
基于所述提供请求,使所述可重新配置的适配器装置加载固件或软件中的至少一个,所述固件或软件中的至少一个包括用于根据所述特定硬件功能对所述可重新配置的资源进行编程的指令。
8.根据权利要求7所述的服务器,其中所述管理适配器装置还配置成:
发起所述服务器的重启;
控制所述服务器的所述重启的顺序;以及
在所述服务器的所述重启期间控制所述服务器的组件对存储器的存取。
9.根据权利要求7所述的服务器,其中所述管理适配器装置配置成在所述服务器上加载客户管理程序或客户操作系统。
10.根据权利要求7所述的服务器,其中所述管理适配器装置联接到管理服务平台且配置成从所述管理服务平台接收所述提供请求,所述管理服务平台配置成将所述提供请求发送到所述管理适配器装置。
11.根据权利要求10所述的服务器,其中所述提供请求包含系统硬件配置、选自多个硬件功能的硬件功能、操作系统、硬件的类型、可执行代码或配置文件中的至少一个。
12.根据权利要求5所述的服务器,其中所述不同硬件功能包含以下各项中的至少一个:
浮点处理器;
易失性存储器;
非易失性存储器;
图形处理单元;或
远程直接存储器存取(RDMA)适配器。
13.根据权利要求5所述的服务器,其中:
所述可重新配置的适配器装置以通信方式联接到远程服务器,所述远程服务器配置成代表所述可重新配置的适配器装置执行所述特定硬件功能中的至少一些。
14.根据权利要求13所述的服务器,其中所述远程服务器包含图形处理单元、易失性存储器装置或非易失性存储器装置中的至少一个。
15.根据权利要求5所述的服务器,其中所述可重新配置的资源包含能够配置成远程直接存储器存取(RDMA)链路的网络链路。
16.根据权利要求5所述的服务器,其中所述可重新配置的适配器装置通过外围组件互连(PCI)总线、外围组件互连高速(PCIe)总线和外围组件互连扩展(PCI-X)总线中的一个联接到所述服务器的其它部分。
17.根据权利要求5所述的服务器,其中所述可重新配置的资源包括现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)、可编程阵列逻辑(PAL),或复杂可编程逻辑装置(CPLD)中的至少一个。
18.一种用于重新配置服务器的方法,其包括:
由管理服务平台接收提供不同硬件功能中的特定硬件功能的请求,基于该请求选择服务器且将提供请求发送到所述服务器;
由所述服务器接收所述提供请求,所述服务器包含可重新配置的适配器装置,所述可重新配置的适配器装置包含可重新配置的资源,所述可重新配置的资源能够重新编程以执行所述不同硬件功能以使得所述可重新配置的适配器装置表现为多种不同类型的硬件装置中的一个或多个,且所述提供请求对应于所述特定硬件功能;
基于所述提供请求在所述可重新配置的适配器装置上加载固件或软件中的至少一个,所述固件或软件中的至少一个包括用于根据所述特定硬件功能对所述可重新配置的资源进行编程的指令;
通过使用所述固件重启所述可重新配置的适配器装置或通过在所述可重新配置的适配器装置上执行所述软件来对所述可重新配置的资源进行配置以执行所述特定硬件功能;
重启所述服务器,以及
在所述可重新配置的适配器装置的重启期间或在所述服务器的重启期间,向所述服务器报告所述可重新配置的适配器装置的所述特定硬件功能,以将所述可重新配置的适配器装置识别为所述不同类型的硬件装置之中的特定类型的硬件装置以及所述可重新配置的适配器装置属于所述服务器且已经根据所述特定硬件功能进行配置。
19.根据权利要求18所述的方法,其中基于所述提供请求在所述可重新配置的适配器装置上加载所述软件,且其中所述软件包含模拟软件、定制代码或配置文件中的至少一个,所述定制代码或所述配置文件对应于定制实例。
20.根据权利要求18所述的方法,其还包括:
在所述服务器上加载客户管理程序或客户操作系统。
21.根据权利要求18所述的方法,其还包括:
将对应于所述特定硬件功能中的至少一些的工作负载分布到以通信方式联接到所述可重新配置的适配器装置的远程服务器。
CN201780077097.8A 2016-12-13 2017-12-13 用于重新配置服务器的系统和方法以及服务器 Active CN110063051B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/377,973 2016-12-13
US15/377,973 US10374885B2 (en) 2016-12-13 2016-12-13 Reconfigurable server including a reconfigurable adapter device
PCT/US2017/065992 WO2018111987A1 (en) 2016-12-13 2017-12-13 Reconfigurable server

Publications (2)

Publication Number Publication Date
CN110063051A CN110063051A (zh) 2019-07-26
CN110063051B true CN110063051B (zh) 2021-01-08

Family

ID=60923919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780077097.8A Active CN110063051B (zh) 2016-12-13 2017-12-13 用于重新配置服务器的系统和方法以及服务器

Country Status (4)

Country Link
US (2) US10374885B2 (zh)
EP (1) EP3556081B1 (zh)
CN (1) CN110063051B (zh)
WO (1) WO2018111987A1 (zh)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9882833B2 (en) * 2015-09-28 2018-01-30 Centurylink Intellectual Property Llc Intent-based services orchestration
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10911405B1 (en) * 2017-07-31 2021-02-02 Amazon Technologies, Inc. Secure environment on a server
US11665012B2 (en) * 2017-08-11 2023-05-30 Harmonic, Inc. Virtual access hub
US10860346B2 (en) * 2017-08-15 2020-12-08 Sap Se Server-side internationalization framework for web applications
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10860334B2 (en) * 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN109039711B (zh) * 2018-07-12 2021-01-15 联想(北京)有限公司 一种硬件加速器的更换方法、装置及服务器
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
CN110795774B (zh) * 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11093431B2 (en) * 2018-10-12 2021-08-17 Dell Products L.P. Automated device discovery system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
KR102583255B1 (ko) 2018-11-05 2023-09-26 삼성전자주식회사 복수의 프로토콜을 적응적으로 지원하는 스토리지 장치
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11625806B2 (en) * 2019-01-23 2023-04-11 Qualcomm Incorporated Methods and apparatus for standardized APIs for split rendering
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US11659059B2 (en) * 2019-03-01 2023-05-23 Hewlett Packard Enterprise Development Lp Parallel sharing of hardware
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
CN111831425B (zh) * 2019-04-18 2024-07-16 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US11228643B2 (en) * 2019-06-04 2022-01-18 Capital One Services, Llc System and method for fast application auto-scaling
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
JP2021064311A (ja) * 2019-10-17 2021-04-22 富士ゼロックス株式会社 情報処理装置およびプログラム
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
CN111246168A (zh) * 2020-01-15 2020-06-05 深圳市网新新思软件有限公司 一种视频内容批量监管集群系统和方法
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
CN111324558B (zh) * 2020-02-05 2021-08-10 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
CN113467839A (zh) * 2020-03-31 2021-10-01 阿里巴巴集团控股有限公司 可编程组件管控方法以及装置
EP4127864A4 (en) * 2020-04-02 2024-05-08 Lightspeedai Labs Private Limited SYSTEM AND METHOD FOR ENABLING RECONFIGURABLE AND FLEXIBLE MODULAR CALCULATION
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263025B2 (en) 2020-05-26 2022-03-01 International Business Machines Corporation Proactively performing tasks based on estimating hardware reconfiguration times
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US12063148B2 (en) * 2020-06-18 2024-08-13 F5, Inc. Orchestrating configuration of a programmable accelerator
CN113900791A (zh) * 2020-06-22 2022-01-07 华为技术有限公司 一种作业处理方法以及相关设备
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
CN112532447A (zh) * 2020-11-27 2021-03-19 锐捷网络股份有限公司 一种rdma参数配置的方法、装置及存储介质
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
EP4260195A4 (en) 2021-01-06 2025-02-26 Enfabrica Corp SERVER MATRIX ADAPTER FOR I/O SCALING OF HETEROGENEOUS AND ACCELERATED COMPUTE SYSTEMS
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
CN113110729A (zh) * 2021-04-07 2021-07-13 山东英信计算机技术有限公司 提升服务器数据安全性的供电方法、系统和存储介质
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US12073116B2 (en) 2021-05-06 2024-08-27 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for computational storage functions
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
WO2022261325A2 (en) * 2021-06-09 2022-12-15 Enfabrica Corporation Transparent remote memory access over network protocol
CN113835770B (zh) * 2021-11-30 2022-02-18 四川华鲲振宇智能科技有限责任公司 一种服务器管理模块在线更换方法及系统
US11934255B2 (en) 2022-01-04 2024-03-19 Bank Of America Corporation System and method for improving memory resource allocations in database blocks for executing tasks
WO2023224720A1 (en) * 2022-05-16 2023-11-23 Microsoft Technology Licensing, Llc Enabling virtual private network (vpn) support in a virtualized environment
US12248424B2 (en) 2022-08-09 2025-03-11 Enfabrica Corporation System and method for ghost bridging
US20250060905A1 (en) * 2023-08-14 2025-02-20 Samsung Electronics Co., Ltd. Inline computational storage

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894233A (zh) * 2010-07-23 2010-11-24 北京工业大学 一种可信赖的可重构器件及其使用方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889987A (en) 1996-09-30 1999-03-30 Intel Corporation Flexible non-volatile memory controller with boot block emulation
US7313705B2 (en) 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US20030217106A1 (en) * 2002-03-25 2003-11-20 Eytan Adar System and method for profiling clients within a system for harvesting community knowledge
DE50301105D1 (de) * 2002-03-27 2005-10-06 Siemens Ag Aaa serversystem zur effizienten zugangskontrolle und adresszuordnung
JP2004041325A (ja) * 2002-07-09 2004-02-12 Izumi Products Co 電気かみそりの外刃及び電気かみそり
US7150014B2 (en) * 2002-10-04 2006-12-12 Hewlett-Packard Development Company, L.P. Automatically deploying software packages used in computer systems
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US20050012016A1 (en) * 2003-07-18 2005-01-20 Annette Teuscher Book cover, carrier and book stand
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20060026417A1 (en) 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection
US20060117156A1 (en) 2004-12-01 2006-06-01 Chai Jesse C Method and apparatus for dual protection of a protected memory block
US8230446B2 (en) 2007-11-28 2012-07-24 International Business Machines Corporation Providing a computing system with real-time capabilities
US8135615B2 (en) * 2007-12-18 2012-03-13 Amdocs Software Systems Limited Systems and methods for detecting click fraud
US7987336B2 (en) 2008-05-14 2011-07-26 International Business Machines Corporation Reducing power-on time by simulating operating system memory hot add
US8239663B2 (en) 2009-05-30 2012-08-07 Lsi Corporation System and method for maintaining the security of memory contents and computer architecture employing the same
EP2453843B1 (en) * 2009-07-17 2015-09-30 Kirk Promotion LTD. Artificial valve for implantation
US20110107047A1 (en) 2009-11-03 2011-05-05 Rotem Sela Enforcing a File Protection Policy by a Storage Device
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9396329B2 (en) 2011-10-17 2016-07-19 Intel Corporation Methods and apparatus for a safe and secure software update solution against attacks from malicious or unauthorized programs to update protected secondary storage
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
TW201535145A (zh) 2013-12-04 2015-09-16 Insyde Software Corp 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
WO2015187391A1 (en) * 2014-06-06 2015-12-10 Thomson Licensing Improvement to graphical user interface (gui) for updating multimedia over cable (moca)
US9891996B2 (en) 2014-07-15 2018-02-13 Dell Poducts, L.P. Apparatus and method for recovering an information handling system from a non-operational state
US9524390B2 (en) * 2014-09-09 2016-12-20 Dell Products, Lp Method for authenticating firmware volume and system therefor
US10574734B2 (en) * 2015-04-09 2020-02-25 Rambus Inc. Dynamic data and compute management
EP3089035A1 (en) 2015-04-30 2016-11-02 Virtual Open Systems Virtualization manager for reconfigurable hardware accelerators
US20160323143A1 (en) * 2015-05-02 2016-11-03 Hyeung-Yun Kim Method and apparatus for neuroplastic internet of things by cloud computing infrastructure as a service incorporating reconfigurable hardware
US9928367B2 (en) 2015-12-03 2018-03-27 Hewlett-Packard Development Company, L.P. Runtime verification
US9875113B2 (en) 2015-12-09 2018-01-23 Quanta Computer Inc. System and method for managing BIOS setting configurations
US10664484B2 (en) * 2016-05-26 2020-05-26 Oath Inc. Computerized system and method for optimizing the display of electronic content card information when providing users digital content
US10242197B2 (en) 2016-09-23 2019-03-26 Intel Corporation Methods and apparatus to use a security coprocessor for firmware protection
US20180097839A1 (en) 2016-10-01 2018-04-05 Neeraj S. Upasani Systems, apparatuses, and methods for platform security
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894233A (zh) * 2010-07-23 2010-11-24 北京工业大学 一种可信赖的可重构器件及其使用方法

Also Published As

Publication number Publication date
EP3556081A1 (en) 2019-10-23
US10374885B2 (en) 2019-08-06
US20190273654A1 (en) 2019-09-05
WO2018111987A1 (en) 2018-06-21
CN110063051A (zh) 2019-07-26
EP3556081B1 (en) 2021-04-21
US10778521B2 (en) 2020-09-15
US20180167268A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
CN110063051B (zh) 用于重新配置服务器的系统和方法以及服务器
CN110073355B (zh) 用于提供安全执行环境的服务器和用于保护服务器上的非易失性存储器中的固件的方法
JP6864749B2 (ja) 仮想マシンインスタンスと顧客プログラマブル論理回路との間の中間ホスト集積回路
US11099873B2 (en) Network configuration updates for virtual machine
JP7044770B2 (ja) プログラマブルハードウェアの別個のサブセットを制御する仮想マシン
US10860305B1 (en) Secure firmware deployment
US10133504B2 (en) Dynamic partitioning of processing hardware
US10509758B1 (en) Emulated switch with hot-plugging
CN114902177A (zh) 引导代码处理程序的更新
US10013388B1 (en) Dynamic peer-to-peer configuration
US20150128131A1 (en) Managing virtual machine patterns
US10911405B1 (en) Secure environment on a server
EP3985508A1 (en) Network state synchronization for workload migrations in edge devices
CN113312141A (zh) 用于虚拟机的虚拟串行端口
US11635970B2 (en) Integrated network boot operating system installation leveraging hyperconverged storage
CN109656675B (zh) 总线设备、计算机设备及实现物理主机云存储的方法
US11144326B2 (en) System and method of initiating multiple adaptors in parallel
US11003618B1 (en) Out-of-band interconnect control and isolation
CN116069584A (zh) 将监控服务扩展到可信云运营商域中
US11748038B1 (en) Physical hardware controller for provisioning remote storage services on processing devices
US20240184612A1 (en) Virtual machine live migration with direct-attached non-volatile memory express device
US20170206091A1 (en) Sharing ownership of an input/output device with an existing partition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant