CN113204421A - 无服务器功能与存储池的同分布 - Google Patents

无服务器功能与存储池的同分布 Download PDF

Info

Publication number
CN113204421A
CN113204421A CN202011601589.2A CN202011601589A CN113204421A CN 113204421 A CN113204421 A CN 113204421A CN 202011601589 A CN202011601589 A CN 202011601589A CN 113204421 A CN113204421 A CN 113204421A
Authority
CN
China
Prior art keywords
nodes
subset
node
available
computing resources
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
Application number
CN202011601589.2A
Other languages
English (en)
Inventor
N.瓦特金斯
H.陈
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.)
Red Hat Inc
Original Assignee
Red Hat 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 Red Hat Inc filed Critical Red Hat Inc
Publication of CN113204421A publication Critical patent/CN113204421A/zh
Pending legal-status Critical Current

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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了用于指派节点以在无服务器计算环境中执行功能的方法和系统。在一个实施例中,提供一种方法,所述方法包括接收在无服务器计算环境中执行功能的请求,以及标识在所述功能执行期间所需的存储池。所述无服务器计算环境可以包括用于执行功能的节点,并且可以标识实现所述存储池的第一组节点。可以在所述第一组节点和第二组节点之间确定同分布测量。可以确定所述第二组节点的可用计算资源,诸如可用处理核心和可用存储器。所述第二组节点可以基于所述同分布测量和所述可用计算资源来排序,并且可以基于所述排序来选择第一节点。可以指派所述第一节点来执行所述功能。

Description

