CN113785273A - 使用智能网络接口卡和通用存储装置的多租户优化无服务器布置 - Google Patents

使用智能网络接口卡和通用存储装置的多租户优化无服务器布置 Download PDF

Info

Publication number
CN113785273A
CN113785273A CN202080033102.7A CN202080033102A CN113785273A CN 113785273 A CN113785273 A CN 113785273A CN 202080033102 A CN202080033102 A CN 202080033102A CN 113785273 A CN113785273 A CN 113785273A
Authority
CN
China
Prior art keywords
function
network interface
interface card
perform
determining
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
CN202080033102.7A
Other languages
English (en)
Inventor
凯尔·安德鲁·唐纳德·梅斯特瑞
伊恩·詹姆士·威尔斯
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology 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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN113785273A publication Critical patent/CN113785273A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

可以提供使用网络接口卡和通用存储装置的多租户优化无服务器布置。可以接收对执行第一功能的第一请求。接下来,可以确定在第一网络接口卡处执行第一功能。第一网络接口卡可以包括多个处理器。然后,可以在第一网络接口卡处创建容器。容器可以具有多个处理器中的至少一个处理器。第一功能可以在容器处执行。

Description

使用智能网络接口卡和通用存储装置的多租户优化无服务器 布置
本申请于2020年5月1日作为PCT国际专利申请提交,并要求于2019年5月8日提交的序列号为16/406,872的美国临时专利申请的优先权,其全部公开内容通过引用整体并入。
技术领域
本公开总体涉及多租户数据存储,更具体地涉及智能网络接口卡和通用存储装置上的多租户无服务器功能执行。
背景技术
多租户是一种架构,其中单个软件实例服务于多个用户设备。每个用户称为租户。多租户可能是经济的,因为软件开发和维护成本是分摊的。多租户架构对于使用无服务器架构开发的应用可能更有用。无服务器架构,也称为功能即服务(FaaS),是一类云计算服务,可允许用户开发、运行和管理应用功能,而无需通常与开发和启动应用相关的构建和维护物理基础设施以及基于软件的基础设施的复杂度。
附图说明
包含在本公开中并构成本公开的一部分的附图示出了本公开的各种实施例。在附图中:
图l是示例操作环境的框图;
图2是网络接口卡的框图;
图3是使用网络接口卡和通用存储装置提供多租户优化无服务器布置的系统的框图;
图4是使用网络接口卡和通用存储装置提供多租户优化无服务器布置的方法的流程图;和
图5是计算设备的框图。
具体实施方式
概述
本发明的各方面在独立权利要求中陈述并且优选特征在从属权利要求中陈述。一个方面的特征可以单独或与其他方面组合应用于每个方面。
可以提供使用网络接口卡和通用存储装置(commodity storage)的多租户优化无服务器布置。可以接收对执行第一功能的第一请求。接下来,可以确定在第一网络接口卡处执行第一功能。第一网络接口卡可以包括多个处理器。然后,可以在第一网络接口卡处创建容器。容器可以具有多个处理器中的至少一个处理器。第一功能可以在容器处执行。
以上概述和以下示例性实施例均仅是示例和说明性的,不应被视为限制所描述和要求保护的本公开的范围。此外,除了在此阐述的那些之外,还可以提供特征和/或变化。例如,本公开的实施例可以涉及示例实施例中描述的各种特征组合和子组合。
示例实施例
以下详细描述参照附图。在可能的情况下,在附图和以下描述中使用相同的附图标记指代相同或相似的元件。虽然可以描述本公开的实施例,但是修改、改编和其他实现方式是可能的。例如,可以对附图中所示的元素进行替换、添加或修改,并且可以通过替换、重新排序或向所公开的方法添加阶段来修改这里描述的方法。因此,以下详细描述不限制本公开。相反,本公开的适当范围由所附权利要求限定。
在基于无服务器架构的应用开发中,应用可以分解为可独立部署的小型模块化功能,例如路由网络流量、进行在线支付或检查库存。应用的每个功能都可以在容器中独立于其他功能执行。容器可以为要执行的功能提供必要的环境,包括代码、运行时、系统工具、系统库等。然而,一个挑战可能是让函数执行尽可能接近数据。由于执行的短暂性质和与数据的直接联系,确保这些功能的执行尽可能接近数据可能是期望的。
本公开提供用于使用网络接口卡(NIC)和通用存储装置进行多租户优化无服务器布置的过程。这些过程可以提供迁移在堆栈中较低的处理层,从而允许在NIC层进行多租户,从而允许在网络流量流出到主机服务器的位置附近执行无服务器功能。例如,可以在与主机服务器关联的NIC处创建容器。NIC可以是智能NIC并且可以包括代理,该代理可以基于管理员定义的策略来确定在NIC上本地地执行无服务器功能。然后代理可以使用NIC的处理器中的一个或多个处理器来创建容器。然后可以在容器中执行该功能。可以通过外围组件互连快速(PCIe)总线提供对通用存储装置上的数据的访问。
图1是示例操作环境100的框图,其中可以提供使用网络接口卡和通用存储装置的多租户优化无服务器布置。如图1所示,操作环境100可以包括服务器102、NIC 104、交换机106、用户设备108、主机处理器110和协调器(orchestrator)112。
服务器102可以是独立的服务器或者可以是数据中心基础设施中的服务器网络的一部分。例如,服务器102可以是无服务器计算基础设施的一部分,可操作以提供功能即服务(FaaS),其可以允许用户开发、运行和管理应用功能。服务器102可以支持多租户环境,其中可以同时服务多个请求。
例如,服务器102可操作以向用户设备108提供平台,用户设备包括例如第一用户设备108A、第二用户设备108B和第三用户设备108C。服务器102可以提供用于开发、运行和管理基于无服务器架构的应用的功能的平台。用户设备108可以通过交换机106请求基础设施以执行无服务器应用的一个或多个功能。交换机106可以提供用户设备108和服务器102之间的通信链路。虽然服务器102被示为与三个用户设备相关联,但是用户设备108可以包括任意数量的用户设备并且不限于三个。
协调器112可操作以创建一个或多个容器以用于执行一个或多个无服务器功能。例如,协调器112可以使用主机处理器110的一个或多个处理器来创建多个容器。协调器112可以具有跨应用策略和应用组件运行时性能以及包括处理资源、存储资源和网络资源的基础设施性能度量的可见性。基于应用程序策略,协调器112可以部署容器以用于执行无服务器功能。此外,如果用于处理/计算无服务器功能的数据超过预定限量,协调器112可以缩放容器。此外,协调器112可以通过执行自动故障转移来处理容器的故障。
服务器102可以耦合到NIC 104,NIC 104包括例如第一NIC 104A、第二NIC 104B、第三NIC 104C、第四NIC 104D、第五NIC 104E和第六NIC 104F。NIC 104可以提供物理层以将服务器102通信地耦合到用户设备108和其他服务器(未示出)。NIC 104可以集成到服务器102中或者可以从外部耦合到服务器102。虽然服务器102可以被示为耦合到六个NIC,但是NIC 104不限于六个NIC并且可以包括任何数量的NIC。此外,可以通过移除NIC或插入额外的NIC来更改NIC的数量。在示例实施例中,NIC 104也被称为智能NIC 104。
图2是示出NIC 104之一(即,第一NIC 104A)的示例的框图。如图2所示,第一NIC104A可以包括多个处理器202,包括例如第一处理器202A、第二处理器202B、第三处理器202C、第四处理器202D、第五处理器202E和第六处理器202F。多个处理器202中的每一个可以是多核低功率处理器。尽管可以将多个处理器202示出为包括六个处理器,但是多个处理器202不限于六个处理器并且可以包括任意数量的处理器。此外,可以通过在第一NIC 104A中移除处理器或插入额外的处理器来改变处理器的数量。
第一NIC 104A还可以包括固件204和专用集成电路(ASIC)206。ASIC 206可以是定制用于处理用户设备108和服务器102之间的数据流量的集成电路。ASIC 206以是片上系统(SoC)或现场可编程门阵列(FPGA)。ASIC 206可以包括一个或多个本地处理器和一个或多个本地存储器块。固件204可以位于ASIC 206的顶部并且可以与ASIC 206一起操作以处理从用户设备108接收的数据分组。例如,固件204和ASIC 206可以操作以处理网络流量的数据分组以确定数据分组的目的地。固件204和ASIC 206可以与多个处理器202紧密联系在一起。例如,多个处理器202可以嵌入在ASIC 206上。
第一NIC 104A还可以包括代理208。代理208可以操作以确定是否在第一NIC 104A上执行请求。代理208可以基于由管理员或用户设备108定义的策略来确定在第一NIC 104A上执行请求。该策略可以基于多个数据点。例如,代理208可以基于以下项中的一项或多项做出该确定:i)第一功能的延迟要求;ii)摄取到第一NFC 104A中的网络流量;iii)与第一个功能相关联的数据的位置;iv)来自第一NIC 104A和主机处理器110的负荷参数;iv)安全域。该策略可以定义在多个处理器202本身上运行第一功能是否可接受,或者从安全角度是否需要在第一NIC 104A上运行第一功能。
通过使用上面列出的数据点,代理208可以确定是否在第一NIC 104A、其他NIC104或主机处理器110上执行第一功能。例如,代理208可以在当第一功能的延迟要求很关键时在第一NIC 104A处本地地执行第一功能。即,当第一功能的延迟要求小于预定延迟值时,代理208可以在第一NIC 104A上运行第一功能。例如,由于第一NIC 104A的带宽可能针对网络流量进行大小调整,因此可能会导致较低延迟。因此,需要较低延迟的第一功能可以在第一NIC 104A上本地地被执行。另外,第一NIC 104A可以包括直接存储器访问(DMA)加速,这也可能导致较低延迟。此外,当主机处理器110之一上的负荷超过预定负荷时,代理208可以确定在本地执行第一功能。
然而,当第一功能不包括延迟要求时,代理208可以确定不在第一NIC 104A上执行第一功能。此外,当与第一功能相关联的延迟要求大于预定值时,代理208可以确定在主机处理器110上执行第一功能。此外,当第一NIC 104A上的负荷超过预定值时,代理208可以确定不在第一NIC 104A上执行第一功能。当代理208确定不在第一NIC 104A上执行第一功能时,代理208可以将第一请求发送到第二NIC 104B或主机处理器110。因此,通过考虑由管理员或用户设备108定义的策略以及围绕网络流量和操作环境100上的实时输入的环境考量,代理208可以跨NIC 104和主机处理器有效地调度无服务器功能的执行。为了在第一NIC104A上执行第一功能,代理208可以使用多个处理器202在第一NIC 104A上创建容器。例如,代理208可以包括可操作以创建容器的容器引擎。在一些实施例中,代理208可以与协调器112协作以创建容器。
图3图示了用于使用NIC和通用存储装置提供多租户优化无服务器布置的系统300。如图3所示,系统300可以包括服务器102,其可以包括主机处理器110和协调器112。服务器102可以与NIC 104相关联,例如,第一NIC 104A、第二NIC 104B和第三NIC 104C。服务器102还可以与多个存储设备302相关联,例如第一存储设备302A、第二存储设备302B和第三存储设备302C。多个存储设备302可以包括通用存储装置并且可以操作以存储与无服务器功能相关联的数据。多个存储设备302可以由服务器102管理。所存储的数据可以通过PCIe总线304访问。NIC 104可以通过PCIe总线304访问与无服务器功能相关联的数据。系统300可以操作以在NIC 104之一处执行一个或多个功能,从而使用NIC 104和多个存储设备302提供多租户优化无服务器布置。
图4是阐述与本公开的实施例一致的用于使用网络接口卡和通用存储装置提供多租户优化无服务器布置的方法400中所涉及的一般阶段的流程图。方法400可以由以上关于图1、图2和图3所描述的NIC 104中的任何一个来实现。如以下关于图5更详细描述的计算设备500可以包括用于任何NIC 104的工作环境。下面将更详细地描述实现方法400的各阶段的方式。
图1、图2和图3中所示的元件可以在硬件和/或软件(包括固件、驻留软件、微代码等)或任何其他电路或系统中实践。图1、图2和图3中所示的元件可以在包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或包含电子元件或微处理器的单个芯片上的电子电路中实践。图1、图2和图3中所示的元件还可以使用能够执行例如与(AND)、或(OR)和非(NOT)的逻辑运算的其他技术来实践,包括但不限于机械、光学、流体和量子技术。如以下关于图5更详细地描述的,图1、图2和图3中所示的元件可以在计算设备500中实践。
方法400可以在框405处开始并且进行到框410,其中可以接收对执行第一功能的第一请求。例如,可以从用户设备108之一接收用于执行第一功能的请求。该功能可以是无服务器应用的一部分并且用户设备108可以经由第一请求来请求FaaS。例如,第一用户设备108A可以发送用于在服务器102上执行第一功能以提供多租户FaaS的第一请求。
在框410处接收到第一请求之后,方法400可以前进到框415,在415处可以确定在第一NIC 104A处执行第一功能。例如,可以基于策略做出在第一NIC 104A处执行第一功能的确定。例如,管理员可以定义用于执行无服务器功能的策略。该策略可以被提供给每个NIC 104的代理208。该策略可以基于一个或多个数据点,代理208可以参考这一个或多个数据点以便做出确定。例如,代理208可以基于以下项中的一项或多项做出此确定:i)第一功能的延迟要求;ii)摄取到第一NIC 104A中的网络流量、与第一功能相关联的数据的位置(即接近度);iii)来自第一NIC 104A和主机处理器110的负荷参数;iv)安全域。例如,策略可以定义在服务器102上运行第一功能是否可接受,或者从安全角度是否需要在第一NIC104A上运行第一功能。
通过使用以上数据点,代理208可以确定是否在第一NIC 104A上执行第一功能。例如,当第一功能的延迟要求可能很关键时,代理208可以在第一NIC 104A处的位置执行第一功能。也就是说,当第一功能的延迟要求可能小于预定延迟值时,代理208可以在第一NIC104A上运行第一功能。例如,由于第一NIC 104A的带宽可能针对网络流量进行大小调整,因此可能会导致较低延迟。此外,第一NIC 104A可以包括也可以导致较低延迟的DMA加速。此外,当主机处理器110上的负荷超过预定负荷时,代理208可以确定在本地执行第一功能。此外,第一NIC 104A可以确定在本地执行第一功能以保护服务器102免受不可信或有害功能的影响。
然而,当第一功能不包括延迟要求或当延迟要求大于预定值时,代理208可以确定不在第一NIC 104A上执行第一功能。此外,当第一NIC104A上的负荷大于预定值时,代理208可以确定不在第一NIC 104A上执行第一功能。当代理208确定不在第一NIC 104A上执行第一功能时,代理208可以将第一请求发送到第二NIC 104B或主机处理器110。因此,通过考虑由管理员、一个或多个用户设备108定义的策略以及围绕网络流量和操作环境100上的实时输入的环境考量,代理208可以跨NIC 104和主机处理器110有效地调度无服务器功能的执行。
一旦在框415确定在第一NIC 104A处执行第一功能,方法400就可以前进到框420,其中可以在第一NIC 104A处创建容器。例如,代理208可以创建具有处理器202中的选定数量的处理器的容器。处理器的数量可以取决于第一功能的处理要求。在其他示例中,代理208可以与协调器112协作以创建容器。容器可以通过PCIe总线304通信地耦合到存储设备302。在一个实施例中,代理208可以在第一NIC 104A上创建多个容器。这些多个容器中的每一个可以执行一个功能,从而同时执行多个功能。在示例实施例中,响应于在框415处确定不在第一NIC 104A处执行第一功能,可以在主机处理器110或另一个NIC(例如第二NIC104B)处执行第一功能。在这样的实施例中,可以在主机处理器110或第二NIC 104B处创建容器。
一旦在框420处创建了容器,方法400就可以前进到框425,其中可以在容器处执行第一功能。容器可以通过PCIe总线304从多个存储设备302中的一个或多个存储设备访问与第一功能相关联的数据。在框425处执行第一功能之后,方法400可以在框430处结束。
图5示出了计算设备500。如图5所示,计算设备500可以包括处理单元510和存储器单元515。存储器单元515可以包括软件模块520和数据库525。当在处理单元510上执行时,软件模块520可以使用网络接口卡和通用存储装置执行优化的无服务器布置的过程,包括例如以上关于图4描述的方法400的任何一个或多个阶段。例如,计算设备500可以为服务器102、NIC 104和用户设备108提供操作环境。服务器102、NIC 104和多个用户设备106可以在其他环境中操作并且不限于计算设备500。
计算设备500可以使用个人计算机、网络计算机、大型机、路由器或其他类似的基于微型计算机的设备来实现。计算设备500可以包括任何计算机操作环境,例如手持设备、多处理器系统、基于微处理器或可编程的发送器电子设备、小型计算机、大型计算机等。计算设备500还可以在分布式计算环境中实践,在该分布式计算环境中,任务由远程处理设备执行。前述系统和设备是示例并且计算设备500可以包括其他系统或设备。
在延迟、可扩展性和安全性方面,可能有与在NIC 104上的容器中执行无服务器功能相关联的多种优势。例如,NIC 104可以与高带宽相关联,因为它们可以针对网络流量调整大小并且通常可以包括DMA加速。因此,与在主机处理器110上运行的容器相比,NIC 104可以提供较低延迟。此外,由于更高的带宽和通过PCIe总线302对多个存储设备302的更快访问,NIC 104可以为高数据吞吐量功能提供有利的容器。此外,由于NIC 104上的处理器202的数量可以根据需要扩展和收缩,因此NIC 104可以提供可扩展的处理能力。此外,在NIC 104上执行无服务器功能可以保护服务器102免受有害代码的影响,因为服务器102可能不会直接暴露于有害代码。
本公开的实施例可以提供一种方法,包括:接收对执行第一功能的第一请求;确定在第一网络接口卡处执行第一功能,第一网络接口卡包括多个处理器;在第一网络接口卡处创建容器,该容器包括多个处理器中的至少一个处理器;以及在容器处执行第一功能。接收对执行第一功能的第一请求可以包括:接收对执行第一功能的第一请求,其中第一功能是无服务器功能。
在示例实施例中,确定在第一网络接口卡处执行第一功能可以包括:基于以下项中的至少一项来确定在第一网络接口卡处执行第一功能:被摄取到第一网络接口卡中的数据流量的量;第一功能要访问的数据的位置;第一网络接口卡上的负荷;以及指定在托管第一网络接口卡的服务器上执行第一功能的安全策略。
根据实施例,确定在第一网络接口卡处执行第一功能可以包括:当第一功能的延迟要求小于预定延迟时,确定在第一网络接口卡处执行第一功能。此外,确定在第一网络接口卡处执行第一功能可以包括:当托管网络接口卡的服务器上的负荷大于预定负荷时,确定在第一网络接口卡处执行第一功能。此外,确定在第一网络接口卡处执行第一功能可以包括:当安全策略指定在第一网络接口卡上执行第一功能时,确定在第一网络接口卡处执行第一功能。该方法还可以包括:接收执行第二功能的第二请求;确定不在第一网络接口卡处执行第二功能;并且将第二请求发送到以下项之一:第二网络接口卡和与第一网络接口卡相关联的服务器。
在示例实施例中,一种装置可以包括存储器存储区和耦合到存储器存储区的处理单元。处理单元可操作以:接收包括对执行第一功能的第一请求的第一数据流量;确定在第一网络接口卡处执行第一功能,第一网络接口卡包括第一多个处理器;在第一网络接口卡处创建容器以执行第一功能;以及在容器中执行第一功能。
根据示例实施例,一种非暂态计算机可读介质,可以存储指令,所述指令当被处理器执行时可以导致执行一种方法,该方法包括:接收对执行第一功能的第一请求;确定在多个网络接口卡中的一个网络接口卡处执行第一功能,多个网络接口卡中的每一个包括多个处理器;响应于确定在多个网络接口卡中的一个网络接口卡处执行第一功能,确定多个网络接口卡中的第一网络接口卡执行第一功能;在第一网络接口卡处创建容器;并在容器处执行第一功能。
本公开的实施例例如可以被实现为计算机过程(方法)、计算系统,或者被实现为诸如计算机程序产品或计算机可读介质的制品。计算机程序产品可以是计算机系统可读的并且对用于执行计算机过程的指令的计算机程序进行编码的计算机存储介质。计算机程序产品还可以是计算系统可读的载体上的传播信号,并且对用于执行计算机过程的指令的计算机程序进行编码。因此,本公开可以体现在硬件和/或软件(包括固件、常驻软件、微代码等)中。换句话说,本公开的实施例可以采用计算机可用或计算机可读存储介质上的计算机程序产品的形式,该存储介质中包含计算机可用或计算机可读程序代码,供其使用或结合指令执行系统使用。计算机可用或计算机可读介质可以是能够包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备使用或与其结合使用的任何介质。
计算机可用或计算机可读介质可以是例如但不限于电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。更具体的计算机可读介质示例(非穷举列表)、计算机可读介质可以包括以下:具有一根或多根电线的电连接、便携式计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤和便携式光盘只读存储器(CD-ROM)。请注意,计算机可用或计算机可读介质甚至可以是纸或其他合适的打印程序的介质,因为程序可以通过例如对纸或其他介质的光学扫描以电子方式捕获,然后如有必要以适当的方式编译\解释或以其他方式处理,然后存储在计算机存储器中。
虽然已经描述了本公开的某些实施例,但是可以存在其他实施例。此外,虽然本公开的实施例已经被描述为与存储在存储器和其他存储介质中的数据相关联,但是数据也可以存储在其他类型的计算机可读介质上或从其他类型的计算机可读介质读取,例如辅助存储设备,如硬盘、软盘或CD-ROM、来自互联网的载波或其他形式的RAM或ROM。此外,与本公开实施例一致的语义数据可以被分析而不被存储。在这种情况下,当数据流量通过例如缓存服务器或网络路由器时,可以使用在线数据挖掘技术。此外,在不脱离本公开的情况下,可以以任何方式修改所公开的方法的阶段,包括通过重新排序阶段和/或插入或删除阶段。
此外,本公开的实施例可以在包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或包含电子元件或微处理器的单个芯片上的电子电路中实践。本公开的实施例还可以使用能够执行诸如例如AND、OR和NOT之类的逻辑运算的其他技术来实践,包括但不限于机械、光学、流体和量子技术。此外,本公开的实施例可以在通用计算机内或在任何其他电路或系统中实践。
本公开的实施例可以通过片上系统(SOC)来实践,其中图1中所示的每个或许多组件都可以集成到单个集成电路上。这种SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都可以作为单个集成电路集成(或“烧制”)到芯片衬底上。当经由SOC操作时,这里关于本公开的实施例描述的功能可以经由与计算设备500的其他组件在单个集成电路(芯片)上集成的专用逻辑来执行。
例如,上面参照根据本公开的实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本公开的实施例。框中注明的功能/动作可能不按任何流程图中所示的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。
虽然说明书包括示例,但本公开的范围由所附权利要求指示。此外,虽然已经以结构特征和/或方法动作特定的语言描述了说明书,但权利要求不限于上述特征或动作。相反,上述特定特征和动作是作为本公开的实施例的示例而公开的。