无服务器功能与存储池的同分布
技术领域
本公开涉及一种用于指派节点在无服务器计算环境中执行功能的方法、系统以及计算机可读介质。
背景技术
计算系统可以依赖于敏捷的计算环境来执行一个或多个功能和/或提供计算服务。敏捷的计算环境可以提供可由计算系统用来执行功能和/或计算服务的计算资源。特别地,敏捷的计算环境可以分配一部分计算资源(例如,处理、存储、输入/输出资源)来执行请求的功能和/或计算服务。
发明内容
本公开呈现了用于指派节点在无服务器计算环境中执行功能的新的和创新的系统和方法。在一个实施例中,提供一种方法,该方法包括接收在无服务器计算环境中执行功能的请求,以及标识供功能的执行期间使用的存储池。可以标识实现存储池的无服务器计算环境的第一多个节点。可以确定无服务器计算环境的第一多个节点与第二多个节点之间的同分布(colocation)测量,并且可以确定第二多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。第二多个节点的子集可以根据以下来排序:(i)同分布测量以及(ii)第二多个节点的子集的可用计算资源。方法可以还包括基于排序从第二多个节点的子集之中选择第一节点,并指派第一节点来执行功能。
在另一实施例中,提供一种包括处理器和存储器的系统。存储器可以存储指令,该指令在由处理器执行时,使得处理器接收在无服务器计算环境中执行功能的请求,标识在功能执行期间使用的存储池,并且标识实现存储池的无服务器计算环境的第一多个节点。可以确定第一多个节点的至少子集的可用计算资源的量。可用计算资源的量包括可用处理核心的数量和可用存储器的容量中的至少一者。可以为功能标识资源约束,并且可以确定第一多个节点的子集中的第一节点具有大于或等于资源约束的可用计算资源。可以指派第一节点来执行功能。
本文描述的特征和优点并不包括全部,特别地,鉴于附图和描述,许多附加的特征和优点对于本领域普通技术人员来说是显而易见的。此外,应注意,说明书中使用的语言主要是出于可读性和指导性的目的而选择的,而不是为了限制所公开主题的范围。
附图说明
图1示出了根据本公开的示例性实施例的用于接收功能并将功能指派给节点以供执行的系统。
图2示出了根据本公开的示例性实施例的存储池映射。
图3A-3B示出了根据本公开的示例性实施例的网络拓扑。
图4-6示出了根据本公开的示例性实施例的用于将无服务器功能指派给节点以供执行的方法。
图7示出了根据本公开的示例性实施例的用于接收和执行无服务器功能的方法。
图8示出了根据本公开的示例性实施例的系统。
具体实施方式
向其他计算系统(例如,通过云计算基础设施)提供计算资源的计算环境(诸如敏捷的计算环境)通常包括具有相关联计算资源的多个计算单元,诸如处理器、存储器、硬盘和/或图形处理单元。计算环境可以将计算单元之中的计算资源提供给请求执行与计算系统相关联的功能的计算系统。为了分配计算资源,计算环境通常依赖于虚拟化。虚拟化计算资源可以抽象出请求计算系统被分配的特定计算单元和/或特定计算硬件或其部分。虚拟化可以允许功能在多件硬件(例如,多个处理器、多个处理器核心、多个存储器)之间被分割。此外,功能也可以在不同计算单元上的计算硬件之间被分割。总的来说,虚拟化可以允许计算环境增加计算单元之中的整体资源利用率,同时还降低请求计算系统的复杂性,请求计算系统不必对为执行功能而分配的特定计算资源进行配置。然而,虚拟化计算资源可能会降低整体功能执行速度。例如,虚拟化计算资源通常可能需要较大比例的计算资源,因为可用于功能执行的计算单元的整体计算资源较少。特别地,计算资源的虚拟化需要一定等级的计算开销来运行和支持虚拟化系统,这降低了计算硬件的整体可用性,并增加了计算单元的计算资源的延时。
为了解决虚拟化计算环境的上述缺点,用于在计算环境中供应计算资源的其他技术包括直接供应计算单元的特定计算硬件或其部分(例如,“可组合的基础设施”)。例如,可以分配处理器的一个或多个核心和/或预定量的存储器来执行特定功能。在此类实现方式中,无服务器计算环境可以接收用于执行的功能。某些无服务器功能(例如,操纵或分析先前存储的数据的功能)可能需要访问存储在特定存储池中的数据。例如,无服务器功能通常可能缺乏传统的文件I/O,和/或可能缺乏对高性能持久文件存储体的访问。因此,无服务器功能可以将数据存储在存储池中,存储池本身可以在计算环境的特定节点上执行。无服务器功能可以在计算环境内的不同节点上执行,并且在此类情况下,无服务器功能与存储池之间的通信速度和带宽可以取决于执行无服务器功能的节点与实现存储池的节点的接近程度而不同。例如,如果无服务器功能和存储池在同一节点上执行,通信速度可能很快,并且可能具有高带宽,从而允许更快地执行无服务器功能。然而,作为另一实施例,如果无服务器功能在不同数据中心(例如,在国家和/或世界的不同部分)的节点上执行,则通信速度可能较慢,并且可能具有低带宽,这可能成为瓶颈并且导致较慢地执行无服务器功能。此外,无服务器功能通常可以快速执行以执行指定的任务,然后可以在完成执行后终止(例如,可以从节点移除)。对于必须访问存储在存储池中的数据的无服务器功能,任何在定位和/或与存储池通信中增加的延时都可能会显著增加无服务器功能的整体执行,这可能会随着无服务器功能被初始化和执行的次数而被扩大。相关地,因为无服务器功能是短暂的,所以针对所需数据的传统优化(如缓存、预取和/或内存持久性)可能不可用,因为无服务器功能在完成执行后会从节点移除。
因此,需要标识实现无服务器功能需要访问的存储池的节点,并且需要标识位于实现存储池的节点附近的节点,以执行无服务器功能。通常,无服务器计算环境可能依赖于专用的应用程序编程接口,该接口标识实现各种存储节点的节点,并向功能本身提供信息。例如,执行MapReduce应用程序的
Figure BDA0002871243790000031
环境通常依赖于文件系统API,该文件系统API向应用程序暴露(expose)存储节点信息,以便在选择节点时使用。然而,此类系统会带来安全风险,因为向应用程序提供存储节点信息可能会使恶意应用程序将攻击目标对准期望的存储池。特别地,在代表多个用户(例如,多个公司和/或客户)执行应用程序的无服务器计算环境中,向应用程序提供存储节点信息可以使由一个用户执行的应用程序能够访问代表另一用户存储的信息。因此,许多此类无服务器计算环境,诸如
Figure BDA0002871243790000041
环境不允许应用程序访问存储池信息或相关API。
这个问题的一个解决方案是在无服务器计算环境本身内提供服务,从而能够确定和分析无服务器计算环境内的节点的网络拓扑,并且能够与监视和指派实现存储池的节点的存储系统进行通信。使用此类系统,当接收到需要特定存储池来执行的功能时,服务可以标识实现存储池的第一组节点。在某些情况下,可以分析第一组节点,以确定第一组节点中的任一者是否具有足够的可用计算资源来执行功能(例如,满足功能的资源约束)。在其他情况下,可以分析第二组节点。例如,可以在第二组节点与第一组节点中最接近的节点之间确定同分布测量。同分布测量可以指示两个节点之间的距离(例如,网络距离)。还可以确定第二组节点的可用计算资源。然后,第二组节点可以基于同分布测量和可用计算资源来排序。然后,可以从第二组节点之中选择第一节点,并且可以指派第一节点来执行功能。
图1示出了根据本公开的示例性实施例的系统100。系统100可以被配置成接收无服务器功能并将无服务器功能指派给节点以供执行。特别地,系统100包括节点102、104、106、108、调度器服务152、调度器服务扩展器138和存储供应系统134。节点102、104、106、108可以被配置成例如代表分布式计算环境(诸如云计算环境或无服务器计算环境)来执行功能。例如,所描绘的节点104、106、108正在执行功能128、130、132,并且节点102、108被描绘为正在执行存储池126。特别地,节点102、104、106、108可以使用分配的计算机硬件来执行功能128、130、132和/或存储池126。例如,节点102、104、106、108包括处理器110、112、114、116和存储器118、120、122、124,它们可以被分配来执行功能128、130、132和/或存储池126(例如,根据可组合的基础设施协议)。
调度器服务152可以被配置成接收功能154并将节点102、104、106、108指派给用于执行的功能154。例如,调度器服务152可以从计算设备(例如,与用户相关联的计算设备)接收功能154,并且可以将功能154指派给节点以供执行(例如,用于由节点的计算资源执行)。功能154可以包括资源约束156,该资源约束指定功能154正确操作所需的一个或多个资源。资源约束156可以包括存储器需求158、处理需求160和存储池需求162中的一者或多者。存储器需求158可以指定正确执行功能154所需的存储器量、所需存储器带宽和存储器速度中的一者或多者。处理需求160可以指定正确执行功能154所需的处理核心数量(例如,两个处理核心)、处理核心类型(例如,两个CPU核心、四个GPU核心)和处理核心速度(例如,至少2.50GHz)中的一者或多者。存储池需求162可以包括功能154需要访问的存储池的标识符和功能154的正确执行所需的存储空间量中的一者或多者。资源约束156可以由从其处接收功能154的计算设备的用户和/或软件处理来创建。在某些实现方式中,资源约束156的全部或部分可以被存储为功能154的元数据(例如,元数据标记和/或标签)的一部分。
存储供应系统134可以被配置成指派节点102、104、106、108来实现存储池126。例如,在节点102、104、106、108上执行的功能128、130、132可以创建和/或更新一个或多个存储池来存储数据(例如,用于功能128、130、132的多个执行的数据)。在将存储池126指派给节点以供执行时,存储供应系统134可以维持存储映射136。存储映射136可以标识哪些节点102、108正在执行不同的存储池。在某些实现方式中,存储映射136还可以指示哪些节点102、108将特定数据项存储在存储池126中(例如,在存储池126的特定分区中)。在某些实现方式中,存储池126可以被实现为可靠自主分布式对象存储(RADOS)池,诸如
Figure BDA0002871243790000051
平台上的存储集群。在此类实现方式中,存储供应系统134可以至少部分地实现为在无服务器计算环境内运行的
Figure BDA0002871243790000052
系统。
调度器服务扩展器138可以被配置成标识调度器服务152可以将功能154指派给其执行的一个或多个节点102、104、106、108。例如,调度器服务扩展器138可以接收全部或部分存储池映射136,并且可以基于存储池映射136和节点102、104、106、108的网络拓扑来确定节点102、104、106、108的同分布测量140、142、144。特别地,调度器服务扩展器138可以基于节点离在网络拓扑内实现存储池126的一个或多个节点102、108有多接近来确定同分布测量140、142、144。调度器服务扩展器138可以附加地确定相关联节点102、108、104的可用资源146、148、150。例如,可用资源146、148、150可以包括可用处理核心、可用存储器容量和/或可用存储空间中的一者或多者。调度器服务扩展器138可以基于同分布测量140、142、144和可用资源146、148、150来推荐一个或多个节点102、104、106、108。例如,调度器服务扩展器138可以基于同分布测量140、142、144和可用资源146、148、150来产生节点102、104、106、108的排序164。例如,调度器服务扩展器138产生排序164,以将具有较高(或较近)的同分布测量140、142、144的节点102、104、106、108排序较高。作为另一实施例,排序164可以被产生为仅包括具有能够满足资源约束156的可用资源146、148、150的节点102、104、106、108。调度器服务扩展器138可以向调度器服务152提供排序164,用于选择执行功能154的节点。附加地或替代地,调度器服务扩展器138可以使用排序164以选择节点102、104、106、108来执行功能154,并且可以向调度器服务152传输所选节点102、104、106、108的指示。
存储供应系统134、调度器服务152和调度器服务扩展器138中的一者或多者可以至少部分地由一个或多个处理器和存储器来实现。例如,存储器可以存储指令,该指令在由处理器执行时,可以使处理器执行存储供应系统134、调度器服务152和/或调度器服务扩展器138的一个或多个操作特征。例如,在某些实现方式中,调度器服务152、调度器服务扩展器138和/或存储供应系统134可以在无服务器计算环境内实现。作为具体实施例,调度器服务152可以被实现为Kubernetes或类似的无服务器计算环境的调度器服务。调度器服务扩展器138可以与调度器服务152结合来执行。例如,调度器服务扩展器138可以作为调度器服务152的软件模块和/或无服务器计算环境的软件模块来执行。在某些情况下,存储供应系统134、调度器服务152和调度器服务扩展器138中的一者或多者可以在计算环境的一个或多个节点内执行(例如,在节点102、104、106、108中的一者或多者上)。
图2示出了根据本公开的示例性实施例的节点202、204、206、208、210、212、214、216到存储池220、222、224、226的存储池映射200。存储池映射200可以是存储池映射136的示例性实现方式。例如,存储池映射200可以表示由存储供应系统134管理的存储系统,以便在一个或多个节点202、204、206、208、210、212、214、216上执行存储池220、222、224、226。存储池220、222、224、226可以是存储池126和节点202、204、206、208、210、212、214、216的示例性实现方式。节点202、204、206、208、210、212、214、216可以在不同的位置。例如,节点202、204、206、208、210、212、214、216中的一者或多者可以位于不同的服务器、不同的服务器机架和/或不同的数据中心,如下文进一步解释。
存储池220、222、224、226可以被配置成在多于一个节点202、204、206、208、210、212、214、216上执行。例如,存储池220、222、224、226可以在多个节点202、204、206、208、210、212、214、216上执行,以提高性能和/或可用性。具体地,如所描绘,存储池220在节点202、204、206、208上执行,存储池222在节点206、208、210上执行,存储池224在节点206、208、210、212上执行,并且存储池226在节点212、214、216上执行。作为另一实施例,并且如下文结合图3A-3B进一步解释,节点202、204、206、208、210、212、214、216可以在不同的服务器、机架上和/或不同的数据中心内执行。在此类情况下,存储池220、222、224、226可以在不同的节点上执行,以提供存储池220、222、224、226的更好的可用性。作为具体实施例,节点202、204可以在第一数据中心内的不同机架上执行,并且节点206、208可以在第二数据中心内的不同机架上执行。在此类情况下,存储池220可以在节点202、204上执行,以提高第一数据中心内不同机架上的节点的可用性(例如,减少访问时间),并且可以在节点206、208上执行,以提高第二数据中心内不同机架上的节点的可用性。作为另一实施例,特定的机架可以完全或主要包括不同类型的处理器。例如,节点212、214可以在仅包括用于执行功能的GPU的机架中执行,而节点216可以在仅包括用于执行功能的CPU的机架中执行。然而,访问存储池226的某些功能可能需要GPU,而访问存储池的其他功能可能需要CPU。在此类情况下,存储池可以在节点212、214、216上执行,使得在任一机架内执行的功能(例如,需要GPU的功能或需要CPU的功能)能够快速地访问存储池。
在某些情况下,当存储池220、222、224、226在一个以上节点202、204、206、208、210、212、214、216上执行时,某些节点202、204、206、208、210、212、214、216可以存储存储池220、222、224、226的不同部分(例如,不同的分区和/或不同的数据项)。例如,存储池220可以包括4个分区(sector),并且节点202可以存储分区1和2,节点204可以存储分区3和4,节点206可以存储分区1和3,以及节点208可以存储分区2和4。在此类情况下,存储池映射200可以存储哪些节点202、204、206、208、210、212、214、216存储了存储池220、222、224、226的各个分区的指示。
此外,某些节点202、204、206、208、210、212、214、216可以执行一个以上的存储池220、222、224、226。例如,节点206、208执行存储池220、222、224,节点210执行存储池222、224,以及节点212执行存储池224、226。存储供应系统134可以跟踪和存储存储池映射200,以便记录哪些节点负责执行各自的存储池220、222、224、226。例如,存储供应系统134可以将存储池映射200存储为存储节点202、204、206、208、210、212、214、216和相应存储池220、222、224、226的标识符的表、阵列或其他数据结构。
图3A-3B示出了根据本公开的示例性实施例的节点的网络拓扑300、390。网络拓扑300、390可以反映无服务器计算环境内的节点的网络架构。例如,网络拓扑300包括组织成多个服务器306、308、310、348、350、352的节点312-330。特别地,节点312-315包含在服务器306内,节点316-319包含在服务器308内,以及节点320-321包含在服务器310内。此外,节点322-324包含在服务器348内,节点325-328包含在服务器350内,以及节点329-330包含在服务器352内。服务器306、308、310、348、350、352还组织成不同的机架302、304。特别地,服务器306、308、310包含在机架302内,以及服务器348、350、352包含在机架304内。机架302、354都包含在数据中心354内,该数据中心可以是位于特定地理位置的设施,其包括多个服务器机架用于存储数据和/或实现分布式计算环境。
节点312包括元数据332和计算资源334。计算资源334包括存储器336、处理器340和存储体344。如上所述,节点312-330可以执行一个以上的功能。执行功能可以利用计算资源334中的一者或多者,诸如处理器340的一个或多个核心、存储器336的特定容量和存储体344的特定量。附加地,可以利用节点312的其他计算资源334来执行其他任务,诸如无服务器计算环境的管理任务。因此,节点312可以具有某一比例的可用计算资源,包括可用存储器338(例如,可用存储器容量)、可用处理器342(例如,可用处理核心)和可用存储体346(例如,可用存储容量)。如上所述,此类可用资源可以被用来确定节点312是否具有足够的计算资源来执行由调度器服务152接收的功能。元数据332可以存储关于节点312的信息。例如,元数据332可以包括节点312的标识符(例如,唯一标识符)。附加地或替代地,元数据332可以指示关于在节点312上执行的功能的信息。例如,元数据332可以包括在节点312上执行的一个或多个功能和/或由节点312先前执行的功能的标识符。在其他实现方式中,元数据332可以存储关于计算资源334的信息,诸如关于可用存储器338、可用处理器342和可用存储体346的信息。尽管未示出,但节点313-330可以类似地包括元数据332和计算资源334。
每一节点312-330可以对应于一件或多件离散的计算硬件。例如,每一节点312可以对应于一个或多个离散的处理器(例如,处理器芯片和/或处理核心)、一个或多个离散的存储器(例如,存储器芯片和/或存储器容量)。与节点312-330相关联的计算资源334可以被组织到服务器306、308、310、348、350、352中并由服务器来实现(例如,根据可组合的基础设施协议)。服务器306、308、310、348、350、352可以被实现为计算系统(例如,机架式计算系统),该计算系统除了其他计算资源(诸如网络接口、输入/输出设备等)之外,还包含用以实现节点312-330的一个或多个处理芯片、存储器芯片、存储设备。服务器306、308、310、348、350、352可以存储在诸如服务器机架的机架302、304内。机架302、304可以包含网络接口(例如,网络交换机),该网络接口在位于机架302、304内的服务器306、308、310、348、350、352两者之间,并且用以在机架302、304之间进行通信。例如,从位于机架302的服务器306内的节点312到位于服务器348内的节点322的通信可以从服务器306的通信接口路由到机架302的网络接口,到机架304的网络接口,并且然后到服务器348的通信接口。
现在转向网络拓扑390,机架302、304可以进一步位于数据中心354内。数据中心354可以是包含多个机架的位于特定位置的建筑物。数据中心354可以包含用于与数据中心354外部的计算设备通信的网络接口(例如,经由因特网)。例如,网络拓扑390还包括包含机架358的数据中心356。机架358包括包含节点366-369的服务器360和包含节点370-371的服务器362。数据中心356可以被配置成类似于数据中心354。例如,数据中心356可以是与数据中心354相同的无服务器计算环境的一部分。然而,数据中心356可以位于不同的位置(例如,在数据中心354、356所在的国家的不同部分,在与数据中心354不同的国家)。因此,数据中心354和数据中心356之间的通信可以经由因特网发生。
图3B还包括在节点318与网络拓扑390内的其他节点之间的不同类型的同分布测量376、378、380、382的指示,这些同分布测量可以是同分布测量140、142、144的示例性实现方式。在某些实现方式中,可以基于节点318与其他节点之间的网络距离来确定同分布测量376、378、380、382。例如,对于经由较快的通信接口连接的节点,网络距离可能较近。作为具体实施例,节点317与节点318位于同一服务器308中。因此,节点317、318之间的通信可以经由服务器308内的内部通信总线发生。节点314与节点318在同一机架302内的不同服务器306上。因此,节点314、318之间的通信可以经由机架302内的内部网络接口(例如,网络服务器306、308、310)发生。内部网络接口可能导致比经由服务器308内的内部通信总线的通信(例如,大约1-10微秒或更快)传输更慢的通信(例如,大约50-100微秒)。因此,节点317、318之间的网络距离可以低于节点314、318之间的网络距离。因此,节点317、318之间的同分布测量378可能优于(例如,高于)节点314、318之间的同分布测量376。节点325与节点318位于同一数据中心354内的不同机架304中。因此,节点318、325之间的通信可以经由数据中心354内的网络接口(例如,数据中心354内的本地网络)发生。经由数据中心354的网络接口的通信(例如,大约1-5毫秒)可能比机架302的内部网络接口(例如,大约50-100微秒)更慢。因此,节点318、325之间的网络距离可以高于节点314、318之间的网络距离。因此,节点318、325之间的同分布测量380可以低于同分布测量376。节点368与节点318位于不同的数据中心356。因此,节点318、368之间的通信可以经由外部网络(例如,因特网)发生。经由外部网络的通信(例如,大约10多毫秒或更多)可能比经由数据中心354内的网络接口的通信更慢。因此,节点318、368之间的网络距离可以高于节点318、325之间的网络距离。因此,节点318、368之间的同分布测量382可能低于同分布测量380。
在某些实现方式中,基于节点314、317、318、325、368之间的相对位置或网络距离,可以将同分布测量376、378、380、382确定为特定的预定义值。例如,可以将同分布测量确定为位于同一服务器308内的节点317、318的第一值、位于同一机架302内的节点314、318的第二值、位于同一数据中心354内的节点318、325的第三值,以及位于不同数据中心354、356内的节点318、368的第四值。在此类实现方式中,第一值可以大于第二值,第二值可以大于第三值,第三值可以大于第四值。作为具体实施例,第一值可以是10,第二值可以是5,第三值可以是2,以及第四值可以是1。在其他实施例中,可以为节点318本身确定同分布测量。例如,节点318的同分布测量可以是大于第一值的第五值(例如,20)。
在上文讨论的实施例中以及在整个本公开中,较高的同分布测量376、378、380、382被认为优于较低的同分布测量376、370、380、382。然而,应理解,在附加或替代的实现方式中,可以确定同分布测量376、370、380、382,使得较低的同分布测量376、370、380、382更优(例如,指示较低的网络距离)。
图4示出了根据本公开的示例性实施例的方法400。可以执行方法400以将无服务器功能指派给节点以供执行。方法400可以在诸如系统100的计算机系统上实现。例如,方法400可以至少部分地由存储供应系统134、调度器服务152和调度器服务扩展器138中的一者或多者来执行。方法400也可以由存储在计算机可读介质上的一组指令来实现,该指令在由处理器执行时,使得计算机系统执行方法400。例如,方法400的全部或部分可以由处理器和存储器实现。尽管下面的实施例是参考图4中所示的流程图来描述的,但是可以使用执行与图4相关联的动作的许多其他方法。例如,一些方框的顺序可以改变,某些方框可以与其他方框组合,一个或多个方框可以重复,并且所描述的一些方框可以是可选的。
方法400可以从接收在无服务器计算环境中执行功能的请求开始(方框402)。例如,调度器服务152可以接收在无服务器计算环境(例如,包括节点102、104、106、108的无服务器计算环境)中执行功能154的请求。在某些实现方式中,请求还可以包括资源约束156。可以标识供功能的执行期间使用的存储池(方框404)。例如,可以标识执行功能154所需的存储池126。在某些实现方式中,可以基于资源约束156来标识存储池126,诸如资源约束156内的存储池需求162。存储池126可以存储功能154的执行所需的数据。例如,可以执行功能154来分析数据(例如,销售数据),以生成报告和/或指标(例如,预定时间段的销售报告和/或销售度量)。存储池126可以存储在功能154被执行时将分析的销售数据。在某些实现方式中,存储池需求162可以标识功能154将访问的特定部分(例如,分区)和/或数据项。
可以从无服务器计算环境内标识实现存储池的第一多个节点(方框406)。例如,可以标识实现存储池126的第一多个节点102、108。存储供应系统134可以基于存储池映射136来标识第一多个节点102、108。例如,存储供应系统134可以接收存储池126的标识符,并且可以将第一多个节点102、108标识为存储池映射136中对应于存储池126的节点。作为具体实施例,在根据Ceph协议实现存储池的情况下,存储供应系统134可以根据存储池的CRUSH映射规则来确定和/或更新存储池映射136。在其他实现方式中,存储供应系统134可以将第一多个节点102、108标识为存储执行功能154所需的数据的节点(例如,实现存储池的包括执行功能所需的数据项的部分或分区的节点)。
可以确定第一多个节点与第二多个节点之间的同分布测量(方框408)。例如,调度器服务扩展器138可以确定第一多个节点102、108与第二多个节点104、106之间的同分布测量140、142、144。如上所述,可以基于第一多个节点102、108与第二多个节点104、106之间的网络距离来确定同分布测量140、142、144。在某些实现方式中,可以在第一多个节点102、108与第二多个节点104、106中的每一者之间确定同分布测量140、142、144。此类实现方式可以导致为第二多个节点104、106中的每一者确定多个位置测量,并且调度器服务扩展器138可以为第二多个节点104、106中的每一者选择最大的同分布测量140、142、144作为相应的同分布测量140、142、144。在附加或替代的实现方式中,可以在第二多个节点104、106与第一多个节点102、108中的最接近节点(例如,来自第一多个节点中的具有最小网络距离的节点)之间确定同分布测量140、142、144。在某些实现方式中,第二多个节点104、106可以被标识为第一多个节点的预定网络距离内的节点104、106。例如,第二多个节点104、106可以被标识为与第一多个节点在同一服务器、同一机架和/或同一数据中心中的节点。在某些实现方式中,第二多个节点可以包括第一多个节点102、108中的一者或多者。在其他实现方式中,第二多个节点可以从无服务器计算环境中的节点中随机选择。
可以确定第二多个节点的至少子集的可用计算资源的量(方框410)。例如,调度器服务扩展器138可以为全部或部分的第二多个节点104、106确定可用资源146、148、150的量。如上所述,调度器服务扩展器138可以基于与第二多个节点104、106的子集相关联的元数据332来确定可用资源146、148、150。在某些实现方式中,调度器服务扩展器138可以为第二多个节点104、106中的每一者确定可用资源146、148、150。在附加或替代的实现方式中,调度器服务扩展器138可以为第二多个节点104、106的子集确定可用资源146、148、150。例如,可以标识第二多个节点的子集以包括具有大于或等于特定阈值的同分布测量和/或具有小于或等于特定阈值的网络距离的节点。
可以根据同分布测量以及第二多个节点的子集的可用计算资源来对第二多个节点的子集进行排序(方框412)。例如,调度器服务扩展器138可以基于同分布测量140、142、144和可用资源146、148、150来生成第二多个节点104、106的子集的排序164。例如,调度器服务扩展器138可以通过基于同分布测量140、142、144最初对第二多个节点104、106的子集进行排序,来生成排序164(例如,使得具有较高同分布测量140、142、144的节点比具有较低同分布测量140、142、144的节点排序更高)。在某些实现方式中,在第二多个节点104、106的子集中的一者或多者具有相同的同分布测量140、142、144的情况下,调度器服务扩展器138可以基于可用资源146、148、150对节点进行进一步排序(例如,使得具有较多可用资源146、148、150的节点比具有较少可用资源146、148、150的节点排序更高)。当基于可用资源146、148、150对节点进行排序时,调度器服务扩展器138可以将特定类型的计算资源优先排序。例如,调度器服务扩展器138可以被配置成最初根据可用处理器342对节点进行排序,并且随后可以根据可用存储器338和/或可用存储体346对节点进行排序。在此类实现方式中,调度器服务扩展器138可以将资源约束156内标识的计算资源优先排序。在其他实现方式中,调度器服务扩展器138可以从第二多个节点的子集中移除可用资源146、148、150少于资源约束156的节点。例如,调度器服务扩展器138可以移除此类节点,然后根据同分布测量140、142、144对节点进行排序。在其他实现方式中,调度器服务扩展器138可以从第二多个节点的子集中移除同分布测量140、142、144大于预定阈值的节点。例如,调度器服务扩展器138可以移除其同分布测量指示此节点位于与第一多个节点不同的数据中心和/或不同的机架内的节点。
可以基于排序从第二多个节点的子集之中选择第一节点(方框414)。例如,调度器服务扩展器138和/或调度器服务152可以基于排序164从第二多个节点104、106的子集之中选择第一节点。特别地,第一节点可以被选择为排序164内排序最高的节点(或排序最高的节点之一)。可以指派第一节点来执行功能(方框416)。例如,调度器服务152可以指派第一节点来执行功能154,并且可以将功能154传输给第一节点以供执行。
通过根据同分布测量140、142、144对节点进行排序和选择,执行方法400允许系统100标识和指派与实现功能154所需的存储池126的节点尽可能接近的节点。如上所述,距离较近的节点相比相隔较远的节点,能够以更快的速度进行通信。因此,方法400可以通过使功能154能够更快地访问和操纵存储在存储池126内的数据来提高功能154的执行速度。此外,通过使跨越较长距离和附加网络接口的不必要的网络通信最小化,方法400可以减少执行期间使用的网络带宽和资源,释放网络资源供其他执行功能使用。此外,通过根据可用资源146、148、150对节点进行排序和选择,方法400可以使调度器服务152能够将功能154指派给具有最多可用资源的节点,从而使得功能154被较快地执行,同时还确保功能154在与实现所需存储池的节点尽可能接近的节点上被执行。
图5示出了根据本公开的示例性实施例的方法500。可以执行方法500以将无服务器功能指派给节点以供执行。方法500可以在诸如系统100的计算机系统上实现。例如,方法500可以至少部分地由存储供应系统134、调度器服务152和调度器服务扩展器138中的一者或多者来执行。方法500也可以由存储在计算机可读介质上的一组指令来实现,该指令在由处理器执行时,使得计算机系统执行方法500。例如,方法500的全部或部分可以由处理器和存储器实现。尽管下面的实施例是参考图5中所示的流程图来描述的,但是可以使用执行与图5相关联的动作的许多其他方法。例如,一些方框的顺序可以改变,某些方框可以与其他方框组合,一个或多个方框可以重复,并且所描述的一些方框可以是可选的。
方法500可以从接收在无服务器计算环境中执行功能的请求开始(方框502)。可以标识供功能的执行期间使用的存储池(方框504)。可以标识实现存储池的无服务器计算环境的第一多个节点(方框506)。此外,可以标识第一多个节点的至少子集的可用计算资源的量(方框508)。方框502、504、506、508可以分别使用类似于上文结合方框402、404、406、410讨论的那些技术来实现。
然后可以为功能标识资源约束(方框510)。例如,资源约束156可以被包含在包括由调度器服务152接收的功能154的请求中。如上文论述,资源约束156可以包括存储器需求158和处理需求160中的一者或多者。
可以确定第一多个节点的子集中的第一节点具有能够满足资源约束的可用计算资源(方框512)。例如,调度器服务扩展器138可以将资源约束156与第一多个节点102、108的可用资源146、148、150进行比较。特别地,可用资源146、148、150可以指定可用存储器338和/或可用处理器342,调度器服务扩展器138可以分别将可用存储器和/或可用处理器与存储器需求158和/或处理需求160进行比较。在执行此类比较时,调度器服务扩展器138可以确定第一节点102具有能够满足存储器需求158和/或处理需求160的可用资源146。例如,调度器服务扩展器138可以确定可用存储器338大于或等于存储器需求158,以及可用处理器342大于或等于处理需求160。在某些情况下,调度器服务扩展器138可以确定第一多个节点102、108的子集中的一者以上具有能够满足资源约束156的可用资源146、148、150。在此类情况下,调度器服务扩展器138可以将第一节点标识为具有最大可用资源146、148、150的节点,和/或可以从具有足够可用资源146、148、150的节点中随机选择第一节点。然后,第一节点可以被指派来执行功能(方框514)。例如,第一节点104可以被指派来执行功能154,并且可以将功能154传输给第一节点来执行。
然而,在某些情况下,第一多个节点中没有节点可以具有足够的可用资源来满足资源约束。在此类情况下,可能需要考虑附加的节点。例如,在此类情况下,处理可以前进到方法400的方框408,以便标识和分析节点的第二子集。作为另一实施例,图6示出了根据本公开的示例性实施例的方法600,可以执行该方法以标识实现所需存储池的第一多个节点之外的满足资源约束的节点。方法600可以在诸如系统100的计算机系统上实现。例如,方法600可以至少部分地由存储供应系统134、调度器服务152和调度器服务扩展器138中的一者或多者来执行。方法600也可以由存储在计算机可读介质上的一组指令来实现,该指令在由处理器执行时,使得计算机系统执行方法600。例如,方法600的全部或部分可以由处理器和存储器实现。尽管下面的实施例是参考图6中所示的流程图来描述的,但是可以使用执行与图6相关联的动作的许多其他方法。例如,一些方框的顺序可以改变,某些方框可以与其他方框组合,一个或多个方框可以重复,并且所描述的一些方框可以是可选的。
方法600可以在方法500的方框510处标识资源约束之后开始。特别地,方法600可以从确定第一多个节点的第一子集没有一个具有能够满足资源约束的可用计算资源开始(方框602)。例如,调度器服务扩展器138可以确定实现存储池126的第一多个节点102、108中没有一个具有足够的可用资源146、148、150来满足资源约束156。特别地,如上所述,调度器服务扩展器138可以将可用存储器338和/或可用处理器342与存储器需求158和/或处理需求160进行比较。调度器服务扩展器138可以确定没有节点具有大于或等于存储器需求158和/或处理需求160的可用存储器338和/或可用处理器342。
然后,可以标识位于无服务器计算环境的网络拓扑内的第一多个节点中的至少一者附近的第二多个节点(方框604)。例如,调度器服务扩展器138可以根据例如网络拓扑300、390,来标识位于第一多个节点102、108附近的第二多个节点104、106。在某些实现方式中,第二多个节点可以被标识为与第一多个节点中的至少一者位于同一服务器内的节点。例如,在网络拓扑390中,如果第一多个节点包括节点318,则第二多个节点可以被标识为包括节点316、317、319。在其他实现方式中,第二多个节点可以通过随机标识无服务器计算环境内的节点的子集来确定。然后可以在节点的子集与第一多个节点之间确定同分布测量,并且第二多个节点可以被标识为来自同分布测量大于预定阈值的节点的子集中的节点。
然后,可以确定第二多个节点的至少子集的可用计算资源的量(方框606)。例如,调度器服务扩展器138可以使用类似于上文结合方框410、508讨论的那些技术来确定第二多个节点316、317、319的全部或部分的可用计算资源的量。然后,可以确定第二多个节点的子集中的第二节点具有能够满足资源约束的可用计算资源(方框608)。例如,调度器服务扩展器138可以确定第二多个节点中的至少一者的可用存储器338和/或可用处理器342大于或等于存储器需求158和/或处理需求160。然后,具有较高可用存储器338和/或可用处理器342的节点可以被标识为第二节点。在某些情况下,其中调度器服务扩展器138可以确定第二多个节点316、317、319的子集中的一者以上具有能够满足资源约束156的可用资源。在此类情况下,调度器服务扩展器138可以将第二节点标识为具有最大可用资源的节点,和/或可以从具有足够可用资源的节点中随机选择第二节点。然后,可以指派第二节点来执行功能(方框610)。例如,可以指派第二节点来执行功能154,并且调度器服务156可以将功能154传输给第二节点来执行。
在其他情况下,在方框608,第二多个节点中没有一个可以具有能够满足资源约束的可用计算资源。在此类情况下,调度器服务扩展器138可以重复方框604、606来标识第三多个节点。特别地,第三多个节点可以被标识为与第一多个节点具有较大网络距离的节点。例如,第三多个节点可以被标识为与第一多个节点中的至少一者在同一机架内的节点。作为具体实施例,在第一多个节点包括节点318的情况下,第三多个节点可以被标识为包括节点312、313、314、315、320、321。在其他实现方式中,第三多个节点中没有一个可以具有足够的可用计算资源来满足资源约束156。因此,调度器服务扩展器138可以重复方框604、606,以将位于同一数据中心内的第四多个节点标识为第一多个节点中的至少一者。在其他情况下(例如,在第四多个节点中没有一个具有足够的可用资源来满足资源约束156的情况下),调度器服务扩展器138可以重复方框604、606,以将位于不同数据中心内的第五多个节点标识为第一多个节点中的至少一者。在某些实现方式中,可以省略这些步骤中的一者或多者。例如,在某些实现方式中,第二多个节点可以被标识为包括与第一多个节点中的至少一者在同一机架302内的节点。作为另一实施例,在某些实现方式中,第三多个节点可以被标识为包括与第一多个节点中的至少一者位于同一数据中心内的节点。
通过将节点的可用计算资源与接收到的功能所包括的资源约束进行比较,方法500、600可以确保功能被指派给具有足够计算资源的节点以正确执行功能。此外,通过最初分析实现所需存储池的节点,并逐步将考虑扩展到其他更多节点,方法500、600确保具有足够可用计算资源的最接近的可能节点被标识并被指派来执行接收的功能。如上所述,在位于实现所需存储池的一个或多个节点附近的节点中执行功能增加了网络带宽,从而使执行速度提高和/或接收的功能的网络带宽使用降低。
图7示出了根据本公开的示例性实施例的方法700。可以执行方法700来接收和执行无服务器功能。方法700可以在诸如系统100的计算机系统上实现。例如,方法700包括调度器服务702、调度器服务扩展器、存储供应系统706和节点708、710,它们可以分别是调度器服务152、调度器服务扩展器138、存储供应系统134和节点708、710的示例性实现方式。方法700也可以由存储在计算机可读介质上的一组指令来实现,该指令在由处理器执行时,使得计算机系统执行方法700。例如,方法700的全部或部分可以由调度器服务702、调度器服务扩展器704、存储供应系统706和/或节点708、710的处理器和存储器来实现。尽管下面的实施例是参考图7中所示的流程图来描述的,但是可以使用执行与图7相关联的动作的许多其他方法。例如,一些方框的顺序可以改变,某些方框可以与其他方框组合,一个或多个方框可以重复,并且所描述的一些方框可以是可选的。
方法700可以从调度器服务702接收功能开始(方框720)。功能可以从另一计算设备接收,诸如与包括调度器服务702的无服务器计算环境的用户和/或客户相关联的计算设备。功能可以作为包括资源约束的请求的一部分来接收,诸如指定存储器需求、处理需求和/或存储池需求的资源约束。
调度器服务扩展器704可以标识相应的存储池(方框722)。例如,调度器服务扩展器704可以接收包括功能的全部或部分请求。作为具体实施例,调度器服务扩展器704可以从请求接收存储池需求,其可以包括正确执行功能所需的存储池的标识符,并且调度器服务扩展器704可以基于标识符来标识相应的存储池。例如,功能可以执行以将一个或多个数据项的副本从存储池传输到另一计算设备(例如,同步跨多个计算系统存储的数据)。因此,功能可能需要访问存储池,以便检索和传输数据项的副本。如上所述,存储池需求因此可以指示存储池和/或所需的数据项。
调度器服务扩展器704可以请求实现存储池的节点(方框724)。例如,调度器服务扩展器可以从存储供应系统请求实现由存储池需求标识的存储池的节点的标识符。特别地,调度器服务扩展器可以将存储池的标识符传输到存储供应系统706。存储供应系统706可以标识节点(方框726),并将节点的标识符传输到调度器服务扩展器704(方框728)。例如,存储供应系统706可以存储指示哪些节点在无服务器计算环境内实现各种存储池(例如,由存储供应系统706初始化和/或维护的存储池)的存储池映射。在方框726,存储供应系统706可以通过在存储池映射内确定哪些节点对应于所需的存储池来标识节点。在某些实现方式中,存储池映射可以指示哪些节点实现存储在存储池内的特定分区和/或数据项。在此类情况下,在存储池需求标识所需的分区和/或数据项的情况下,存储供应系统706可以标识在存储池映射内实现所需分区和/或数据项的节点。存储供应系统706然后可以将实现存储池的节点的指示传输到调度器服务扩展器。作为实施例,基于存储池映射,存储供应系统706可以确定节点708、710正在实现功能所需的存储池。特别地,节点708、710可以实现存储要由功能复制和传输的数据项的一个或多个分区。因此,存储供应系统706可以将节点708、710的指示传输到调度器服务扩展器704。
调度器服务扩展器704可以为实现存储池的节点请求可用计算资源(方框730)。特别地,调度器服务扩展器704可以将针对可用计算资源(例如,可用存储器、可用处理器和/或可用存储空间)的请求传输到存储供应系统706所标识的节点708、710。响应于请求,节点708、710可以确定它们的可用计算资源(方框732、736),并且可以将它们的可用计算资源的指示传输到调度器服务扩展器704(方框734、738)。例如,节点708、710可以在存储在节点708、710上的元数据中维护关于可用计算资源的信息。在此类情况下,节点708、710可以将全部或部分元数据传输到调度器服务扩展器704,以指示可用计算资源。在其他情况下,节点708、710可以查询例如系统控制器来确定可用计算资源,并且可以将查询的全部或部分结果传输到调度器服务扩展器704。在其他实现方式中,关于可用资源的信息可以由例如调度器服务702、调度器服务扩展器704和/或无服务器计算环境的另一组件或服务来维护。在此类情况下,调度器服务扩展器704可以向存储信息的组件或服务请求关于可用计算资源的信息。
调度器服务扩展器704可以从节点708、710接收可用计算资源(方框740)。调度器服务扩展器704然后可以从实现存储池的节点708、710中标识第一节点(方框742)。例如,调度器服务扩展器704可以分析可用计算资源,以确定节点708、710中的任一者是否具有能够满足功能的资源约束的可用计算资源。作为具体实施例,资源约束可以指定功能需要1个处理核心、100MB的存储器和1GB的存储空间。节点708的可用计算资源可以指示节点708具有2个可用处理核心、300MB的存储器和10GB空闲存储空间。节点710的可用计算资源可以指示节点710具有1个可用处理核心、50MB的可用存储器和500MB的空闲存储空间。调度器服务扩展器因此可以确定节点710不具有能够满足资源约束的可用计算资源,因为节点710仅具有50MB的可用存储器和500MB的空闲存储空间,而功能需要100MB的存储器和1GB的存储空间。另一方面,调度器服务扩展器704可以确定节点708具有能够满足资源约束的可用计算资源,因为节点708的可用计算资源大于资源约束所需的资源。
调度器服务扩展器704可以将第一节点708的标识符传输到调度器服务702,调度器服务可以将功能传输到第一节点708(方框744)。第一节点708可以接收并执行功能(方框746)。
如上文结合方法600进一步解释,如果实现存储池的节点708、710中没有一个具有能够满足资源约束的可用计算资源,则调度器服务扩展器704可以标识附加的节点(例如,与节点708、710位于同一机架、服务器和/或数据中心的节点)。然后,调度器服务扩展器可以请求并分析附加的节点的可用计算资源,以确定附加的节点中的任一者是否具有能够满足资源约束的可用计算资源。
图8示出了根据本公开的示例性实施例的系统800。系统800包括处理器802和存储器804。存储器804存储指令806,该指令在由处理器802执行时,使得处理器802接收在无服务器计算环境812中执行功能810的请求808。存储池814可以被标识为在功能810的执行期间使用,并且无服务器计算环境812的第一多个节点816、818可以被标识为实现存储池814。可以为第一多个节点816、818的至少子集确定可用计算资源820、822的量。可用计算资源820、722的量包括可用处理核心824、828的数量和可用存储器826、830的容量中的至少一者。可以为功能810标识资源约束832。还可以确定第一多个节点816、818的子集中的第一节点816具有大于或等于资源约束832的可用计算资源820,并且第一节点816可以被指派来执行功能810。
本文描述的主题的各方面可以单独使用或者与本文描述的一个或多个方面结合使用。在第一方面,提供一种方法,该方法包括接收在无服务器计算环境中执行功能的请求,以及标识供功能的执行期间使用的存储池。可以标识实现存储池的无服务器计算环境的第一多个节点。可以确定无服务器计算环境的第一多个节点与第二多个节点之间的同分布测量,并且可以确定第二多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。第二多个节点的子集可以根据(i)同分布测量以及(ii)第二多个节点的子集的可用计算资源来排序。方法可以还包括基于排序从第二多个节点的子集之中选择第一节点,并指派第一节点来执行功能。
在根据任何前述方面(例如,第一方面)的第二方面,存储池是由无服务器计算环境的存储供应系统实现的多个存储池之一。存储供应系统可以被配置成指派无服务器计算环境的节点来实现多个存储池。
在根据任何前述方面(例如,第二方面)的第三方面中,标识第一多个节点还包括将存储池的标识符传输到存储供应系统,以及从存储供应系统接收第一多个节点的标识符。
在根据任何前述方面(例如,第一方面)的第四方面中,确定同分布测量包括以下各项中的至少一者:(i)为位于共同服务器机器中的节点确定第一同分布测量,(ii)为位于共同服务器机架中的节点确定第二同分布测量,(iii)为位于共同数据中心设施中的节点确定第三同分布测量,以及(iv)为位于不同数据中心设施中的节点确定第四同分布测量。第一同分布测量可以小于第二同分布测量,第二同分布测量可以小于第三同分布测量,并且第三同分布测量可以小于第四同分布测量。
在根据任何前述方面(例如,第一方面)的第五方面中,对第二多个节点的至少子集进行排序还包括移除第二多个节点的子集中的具有大于预定值的同分布测量的节点。
在根据任何前述方面(例如,第五方面)的第六方面中,预定值是第一值。对第二多个节点的至少子集进行排序可以还包括,在移除节点之前,确定第二多个节点的子集中的所有节点具有大于或等于第一值的同分布测量,并且将预定值从第一值增加到大于第一值的第二值。
在根据任何前述方面(例如,第一方面)的第七方面中,请求指定功能的资源约束。对第二多个节点的至少子集进行排序可以包括移除第二多个节点的子集中的具有低于资源约束的可用计算资源的节点。
在根据任何前述方面(例如,第七方面)的第八方面中,选择第一节点包括选择第二多个节点的子集中的具有最低同分布测量且具有大于或等于资源约束的可用计算资源的第一节点。
在根据任何前述方面(例如,第八方面)的第九方面中,多个节点中的至少两个节点具有最低同分布测量以及大于或等于资源约束的可用计算资源。第一节点可以被选择为至少两个节点中的具有最大量可用计算资源的节点。
在根据任何前述方面(例如,第七方面)的第十方面中,方法还包括,在确定同分布测量之前,确定第一多个节点的至少子集的可用计算资源的量,并且确定第一多个节点的子集中没有一个具有足以满足资源约束的可用计算资源。同分布测量可以响应于确定第一多个节点的子集中没有一个具有足以满足资源约束的可用计算资源而被确定。
在根据任何前述方面(例如,第一方面)的第十一方面中,存储池基于与请求和功能中的至少一者相关联的元数据而被标识。
在第十二方面,提供了一种包括处理器和存储器的系统。存储器可以存储指令,该指令在由处理器执行时,使得处理器接收在无服务器计算环境中执行功能的请求,标识供功能的执行期间使用的存储池,并且标识实现存储池的无服务器计算环境的第一多个节点。可以确定无服务器计算环境的第一多个节点与第二多个节点之间的同分布测量,并且可以确定第二多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。第二多个节点的子集可以根据(i)同分布测量以及(ii)第二多个节点的子集的可用计算资源来排序。可以基于排序来从第二多个节点的子集之中选择第一节点,并且可以指派第一节点来执行功能。
在根据任何前述方面(例如,第十二方面)的第十三方面中,存储池是由无服务器计算环境的存储供应系统实现的多个存储池之一,存储供应系统被配置成指派无服务器计算环境的节点来实现多个存储池。
在根据任何前述方面(例如,第十三方面)的第十四方面中,标识第一多个节点还包括将存储池的标识符传输到存储供应系统,以及从存储供应系统接收第一多个节点的标识符。
在根据任何前述方面(例如,第十二方面)的第十五方面中,确定同分布测量包括以下各项中的至少一者:(i)为位于共同服务器机器中的节点确定第一同分布测量,(ii)为位于共同服务器机架中的节点确定第二同分布测量,(iii)为位于共同数据中心设施中的节点确定第三同分布测量,以及(iv)为位于不同数据中心设施中的节点确定第四同分布测量,并且其中,第一同分布测量小于第二同分布测量,第二同分布测量小于第三同分布测量,并且第三同分布测量小于第四同分布测量。
在根据任何前述方面(例如,第十二方面)的第十六方面中,对第二多个节点的至少子集进行排序还包括移除第二多个节点的子集中的具有大于预定值的同分布测量的节点。
在根据任何先前方面(例如,第十六方面)的第十七方面中,预定值是第一值,并且对第二多个节点的至少子集进行排序还包括,在移除节点之前,确定第二多个节点的子集中的所有节点具有大于或等于第一值的同分布测量,并且将预定值从第一值增加到大于第一值的第二值。
在根据任何前述方面(例如,第十二方面)的第十八方面中,请求指定功能的资源约束,并且对第二多个节点的至少子集进行排序包括移除第二多个节点的子集中的可用计算资源低于资源约束的节点。
在根据任何前述方面(例如,第十八方面)的第十九方面中,选择第一节点包括选择第二多个节点的子集中的具有最低同分布测量且具有大于或等于资源约束的可用计算资源的第一节点
在根据任何前述方面(例如,第十九方面)的第二十方面中,多个节点中的至少两个节点具有最低同分布测量以及大于或等于资源约束的可用计算资源。第一节点可以被选择为至少两个节点中的具有最大量可用计算资源的节点。
在根据任何前述方面(例如,第十八方面)的第二十一方面中,存储器存储其他指令,在确定同分布测量之前,该其他指令在由处理器执行时,使得处理器确定第一多个节点的至少子集的可用计算资源的量,并且确定第一多个节点的子集中没有一个具有足以满足资源约束的可用计算资源。同分布测量可以响应于确定第一多个节点的子集中没有一个具有足以满足资源约束的可用计算资源而被确定。
在根据任何前述方面(例如,第十二方面)的第二十二方面中,存储池基于与请求和功能中的至少一者相关联的元数据而被标识。
在第二十三方面,一种存储指令的非暂时性计算机可读介质,在该指令由处理器执行时,使得处理器接收在无服务器计算环境中执行功能的请求,以及标识供功能的执行期间使用的存储池。可以标识实现存储池的无服务器计算环境的第一多个节点,并且可以在无服务器计算环境的第一多个节点与第二多个节点之间确定同分布测量。可以确定第二多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。第二多个节点的子集可以根据(i)同分布测量以及(ii)第二多个节点的子集的可用计算资源来排序。可以基于排序来从第二多个节点的子集中选择第一节点并且可以指派第一节点来执行功能。
在第二十四方面,提供一种系统,该系统包括功能指派部件,功能指派部件被配置成接收在无服务器计算环境中执行功能的请求。系统还可以包括存储供应部件,存储供应部件被配置成标识供功能的执行期间使用的存储池,以及标识实现存储池的无服务器计算环境的第一多个节点。功能指派部件可以还被配置成确定无服务器计算环境的第一多个节点与第二多个节点之间的同分布测量,以及确定第二多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。功能指派部件可以还被配置成根据(i)同分布测量以及(ii)第二多个节点的子集的可用计算资源来对第二多个节点的子集进行排序,基于排序从第二多个节点的子集之中选择第一节点,并指派第一节点来执行功能。
在第二十五方面,提供一种方法,该方法包括接收在无服务器计算环境中执行功能的请求,以及标识供功能的执行期间使用的存储池。可以标识无服务器计算环境的实现存储池的第一多个节点,并且可以确定第一多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。可以为功能标识资源约束,并且可以标识第一多个节点的子集的具有大于或等于资源约束的可用计算资源的第一节点,并且可以指派第一节点来执行功能。
在根据任何前述方面(例如,第二十五方面)的第二十六方面中,存储池是多个存储池中的一者。多个存储池中的每一者都可以由无服务器计算环境的节点子集来实现,节点子集可以包括第一多个节点。
在根据任何前述方面(例如,第二十六方面)的第二十七方面中,实现多个存储池中的每一者的节点子集可以由存储供应系统指派。标识第一多个节点可以包括将存储池的标识符传输到存储供应系统,并接收第一多个节点的标识符。
在根据任何前述方面(例如,第二十五方面)的第二十八方面中,方法还包括确定第一多个节点的所有子集具有小于资源约束的可用计算资源,以及确定无服务器计算环境的第一多个节点与第二多个节点之间的同分布测量。第二多个节点的至少子集可以被标识为具有小于预定阈值的同分布测量,并且可以确定第二多个节点的至少子集的可用计算资源的量。方法可以还包括确定第二多个节点的子集中的第二节点具有大于或等于资源约束的可用计算资源,并指派第二节点来执行功能。
在根据任何前述方面(例如,第二十八方面)的第二十九方面中,第二多个节点的至少子集中的每一者位于与第一多个节点中的至少一者相同的服务器以及与第一多个节点中的至少一者相同的服务器机架中的至少一者中。
在根据任何前述方面(例如,第二十五方面)的第三十方面中,请求包括功能的资源约束。
在根据任何前述方面(例如,第二十五方面)的第三十一方面中,确定第一多个节点的子集中的第一节点具有大于或等于资源约束的可用计算资源包括确定第一多个节点的至少两个节点具有大于或等于资源约束的可用计算资源。第一节点在至少两个节点中的具有最大量的可用计算资源。
在根据任何前述方面(例如,第二十五方面)的第三十二方面中,存储池基于与请求和功能中的至少一者相关联的元数据而被标识。
在第三十三方面,提供一种包括处理器和存储器的系统。存储器可以存储指令,该指令在由处理器执行时,使得处理器接收在无服务器计算环境中执行功能的请求,标识供功能的执行期间使用的存储池,并且标识实现存储池的无服务器计算环境的第一多个节点。可以确定第一多个节点的至少子集的可用计算资源的量。可用计算资源的量包括可用处理核心的数量和可用存储器的容量中的至少一者。可以为功能标识资源约束,并且可以确定第一多个节点的子集中的第一节点具有大于或等于资源约束的可用计算资源。可以指派第一节点来执行功能。
在根据任何前述方面(例如,第三十三方面)的第三十四方面中,存储池是多个存储池中的一者。多个存储池中的每一者都由无服务器计算环境的节点子集来实现,并且无服务器计算环境的节点可以包括第一多个节点。
在根据任何前述方面(例如,第三十四方面)的第三十五方面中,实现多个存储池中的每一者的节点子集由存储供应系统指派。标识第一多个节点可以包括将存储池的标识符传输到存储供应系统,并接收第一多个节点的标识符。
在根据任何前述方面(例如,第三十三方面)的第三十六方面中,存储器存储其他指令,该其他指令在由处理器执行时,使得处理器确定第一多个节点的所有子集具有小于资源约束的可用计算资源,以及确定无服务器计算环境的第一多个节点与第二多个节点之间的同分布测量。第二多个节点的至少子集可以被标识为具有小于预定阈值的同分布测量,并且可以确定第二多个节点的至少子集的可用计算资源的量。可以确定第二多个节点的子集中的第二节点具有大于或等于资源约束的可用计算资源,并且第二节点可以被指派来执行功能。
在根据任何前述方面(例如,第三十六方面)的第三十七方面中,第二多个节点的至少子集中的每一者位于与第一多个节点中的至少一者相同的服务器以及与第一多个节点中的至少一者相同的服务器机架中的至少一者中。
在根据任何前述方面(例如,第三十三方面)的第三十八方面中,请求包括功能的资源约束。
在根据任何前述方面(例如,第三十三方面)的第三十九方面中,确定第一多个节点的子集中的第一节点具有大于或等于资源约束的可用计算资源包括确定第一多个节点的至少两个节点具有大于或等于资源约束的可用计算资源。第一节点在至少两个节点中的具有最大量的可用计算资源。
在根据任何前述方面(例如,第三十三方面)的第四十方面中,存储池基于与请求和功能中的至少一者相关联的元数据而被标识。
在第四十一方面中,一种存储指令的非暂时性计算机可读介质,该指令在由处理器执行时,使得处理器接收在无服务器计算环境中执行功能的请求,标识供功能的执行期间使用的存储池,并且标识实现存储池的无服务器计算环境的第一多个节点。可以确定第一多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。可以为功能标识资源约束,并且可以确定第一多个节点的子集中的第一节点具有大于或等于资源约束的可用计算资源。可以指派第一节点来执行功能。
在第四十二方面,提供一种系统,该系统包括功能指派部件,功能指派部件被配置成接收在无服务器计算环境中执行功能的请求。系统可以还包括存储供应部件,存储供应部件被配置成标识供功能的执行期间使用的存储池,以及标识实现存储池的无服务器计算环境的第一多个节点。功能指派部件还被配置成确定第一多个节点的至少子集的可用计算资源的量。可用计算资源的量可以包括可用处理核心的数量和可用存储器的容量中的至少一者。功能指派部件可以还被配置成标识功能的资源约束,确定第一多个节点的子集中的第一节点具有大于或等于资源约束的可用计算资源,并且指派第一节点来执行功能。
本公开中描述的所有公开的方法和过程可以使用一个或多个计算机程序或组件来实现。这些组件可以作为任何常规计算机可读介质或机器可读介质上的一系列计算机指令来提供,包括易失性和非易失性存储器,诸如RAM、ROM、快闪存储器、磁盘或光盘、光学存储器或其他存储介质。指令可以作为软件或固件来提供,并且可以全部或部分地在硬件组件中实现,诸如ASIC、FPGA、DSP或任何其他类似的设备。指令可以被配置成由一个或多个处理器执行,当执行系列计算机指令时,处理器执行或促进所公开的方法和程序的全部或部分的执行。
应理解,对本文描述的实施例的各种改变和修改对于本领域技术人员来说是显而易见的。在不脱离本主题的精神和范围并且不减少其预期优点的情况下,可以进行此类改变和修改。因此,预期所附权利要求涵盖了此类改变和修改。

Claims (20)

1.一种方法,其包含:
接收在无服务器计算环境中执行功能的请求;
标识供所述功能的执行期间使用的存储池;
标识实现所述存储池的所述无服务器计算环境的第一多个节点;
确定所述无服务器计算环境的所述第一多个节点与第二多个节点之间的同分布测量;
确定所述第二多个节点的至少子集的可用计算资源的量,所述可用计算资源的量包括可用处理核心的数量和可用存储器的容量中的至少一者;
根据(i)所述同分布测量以及(ii)所述第二多个节点的子集的所述可用计算资源,对所述第二多个节点的子集进行排序;
基于所述排序,从所述第二多个节点的子集之中选择第一节点;以及
指派所述第一节点来执行所述功能。
2.根据权利要求1所述的方法,其中,所述存储池是由所述无服务器计算环境的存储供应系统实现的多个存储池之一,所述存储供应系统被配置成指派所述无服务器计算环境的节点来实现所述多个存储池。
3.根据权利要求2所述的方法,其中,标识所述第一多个节点还包含:
将所述存储池的标识符传输到所述存储供应系统;以及
从所述存储供应系统接收所述第一多个节点的标识符。
4.根据权利要求1所述的方法,其中,确定所述同分布测量包括以下各项中的至少一者:(i)为位于共同服务器中的节点确定第一同分布测量,(ii)为位于共同服务器机架中的节点确定第二同分布测量,(iii)为位于共同数据中心中的节点确定第三同分布测量,以及(iv)为位于不同数据中心中的节点确定第四同分布测量,并且其中,所述第一同分布测量小于所述第二同分布测量,所述第二同分布测量小于所述第三同分布测量,并且所述第三同分布测量小于所述第四同分布测量。
5.根据权利要求1所述的方法,其中,对所述第二多个节点的至少子集进行排序还包含移除所述第二多个节点的子集中的具有大于预定值的同分布测量的节点。
6.根据权利要求5所述的方法,其中,所述预定值是第一值,并且其中,对所述第二多个节点的至少子集进行排序还包含,在移除节点之前:
确定所述第二多个节点的子集中的所有节点都具有大于或等于所述第一值的同分布测量;以及
将所述预定值从所述第一值增加到大于所述第一值的第二值。
7.根据权利要求1所述的方法,其中,所述请求指定所述功能的资源约束,并且其中,对所述第二多个节点的至少子集进行排序包括移除所述第二多个节点的子集中的可用计算资源低于所述资源约束的节点。
8.根据权利要求7所述的方法,其中,选择所述第一节点包括选择所述第二多个节点的子集中的具有最低同分布测量且具有大于或等于所述资源约束的可用计算资源的所述第一节点。
9.根据权利要求8所述的方法,其中,所述第二多个节点的至少两个节点具有最低同分布测量以及大于或等于所述资源约束的可用计算资源,并且其中,所述第一节点被选择为所述至少两个节点中的具有最大量可用计算资源的节点。
10.根据权利要求7所述的方法,还包含,在确定所述同分布测量之前:
确定所述第一多个节点的至少子集的可用计算资源的量;以及
确定所述第一多个节点的子集中没有一个具有足以满足所述资源约束的可用计算资源,
其中,响应于确定所述第一多个节点的子集中没有一个具有足以满足所述资源约束的可用计算资源,所述同分布测量被确定。
11.根据权利要求1所述的方法,其中,所述存储池基于与所述请求和所述功能中的至少一者相关联的元数据而被标识。
12.一种系统,其包含:
处理器;以及
存储指令的存储器,所述指令在由所述处理器执行时,使得所述处理器:
接收在无服务器计算环境中执行功能的请求;
标识供所述功能的执行期间使用的存储池;
标识实现所述存储池的所述无服务器计算环境的第一多个节点;
确定所述第一多个节点的至少子集的可用计算资源的量,所述可用计算资源的量包括可用处理核心的数量和可用存储器的容量中的至少一者;
标识所述功能的资源约束;
确定所述第一多个节点的子集中的第一节点具有大于或等于所述资源约束的可用计算资源;以及
指派所述第一节点来执行所述功能。
13.根据权利要求12所述的系统,其中,所述存储池是多个存储池之一,其中,所述多个存储池中的每一者都由所述无服务器计算环境的节点的子集来实现,所述无服务器计算环境的所述节点包括所述第一多个节点。
14.根据权利要求13所述的系统,其中,实现所述多个存储池中的每一者的节点的所述子集由存储供应系统来指派,并且其中,标识所述第一多个节点包含:
将所述存储池的标识符传输到所述存储供应系统;以及
接收所述第一多个节点的标识符。
15.根据权利要求12所述的系统,其中,所述存储器存储其他指令,所述其他指令在由所述处理器执行时,使得所述处理器:
确定所述第一多个节点的子集全部具有小于所述资源约束的可用计算资源;
确定所述无服务器计算环境的所述第一多个节点与第二多个节点之间的同分布测量;
标识所述第二多个节点中同分布测量小于预定阈值的至少子集;
确定所述第二多个节点的至少子集的可用计算资源的量;
确定所述第二多个节点的子集中的第二节点具有大于或等于所述资源约束的可用计算资源;以及
指派所述第二节点来执行所述功能。
16.根据权利要求15所述的系统,其中,所述第二多个节点的至少子集中的每一者位于与所述第一多个节点中的至少一者相同的服务器以及与所述第一多个节点中的至少一者相同的服务器机架中的至少一者中。
17.根据权利要求12所述的系统,其中,所述请求包括所述功能的所述资源约束。
18.根据权利要求12所述的系统,其中,确定所述第一多个节点的子集中的所述第一节点具有大于或等于所述资源约束的可用计算资源包含确定所述第一多个节点的至少两个节点具有大于或等于所述资源约束的可用计算资源,并且其中,所述第一节点在所述至少两个节点之中具有最大量的可用计算资源。
19.根据权利要求12所述的系统,其中,所述存储池基于与所述请求和所述功能中的至少一者相关联的元数据而被标识。
20.一种存储指令的非暂时性计算机可读介质,所述指令在由处理器执行时,使得所述处理器:
接收在无服务器计算环境中执行功能的请求;
标识供所述功能的执行期间使用的存储池;
标识实现所述存储池的所述无服务器计算环境的第一多个节点;
确定所述第一多个节点的至少子集的可用计算资源的量,所述可用计算资源的量包括可用处理核心的数量和可用存储器的容量中的至少一者;
标识所述功能的资源约束;
确定所述第一多个节点的子集中的第一节点具有大于或等于所述资源约束的可用计算资源;以及
指派所述第一节点来执行所述功能。
CN202011601589.2A 2020-01-31 2020-12-30 无服务器功能与存储池的同分布 Pending CN113204421A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/778,855 US11513860B2 (en) 2020-01-31 2020-01-31 Serverless function colocation with storage pools
US16/778,855 2020-01-31