Claims (23)

1.一种方法,包括:
接收对执行第一功能的第一请求;
确定在第一网络接口卡处执行所述第一功能,所述第一网络接口卡包括多个处理器;
在所述第一网络接口卡处创建容器,所述容器包括所述多个处理器中的至少一个处理器;以及
在所述容器处执行所述第一功能。
2.根据权利要求1所述的方法,其中接收对执行所述第一功能的所述第一请求包括:接收对执行所述第一功能的所述第一请求,其中所述第一功能是无服务器功能。
3.根据权利要求1或2所述的方法,其中确定在所述第一网络接口卡处执行所述第一功能包括:基于以下项中的至少一项来确定在所述第一网络接口卡处执行所述第一功能:
被摄取到所述第一网络接口卡中的数据流量的量;
所述第一功能要访问的数据的位置;
所述第一网络接口卡上的负荷;或者
指定在托管所述第一网络接口卡的服务器上执行所述第一功能的安全策略。
4.根据权利要求1至3中任一项所述的方法,其中确定在所述第一网络接口卡处执行所述第一功能包括:当所述第一功能的延迟要求小于预定延迟时,确定在所述第一网络接口卡处执行所述第一功能。
5.根据权利要求1至4中任一项所述的方法,其中确定在所述第一网络接口卡处执行所述第一功能包括:当托管所述网络接口卡的服务器上的负荷超过预定负荷时,确定在所述第一网络接口卡处执行所述第一功能。
6.根据权利要求1至5中任一项所述的方法,其中确定在所述第一网络接口卡处执行所述第一功能包括:当安全策略指定在所述第一网络接口卡上执行所述第一功能时,确定在所述第一网络接口卡处执行所述第一功能。
7.根据权利要求1至6中任一项所述的方法,还包括:
接收对执行第二功能的第二请求;
确定不在所述第一网络接口卡处执行所述第二功能;以及
将所述第二请求发送到以下项之一:第二网络接口卡和与所述第一网络接口卡相关联的服务器。
8.一种装置,包括:
存储器存储区;和
耦合到所述存储器存储区的处理单元,其中所述处理单元能操作以:
接收第一数据流量,所述第一数据流量包括对执行第一功能的第一请求;
确定在第一网络接口卡处执行所述第一功能,所述第一网络接口卡包括多个处理器;
在所述第一网络接口卡处创建容器以执行所述第一功能;以及
在所述容器中执行所述第一功能。
9.根据权利要求8所述的装置,其中所述处理单元能操作以确定在所述第一网络接口卡处执行所述第一功能包括:所述处理单元能操作以基于数据存储装置的位置确定在所述第一网络接口卡处执行所述第一功能,所述数据存储装置存储与所述第一功能对应的数据。
10.根据权利要求9所述的装置,其中所述处理单元能操作以基于所述第一网络接口卡与所述数据存储装置的接近度来确定所述第一网络接口卡执行所述第一功能。
11.根据权利要求9或10所述的装置,其中所述第一网络接口卡能操作以经由外围组件互连快速总线从所述数据存储装置访问所述数据。
12.根据权利要求8至11中任一项所述的装置,其中所述第一网络接口卡包括代理,其中所述代理能操作以促进创建包括所述多个处理器中的至少一个处理器的所述容器。
13.根据权利要求8至12中任一项所述的装置,其中,所述处理单元还能操作以:
接收第二数据流量,所述第二数据流量包括对执行第二功能的第二请求;
确定不在所述第一网络接口卡处执行所述第二功能;以及
将所述第二请求发送给以下至少一者:第二网络接口卡或与所述第一网络接口卡相关联的服务器。
14.根据权利要求13所述的装置,其中所述处理单元能操作以确定不在所述第一网络接口卡处执行所述第二功能包括:所述处理单元能操作以基于以下项中的至少一项来确定不在所述第一网络接口卡处执行所述第二功能:
被摄取到所述第一网络接口卡中的数据流量的量;
所述第二功能要访问的数据的位置;
与所述第一网络接口卡相关联的服务器上的负荷;或者
指定在所述第一网络接口卡和所述服务器之一上执行所述第二功能的安全策略。
15.根据权利要求13或14所述的装置,其中所述处理单元能操作以确定不在所述第一网络接口卡处执行所述第二功能包括:所述处理单元能操作以当所述第一网络接口卡上的负荷超过预定负荷时确定不在所述第一网络接口卡处执行所述第二功能。
16.根据权利要求13至15中任一项所述的装置,其中所述处理单元能操作以确定不在所述第一网络接口卡处执行所述第二功能包括:所述处理单元能操作以当所述第二功能的延迟要求大于预定延迟值时确定不在所述第一网络接口卡处执行所述第二功能。
17.一种非暂态计算机可读介质,存储一组指令,所述指令当被处理器执行时导致执行一种方法,所述方法包括:
接收对执行第一功能的第一请求;
确定在多个网络接口卡中的一个网络接口卡处执行所述第一功能,所述多个网络接口卡中的每一个网络接口卡包括多个处理器;
响应于确定在所述多个网络接口卡中的一个网络接口卡处执行所述第一功能,确定所述多个网络接口卡中的第一网络接口卡执行所述第一功能;
在所述第一网络接口卡处创建容器;以及
在所述容器处执行所述第一功能。
18.根据权利要求17所述的非暂态计算机可读介质,其中,所述方法还包括:
接收对执行第二功能的第二请求;以及
确定不在所述第一网络接口卡处执行所述第二功能。
19.根据权利要求17或18所述的非暂态计算机可读介质,还包括:将与所述第一网络接口卡相关联的服务器隔离以不执行所述第一功能。
20.根据权利要求17至19中任一项所述的非暂态计算机可读介质,其中接收所述第一请求包括:在最接近与所述第一功能的执行相关联的数据的所述第一网络接口卡处接收所述第一请求。
21.一种装置,包括:
用于接收对执行第一功能的第一请求的装置;
用于确定在第一网络接口卡处执行所述第一功能的装置,所述第一网络接口卡包括多个处理器;
用于在所述第一网络接口卡处创建容器的装置,所述容器包括多个处理器中的至少一个处理器;以及
用于在所述容器处执行所述第一功能的装置。
22.根据权利要求21所述的装置,还包括:用于实施根据权利要求2至7中任一项所述的方法的装置。
23.一种计算机程序、计算机程序产品或计算机可读介质,包括指令,所述指令当由计算机执行时使所述计算机执行根据权利要求1至7中任一项所述的方法的步骤。
CN202080033102.7A 2019-05-08 2020-05-01 使用智能网络接口卡和通用存储装置的多租户优化无服务器布置 Pending CN113785273A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/406,872 2019-05-08
US16/406,872 US11381526B2 (en) 2019-05-08 2019-05-08 Multi-tenant optimized serverless placement using smart network interface cards and commodity storage
PCT/US2020/031040 WO2020227098A1 (en) 2019-05-08 2020-05-01 Multi-tenant optimized serverless placement using smart network interface cards and commodity storage