Publications (1)

Publication Number Publication Date
CN113204421A true CN113204421A (zh) 2021-08-03

Family

ID=74068229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011601589.2A Pending CN113204421A (zh) 2020-01-31 2020-12-30 无服务器功能与存储池的同分布

Country Status (3)

Country Link
US (2) US11513860B2 (zh)
EP (1) EP3859524A1 (zh)
CN (1) CN113204421A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2026462B1 (en) * 2020-09-14 2022-05-12 Microsoft Technology Licensing Llc Reducing placement conflicts between concurrent virtual machine allocations
US11681445B2 (en) 2021-09-30 2023-06-20 Pure Storage, Inc. Storage-aware optimization for serverless functions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003027866A1 (en) * 2001-09-28 2003-04-03 Maranti Networks, Inc. Serverless storage services
CN103067524A (zh) * 2013-01-18 2013-04-24 浪潮电子信息产业股份有限公司 一种基于云计算环境的蚁群优化计算资源分配方法
US20180011643A1 (en) * 2016-07-08 2018-01-11 International Business Machines Corporation Automated storage target selection for data backup
CN108885582A (zh) * 2016-04-07 2018-11-23 国际商业机器公司 存储器池结构的多租户存储器服务
US20190166221A1 (en) * 2017-11-30 2019-05-30 Cisco Technology, Inc. Provisioning using pre-fetched data in serverless computing environments
EP3506095A2 (en) * 2017-12-29 2019-07-03 INTEL Corporation Communication optimizations for distributed machine learning

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917705B2 (en) * 2007-05-17 2011-03-29 International Business Machines Corporation Scalable performance-based volume allocation in large storage controller collections
US8972986B2 (en) 2012-05-25 2015-03-03 International Business Machines Corporation Locality-aware resource allocation for cloud computing
US10613888B1 (en) * 2015-12-15 2020-04-07 Amazon Technologies, Inc. Custom placement policies for virtual machines
US9959062B1 (en) * 2016-02-05 2018-05-01 Datadirect Networks, Inc. Low latency and reduced overhead data storage system and method for sharing multiple storage devices by high performance computing architectures
US20200034484A1 (en) * 2016-11-30 2020-01-30 Nutanix, Inc. User-defined analysis of distributed metadata
US20200174844A1 (en) * 2018-12-04 2020-06-04 Huawei Technologies Canada Co., Ltd. System and method for resource partitioning in distributed computing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003027866A1 (en) * 2001-09-28 2003-04-03 Maranti Networks, Inc. Serverless storage services
CN103067524A (zh) * 2013-01-18 2013-04-24 浪潮电子信息产业股份有限公司 一种基于云计算环境的蚁群优化计算资源分配方法
CN108885582A (zh) * 2016-04-07 2018-11-23 国际商业机器公司 存储器池结构的多租户存储器服务
US20180011643A1 (en) * 2016-07-08 2018-01-11 International Business Machines Corporation Automated storage target selection for data backup
US20190166221A1 (en) * 2017-11-30 2019-05-30 Cisco Technology, Inc. Provisioning using pre-fetched data in serverless computing environments
EP3506095A2 (en) * 2017-12-29 2019-07-03 INTEL Corporation Communication optimizations for distributed machine learning
CN110135575A (zh) * 2017-12-29 2019-08-16 英特尔公司 用于分布式机器学习的通信优化

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAROUEN MECHTRI 等: "Exact and Heuristic Resource Mapping Algorithms for Distributed and Hybrid Clouds", 《IEEE TRANSACTIONS ON CLOUD COMPUTING》, vol. 5, no. 4, pages 681 - 695 *
NELSON NAHUM;: "高性能存储虚拟化架构", 软件世界, no. 20 *