Publications (1)

Publication Number Publication Date
CN113785273A true CN113785273A (zh) 2021-12-10

Family

ID=70779941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080033102.7A Pending CN113785273A (zh) 2019-05-08 2020-05-01 使用智能网络接口卡和通用存储装置的多租户优化无服务器布置

Country Status (5)

Country Link
US (1) US11381526B2 (zh)
EP (1) EP3966685A1 (zh)
CN (1) CN113785273A (zh)
CA (1) CA3139676A1 (zh)
WO (1) WO2020227098A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3844689A4 (en) 2018-08-30 2022-06-08 Rigetti & Co, LLC HIGH-PERFORMANCE, LOW-LATENCY HYBRID COMPUTING
US11082333B1 (en) 2019-09-05 2021-08-03 Turbonomic, Inc. Systems and methods for managing resources in a serverless workload
US11422844B1 (en) 2019-11-27 2022-08-23 Amazon Technologies, Inc. Client-specified network interface configuration for serverless container management service
US11392422B1 (en) * 2019-11-27 2022-07-19 Amazon Technologies, Inc. Service-managed containers for container orchestration service
US11018965B1 (en) * 2020-01-24 2021-05-25 Red Hat, Inc. Serverless function scaling
US11403150B1 (en) 2020-06-23 2022-08-02 Amazon Technologies, Inc. Replenishment-aware resource usage management
US11573816B1 (en) 2020-06-26 2023-02-07 Amazon Technologies, Inc. Prefetching and managing container images using cluster manifest
US11487591B1 (en) 2020-06-29 2022-11-01 Amazon Technologies, Inc. Automatically configuring execution of a containerized application
US11683372B2 (en) * 2020-11-24 2023-06-20 International Business Machines Corporation Virtualized fabric management server for storage area network
US11709699B2 (en) 2020-11-24 2023-07-25 International Business Machines Corporation Virtualized fabric name server for storage area network
US11522814B2 (en) 2020-11-24 2022-12-06 International Business Machines Corporation Virtualized fabric login server for storage area network
US11853807B1 (en) 2020-12-01 2023-12-26 Amazon Technologies, Inc. Cluster scaling based on task state information
US11797287B1 (en) 2021-03-17 2023-10-24 Amazon Technologies, Inc. Automatically terminating deployment of containerized applications
CN113315718B (zh) * 2021-03-31 2023-11-14 阿里巴巴新加坡控股有限公司 自适应限流的系统、方法和装置
US11989586B1 (en) 2021-06-30 2024-05-21 Amazon Technologies, Inc. Scaling up computing resource allocations for execution of containerized applications
US11995466B1 (en) 2021-06-30 2024-05-28 Amazon Technologies, Inc. Scaling down computing resource allocations for execution of containerized applications
US11892418B1 (en) 2021-06-30 2024-02-06 Amazon Technologies, Inc. Container image inspection and optimization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079478A1 (en) * 2010-09-23 2012-03-29 Cisco Technology, Inc. Network Interface Controller for Virtual and Distributed Services
CN108696461A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于智能网络接口卡的共享存储器
US20190042741A1 (en) * 2018-09-26 2019-02-07 Intel Corporation Technologies for control plane separation in a network interface controller

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489701B2 (en) 2007-01-30 2013-07-16 Microsoft Corporation Private virtual LAN spanning a public network for connection of arbitrary hosts
US8856518B2 (en) * 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
US20190163538A1 (en) * 2012-08-03 2019-05-30 Amazon Technologies, Inc. Performance tuning of virtual resources
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US9641385B1 (en) 2013-12-16 2017-05-02 Amazon Technologies, Inc. Dynamic system configuration in a virtual environment
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US11068314B2 (en) * 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
CN111095212B (zh) * 2017-07-20 2024-02-20 思科技术公司 管理功能执行环境的分布式网络
US10719366B1 (en) * 2017-07-24 2020-07-21 Amazon Technologies, Inc. Dynamic and selective hardware acceleration
US10642779B2 (en) * 2018-03-26 2020-05-05 Microsoft Technology Licensing, Llc Group-based data replication in multi-tenant storage systems
US10996972B2 (en) * 2018-09-25 2021-05-04 Microsoft Technology Licensing, Llc Multi-tenant support on virtual machines in cloud computing networks
US11301279B2 (en) * 2019-02-26 2022-04-12 International Business Machines Corporation Associating virtual IP address of virtual server with appropriate operating system in server cluster

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079478A1 (en) * 2010-09-23 2012-03-29 Cisco Technology, Inc. Network Interface Controller for Virtual and Distributed Services
CN103141058A (zh) * 2010-09-23 2013-06-05 思科技术公司 用于虚拟分布式业务的网络接口控制器
CN108696461A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于智能网络接口卡的共享存储器
US20190042741A1 (en) * 2018-09-26 2019-02-07 Intel Corporation Technologies for control plane separation in a network interface controller