Also Published As

Publication number Publication date
US11513860B2 (en) 2022-11-29
EP3859524A1 (en) 2021-08-04
US20230100484A1 (en) 2023-03-30
US20210240537A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
US10466899B2 (en) Selecting controllers based on affinity between access devices and storage segments
JP6423468B2 (ja) 記憶階層の動的選択
US10726518B2 (en) Capacity reservation for virtualized graphics processing
US10140066B2 (en) Smart partitioning of storage access paths in shared storage services
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
US9569244B2 (en) Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
EP3522500A1 (en) Method and system for multi-tenant resource distribution
US20230100484A1 (en) Serverless function colocation with storage pools
EP3665561B1 (en) A metadata control in a load-balanced distributed storage system
EP3425883A1 (en) Load balancing of resources
US20100229175A1 (en) Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems
US20080162735A1 (en) Methods and systems for prioritizing input/outputs to storage devices
US20080172672A1 (en) Recommending Moving Resources in a Partitioned Computer
CN104937584A (zh) 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量
US10248460B2 (en) Storage management computer
US11307802B2 (en) NVMe queue management multi-tier storage systems
US10616134B1 (en) Prioritizing resource hosts for resource placement
WO2012173642A1 (en) Decentralized management of virtualized hosts
CN108351810B (zh) 用于虚拟化图形处理的扩展
WO2012173641A1 (en) Decentralized management of virtualized hosts
US10192165B2 (en) System and method for navigating multi-dimensional decision trees using acceptable alternate nodes
US11336519B1 (en) Evaluating placement configurations for distributed resource placement
US11928517B2 (en) Feature resource self-tuning and rebalancing
US11307889B2 (en) Schedule virtual machines
Peng et al. Scalable qos for distributed storage clusters using dynamic token allocation

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