Also Published As

Publication number Publication date
CA3139676A1 (en) 2020-11-12
EP3966685A1 (en) 2022-03-16
US20200358719A1 (en) 2020-11-12
WO2020227098A1 (en) 2020-11-12
US11381526B2 (en) 2022-07-05

Similar Documents

Publication Publication Date Title
CN113785273A (zh) 使用智能网络接口卡和通用存储装置的多租户优化无服务器布置
US10320674B2 (en) Independent network interfaces for virtual network environments
CN103034805B (zh) 多引擎病毒查杀方法和装置
US10769152B2 (en) Automated log analysis
US11178254B2 (en) Chaining virtual network function services via remote memory sharing
US10698842B1 (en) Domain assist processor-peer for coherent acceleration
US10721273B2 (en) Automated security policy
US9342448B2 (en) Local direct storage class memory access
Ge et al. OpenANFV: Accelerating network function virtualization with a consolidated framework in openstack
US7970852B2 (en) Method for moving operating systems between computer electronic complexes without loss of service
DE102018006546A1 (de) Plattformschnittstellenschicht und protokoll für beschleuniger
US20140366004A1 (en) Remote Debugging in a Cloud Computing Environment
US9535759B2 (en) Work queue thread balancing
US20110055510A1 (en) Efficiently implementing a plurality of finite state machines
CN105893133A (zh) 基于容器技术的应用服务无缝迁移方法和系统
JP2022549527A (ja) データ処理方法、装置、分散型データフロープログラミングフレームワーク及び関連コンポーネント
US20180217823A1 (en) Tightly integrated accelerator functions
US10949313B2 (en) Automatic failover permissions
CN114925644A (zh) 在边缘系统验证逻辑系统设计的方法、边缘系统
KR102032895B1 (ko) 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서
CN112650710B (zh) 数据迁移的发送方法及装置、存储介质、电子装置
US9094321B2 (en) Energy management for communication network elements
CN111240845B (zh) 一种数据处理方法、装置和存储介质
US20150372944A1 (en) Provisioning legacy systems network architecture resource communications through a group of servers in a data center
CN114116130A (zh) 一种虚拟机与容器之间的访问方法及装置

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