CN112181632A - 在适配器设备中部署服务容器 - Google Patents
在适配器设备中部署服务容器 Download PDFInfo
- Publication number
- CN112181632A CN112181632A CN202010479279.1A CN202010479279A CN112181632A CN 112181632 A CN112181632 A CN 112181632A CN 202010479279 A CN202010479279 A CN 202010479279A CN 112181632 A CN112181632 A CN 112181632A
- Authority
- CN
- China
- Prior art keywords
- container
- service
- adapter
- composer
- adapter device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Advance Control (AREA)
- Computer And Data Communications (AREA)
Abstract
在一种实现中,一种适配器设备包括处理器和包括指令的存储介质。该指令由处理器可执行以:在适配器设备中部署构成器容器,其中适配器设备耦合到主机设备;通过构成器容器从主机设备接收多个适配器服务请求;以及响应于多个服务请求,通过构成器容器在适配器设备中部署多个服务容器,其中每个服务容器用于向主机设备提供特定适配器服务,并且其中每个服务容器被分配适配器设备的多个计算资源的子集。
Description
背景技术
计算系统可以包括任何数目的计算设备和组件。例如,服务器系统可以包括多个计算设备、联网设备、存储设备、电源组件等。每个计算设备可以包括硬件组件,诸如处理器、存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)、存储装置(例如,硬盘驱动器、闪存、光盘等)、网络接口设备、用户输入设备、电源设备、显示设备等。
附图说明
关于以下附图描述了一个或多个示例实现。
图1是根据一些实现的示例系统的示意图。
图2是根据一些实现的示例过程的图示。
图3是根据一些实现的示例系统的图示。
图4是根据一些实现的示例过程的图示。
图5是根据一些实现的示例计算设备的示意图。
图6是根据一些实现的存储指令的示例机器可读介质的图。
具体实施方式
一些计算设备可以耦合到提供附加功能的适配器。例如,主机服务器可以包括网络适配器(例如,网络接口卡),该网络适配器允许主机服务器经由通信网络(例如,以太网)与远程设备通信。在一些示例中,适配器可以包括用于向主机服务器提供处理功能的组件。如本文中使用的,“智能适配器”是指被配置为耦合到主机并且向主机提供处理功能的适配器设备。某些智能适配器可以向主机提供多种处理功能或服务。但是,某些智能适配器可能不允许用户为主机配置和/或自定义处理功能。
如以下参考图1-6进一步描述的,一些实现可以包括使用容器向主机提供处理功能的智能适配器。智能适配器可以包括可以执行多个容器的计算资源(例如,处理器、存储器、存储装置、加速器等)。如本文中使用的,“容器”是指由智能适配器执行的隔离的计算环境。在一些实现中,智能适配器中的容器可以包括构成器容器和任何数目的服务容器。在一些实现中,构成器容器可以接收构成特定服务的用户请求。响应于所接收的请求,构成器容器可以确定适配器设备是否具有足够的计算资源来支持服务容器以提供所请求的适配器服务。如果是,则构成器容器可以将一部分计算资源分配给服务容器,并且可以将服务容器部署在适配器设备中。此外,构成器容器可以跟踪和向多个服务容器分配智能适配器的计算资源。在一些实现中,这样的服务可以允许主机将处理卸载到智能适配器,从而提高主机性能和灵活性。此外,一些实现可以允许服务容器彼此隔离,从而提高卸载服务的安全性。
图1是根据一些实现的示例主机系统100的示意图。在一些实现中,主机系统100可以是包括主机硬件110的计算设备(例如,服务器、器具等)。如图所示,主机硬件110可以包括存储器112、处理器115和存储装置116。存储器112可以是任何类型的计算机存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)。处理器115可以包括微处理器、微控制器、处理器模块或子系统、可编程集成电路、可编程门阵列、多个处理器、包括多个处理核的微处理器、或另一控制或计算设备。在一些实现中,存储装置130可以包括非暂态机器可读存储介质,诸如硬盘驱动器、闪存、光盘等。
在一些实现中,主机系统100可以包括用于耦合到适配器设备120的适配器接口118。适配器接口118可以向适配器设备120提供来自主机系统100的电力,并且可以提供去往/来自主机系统100的数据通信。例如,在一些实现中,适配器接口118可以提供本地计算机总线(例如,外围组件互连(PCI)总线)。此外,在一些实现中,适配器接口118可以在主机系统100的物理总线插槽或插座中实现。在一些实现中,当适配器设备120耦合到适配器接口118时,适配器设备120可以容纳在主机系统100的壳体或外壳中。
如图1所示,适配器设备120可以包括存储器122、处理器125、存储装置126和网络接口128。存储器122、处理器125、存储装置126可以与存储器112、处理器115和存储装置116相似或等同,如上所述。网络接口128可以提供与通信网络(例如,以太网、局域网、蜂窝电话网络等)的连接。
在一些实现中,在耦合到适配器接口118时,适配器设备120可以向主机系统100提供一个或多个适配器服务。如本文中使用的,“适配器服务”是指由适配器设备向耦合的主机设备提供的特定处理服务或功能。例如,适配器设备120可以向主机系统100提供一个或多个适配器服务,诸如网络连接、存储连接、视频/图形加速、密码处理、遥测、系统管理、分组处理等。
在一个或多个实现中,适配器设备120可以在离散服务容器中实现每个适配器服务。如本文中使用的,“服务容器”是指被执行以提供特定适配器服务的隔离的计算环境。在一些实现中,适配器设备120可以执行构成器容器以部署任何数目的服务容器。下面参考图2-3描述使用构成器容器和一个或多个服务容器的适配器设备120的示例实现。
在一个或多个实现中,构成器容器可以是管理适配器设备120的资源到各种服务容器的分配的专用容器。构成器容器可以控制服务容器的操作特性。例如,在一些实现中,构成器容器可以将每个服务容器指定为三种服务容器类型之一,即设备类型、主机类型和服务端点类型。这样的类型可以确定服务容器如何暴露于(或呈现给)主机系统100。例如,在一些实现中,设备类型的服务容器可以被主机系统100感知为特定类型的外围设备(例如,存储设备、网络交换机、网络接口卡(NIC)等)。主机类型的服务容器可以被主机系统100感知为远程或对等计算设备(例如,服务器、台式机等)。服务端点类型的服务容器可以被主机系统100感知为特定计算服务的访问点(例如,给定web服务的地址、代表性状态转移(REST)接口等)。
注意,尽管图1示出了包括特定组件的主机系统100和适配器设备120的示例实现,但是其他实现也是可能的。例如,可以想到,主机系统100和/或适配器设备120可以包括更多组件、不同组件、更少组件等。在一些示例中,适配器设备120可以包括任何数目的处理器、图形加速器、数学加速器、加密加速器、网络接口、总线接口、存储设备、现场可编程门阵列(FPGA)设备等。
现在参考图2,示出了根据一些实现的示例配置过程200的流程图。为了说明起见,下面将参考图3描述过程200的细节,图3示出了根据一个或多个实现的示例系统300。图3所示的一个或多个组件可以大体上对应于图1所示的一个或多个组件。例如,主机设备310可以大体上对应于主机系统100的示例实现,并且适配器设备320可以大体上对应于适配器设备120的示例实现。然而,其他实现也是可能的。过程200可以以硬件或机器可读指令(例如,软件和/或固件)来实现。机器可读指令可以存储在非暂态计算机可读介质中,诸如光学、半导体或磁性存储设备。
如图2所示,框210可以包括通过适配器设备中的构成器容器从主机接收部署服务容器的请求。例如,参考图3,主机设备310可以包括构成器应用312、构成器驱动器314和PCI总线驱动器316。此外,适配器设备320可以包括构成器容器322和多个服务容器324A-324F(也统称为服务容器324)。假定用户与构成器应用312交互以指定特定适配器服务和/或服务容器。作为响应,构成器应用312可以生成部署服务容器324以提供指定适配器服务的请求311。在一些实现中,可以经由主机设备310的构成器驱动器314和PCI总线驱动器316将请求311传送到适配器设备320的构成器容器322。在一些示例中,请求311可以至少部分使用数据格式来传送,诸如JavaScript对象符号(JSON)、可扩展标记语言(XML)、二进制编码JSON(BEJ)等。在一些实现中,构成器应用312的功能可以在另一设备和/或软件应用(例如,经由网络330耦合到适配器设备320的远程系统管理设备或应用)中实现。
再次参考图2,框220可以包括确定所请求的服务容器的硬件要求。框230可以包括确定适配器的可用资源。菱形框240可以包括确定适配器的可用资源是否可以支持所请求的服务容器的硬件要求。例如,参考图3,响应于请求311,构成器容器322可以确定实现所请求的服务容器324所需要的适配器设备320的硬件资源的类型和数量(例如,所需要的存储器空间、所需要的处理速度等)。构成器容器322还可以确定适配器设备320的可用资源(例如,通过从适配器设备320的(多个)资源总量中减去到现有容器的先前分配)。构成器容器322还可以确定适配器设备320的可用资源是否可以支持所请求的服务容器的要求。在一些实现中,构成器容器322可以维护一个或多个存储的数据结构以跟踪资源到容器(例如,到服务容器324和构成器容器322)的现有分配、总资源等。
如果在菱形框240处确定适配器的可用资源不能支持所请求的服务容器的要求,则过程200可以在框270处继续,包括引发异常。在框270之后,过程200可以完成。例如,参考图3,响应于确定适配器设备320的可用资源不能支持所请求的服务容器324的要求,构成器容器322可以生成错误消息以向用户指示所请求的服务容器324不能部署在适配器设备320上。
然而,如果在菱形框240处确定适配器的可用资源可以支持所请求的服务容器的要求,则过程200可以在框250处继续,包括将适配器资源的子集分配给所请求的服务容器。此外,框260可以包括将所请求的服务容器部署在适配器设备上。在框260之后,过程200可以完成。例如,参考图3,响应于确定适配器设备320的可用资源可以支持所请求的服务容器324的要求,构成器容器322可以将适配器资源的子集分配给所请求的服务容器324,并且可以发起所请求的服务容器324在适配器设备320中的执行。在一些实现中,构成器容器322可以协调跨多个服务容器324的适配器资源的共享使用。例如,构成器容器322可以在特定时间段、时间范围等中向各种服务容器324分配特定资源的部分(例如,中央服务单元(CPU)核或带宽、网络接口带宽、图形处理单元(GPU)核或带宽、密码加速器单元等)。
在一个或多个实现中,构成器容器322可以基于请求311来控制每个部署的服务容器324的服务容器类型和其他操作特性。例如,服务容器324A可以被部署为被分配单个CPU核和一定数量的网络带宽并且提供用于将主机设备310连接到网络330的虚拟NIC的设备类型容器。在第二示例中,服务容器324B可以被部署为被分配两个CPU核并且向主机设备310提供特定web服务的服务端点类型。在第三示例中,服务容器324C可以被部署为被分配一个CPU核和两个GPU核并且向主机设备310提供网络切换服务的设备类型。在第四示例中,服务容器324D可以被部署为被分配一个CPU核和密码加速器单元并且向主机设备310提供加密和/或解密服务的主机类型。在第五示例中,服务容器324E可以被部署为被分配一个CPU核和七个GPU核并且向主机设备310提供非易失性存储器快速(NVMe)存储设备的设备类型。在第六示例中,服务容器324F可以被部署为被分配两个CPU核和五个GPU核并且向主机设备310提供具有重复数据删除的存储设备的设备类型容器。此外,在一些示例中,单个服务容器324可以向主机设备310提供多个适配器服务。
在一个或多个实现中,服务容器324可以被彼此隔离地维护。例如,服务容器324A可能无法访问服务容器324B的内部数据,反之亦然。此外,服务容器324C可能无法访问主机设备310与服务容器324D之间的通信,反之亦然。以这种方式,可以提高由适配器设备320提供的各种适配器服务的数据安全性。此外,可以减少错误地配置或实现的服务容器324将影响其他服务容器324的可能性。此外,服务容器324之间的这种隔离可以减少影响特定服务容器324的恶意软件的破坏和/或传播。
在一个或多个实现中,服务容器324可以访问适配器设备320(图3中未示出)外部的(多个)设备的计算资源。例如,可以向服务容器324A分配安装在主机设备310中(例如,在不同PCI插槽中)的GPU设备的处理带宽。在另一示例中,可以向服务容器324B分配耦合到适配器设备320的总线接口(例如,适配器设备320的PCI插槽)的FPGA设备的处理带宽。在一些实现中,分配给适配器设备320的这种外部资源对于主机设备310可能是不可见的。
在一些实现中,适配器设备320可以包括耦合到网络330的多个网络端口。在这样的实现中,服务容器324可以向主机设备310提供网络业务的聚合。例如,服务容器324A可以聚合来自多个NVMe存储设备的网络业务。
现在参考图4,示出了根据一些实现的示例过程400的流程图。为了说明起见,下面可以参考图1-3描述过程400的细节,其示出了示例实现。然而,其他实现也是可能的。过程400可以以硬件(例如,电路系统)或机器可读指令(例如,软件和/或固件)来实现。机器可读指令存储在非暂态计算机可读介质中,诸如光学、半导体或磁性存储设备。
如图4所示,框410可以包括在耦合到主机设备的适配器设备中执行构成器容器,其中适配器设备包括多个计算资源。例如,参考图3,构成器容器322可以由适配器设备320执行。在一些实现中,适配器设备320可以包括各种计算资源(例如,图1所示的存储器122、处理器125、存储装置126和网络接口128)。
框420可以包括通过适配器设备中的构成器容器从主机设备接收多个适配器服务请求。如本文中使用的,“适配器服务请求”是引起服务容器被部署在适配器设备中的请求。在一些实现中,适配器服务请求可以指定服务容器的特征。在其他实现中,适配器服务请求可以指定在服务容器中实现的适配器服务的特征。例如,参考图3,主机设备310中的构成器应用312可以生成请求311,该请求311引起服务容器324被部署在适配器设备320中。在一些实现中,请求311可以经由主机设备310的构成器驱动器314和PCI总线驱动器316被传送给适配器设备320的构成器容器322。
框430可以包括:响应于多个适配器服务请求,构成器容器在适配器设备中部署多个服务容器,其中每个服务容器用于向主机设备提供特定处理服务,并且其中每个服务容器被分配适配器设备的多个计算资源的子集。例如,参考图3,响应于请求311,构成器容器322可以确定实现每个请求的服务容器324所需要的适配器设备320的计算资源的类型和数量。构成器容器322可以确定适配器设备320的可用计算资源(例如,基于一个或多个存储的数据结构,通过从适配器设备320的(多个)资源总量中减去到现有容器的先前分配,等等)。对于每个请求311,构成器容器322可以确定适配器设备320的可用计算资源是否可以支持所请求的服务容器的要求。如果是,则构成器容器322可以将适配器资源的子集分配给所请求的服务容器324,并且可以发起所请求的服务容器324在适配器设备320中的执行。在框430之后,过程400可以完成。
现在参考图5,示出了示例适配器设备500的示意图。在一些示例中,适配器设备500可以大体上对应于适配器设备120(图1中示出)和/或适配器设备320(图3中示出)。如图所示,适配器设备500可以包括(多个)硬件处理器502、存储器503以及包括指令510-530的机器可读存储介质505。机器可读存储介质505可以是非暂态介质。此外,适配器设备500可以包括其他计算资源(未示出),诸如(多个)网络接口、(多个)图形加速器、(多个)密码加速器、(多个)总线接口、现场可编程门阵列(FPGA)等。指令510-530可以由(多个)硬件处理器502可执行。为说明起见,下面可以参考图1-3描述指令510-530的细节,其示出了示例实现。然而,其他实现也是可能的。
(多个)硬件处理器502可以包括通用微处理器、专用控制器、处理器模块或子系统、可编程集成电路、可编程门阵列、多个处理器、包括多个处理核的微处理器等。存储器503可以包括任何类型的计算机存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)。
指令510可以被执行以在适配器设备中部署构成器容器,其中适配器设备耦合到主机设备。例如,参考图3,适配器设备320可以执行构成器容器322,并且可以耦合到主机设备310。在一些实现中,适配器设备320可以耦合到主机设备310的物理插槽接口(例如,图1所示的适配器接口118)。此外,在一些实现中,适配器设备320可以被封装在主机设备310的壳体内。
指令520可以被执行以通过适配器设备中的构成器容器从主机设备接收多个适配器服务请求。例如,参考图3,主机设备310中的构成器应用312可以生成对于适配器设备320中的适配器服务的一个或多个请求311。在一些实现中,请求311可以经由主机设备310的构成器驱动器314和PCI总线驱动器316被传送到适配器设备320的构成器容器322。
指令530可以被执行以响应于多个适配器服务请求而通过构成器容器在适配器设备中部署多个服务容器,其中每个服务容器用于向主机设备提供特定适配器服务,并且其中每个服务容器被分配适配器设备的多个计算资源的子集。例如,参考图3,响应于请求311,构成器容器322可以确定实现每个请求的服务容器324所需要的适配器设备320的计算资源的类型和数量。构成器容器322可以确定适配器设备320的可用计算资源。对于每个请求311,构成器容器322可以确定适配器设备320的可用计算资源是否可以支持所请求的服务容器的要求。如果是,则构成器容器322可以将适配器资源的子集分配给所请求的服务容器324,并且可以发起所请求的服务容器324在适配器设备320中的执行。
现在参考图6,示出了根据一些实现的存储指令610-630的机器可读介质600。指令610-630可以由一个或多个硬件处理器执行。机器可读介质600可以是非暂态存储介质,诸如光学、半导体、磁性存储介质、非易失性闪存等。为了说明起见,下面可以参考图1-3描述指令610-630的细节,其示出了示例实现。然而,其他实现也是可能的。
指令610可以被执行以在耦合到主机设备的适配器设备中部署构成器容器,其中适配器设备包括多个计算资源。例如,参考图3,适配器设备320可以执行构成器容器322,并且可以耦合到主机设备310。适配器设备320可以包括硬件计算资源(例如,(多个)处理器、存储器、存储装置、(多个)网络接口、(多个)图形加速器、(多个)密码加速器、(多个)总线接口、现场可编程门阵列(FPGA)等)。在一些实现中,适配器设备320可以耦合到主机设备310的物理插槽接口(例如,图1所示的适配器接口118)。此外,在一些实现中,适配器设备320可以被封装在主机设备310的壳体内。
指令620可以被执行以通过适配器设备中的构成器容器从主机设备接收多个适配器服务请求。例如,参考图3,主机设备310中的构成器应用312可以生成对于适配器设备320中的适配器服务的一个或多个请求311。在一些实现中,请求311可以经由主机设备310的构成器驱动器314和PCI总线驱动器316被传送到适配器设备320的构成器容器322。
指令630可以被执行以响应于多个适配器服务请求而通过构成器容器在适配器设备中部署多个服务容器,其中每个服务容器用于向主机设备提供特定适配器服务,并且其中每个服务容器被分配适配器设备的多个计算资源的子集。例如,参考图3,响应于请求311,构成器容器322可以确定实现每个请求的服务容器324所需要的适配器设备320的计算资源的类型和数量。构成器容器322可以确定适配器设备320的可用计算资源。对于每个请求311,构成器容器322可以确定适配器设备320的可用计算资源是否可以支持所请求的服务容器的要求。如果是,则构成器容器322可以将适配器资源的子集分配给所请求的服务容器324,并且可以发起所请求的服务容器324在适配器设备320中的执行。
根据一些实现,示例可以提供服务容器在适配器设备中的部署。适配器设备可以是包括计算资源(例如,处理器、存储器、存储装置、加速器等)的智能适配器。适配器设备可以执行可以接收对适配器服务的请求的构成器容器。响应于该请求,构成器容器可以确定适配器设备是否具有足够的计算资源来支持服务容器以提供所请求的适配器服务。如果是,则构成器容器可以将计算资源的一部分分配给服务容器,并且可以将服务容器部署在适配器设备中。在一些实现中,适配器服务在服务容器中的部署可以允许主机将处理卸载到智能适配器,从而提高主机性能和灵活性。此外,一些实现可以允许服务容器彼此隔离,从而提高卸载服务的安全性。
注意,虽然图1-6示出了各种示例,但是实现不限于此。例如,虽然在图1-6的每个中未示出,但是上述设备可以包括附加组件,诸如存储器(例如,动态随机存取存储器(DRAM))、处理器、控制器、存储设备、总线、开关、电池、天线、显示设备、输入设备、电源等。在另一示例中,尽管使用构成器容器和服务容器描述示例实现,但是可以想到,可以使用其他隔离的计算环境或技术。例如,参考图3,可以想到,适配器设备320可以包括构成器虚拟机(VM)和多个服务VM。其他组合和/或变化也是可能的。
数据和指令被存储在相应的存储设备中,该存储设备被实现为一个或多个计算机可读或机器可读存储介质。存储介质包括不同形式的非暂态存储器,包括半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除和可编程只读存储器(EPROM)、电可擦除和可编程只读存储器(EEPROM)和闪存;磁盘,诸如固定、软盘和可移动磁盘;其他磁性介质,包括磁带;光学介质,诸如光盘(CD)或数字视频磁盘(DVD);或其他类型的存储设备。
注意,以上讨论的指令可以在一个计算机可读或机器可读存储介质上提供,或者替代地,可以在分布在可能具有多个节点的大型系统中的多个计算机可读或机器可读存储介质上提供。这样的计算机可读或机器可读存储介质被认为是物品(或制品)的一部分。物品或制品可以是指任何制造的单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器中,也可以位于可以通过网络下载机器可读指令以执行的远程站点处。
在以上描述中,阐述了很多细节以提供对本文中公开的主题的理解。然而,实现可以在没有这些细节中的一些的情况下实践。其他实现可以包括对以上讨论的细节的修改和变化。意图在于,所附权利要求覆盖这样的修改和变化。
Claims (20)
1.一种适配器设备,包括:
处理器;以及
存储介质,包括由所述处理器可执行以执行以下操作的指令:
在所述适配器设备中部署构成器容器,其中所述适配器设备耦合到主机设备;
通过所述构成器容器从所述主机设备接收多个适配器服务请求;以及
响应于所述多个服务请求,通过所述构成器容器在所述适配器设备中部署多个服务容器,其中每个服务容器用于向所述主机设备提供特定适配器服务,并且其中每个服务容器被分配所述适配器设备的多个计算资源的子集。
2.根据权利要求1所述的适配器设备,其中对于所述多个服务容器中的每个服务容器,所述构成器容器用于:
确定所述服务容器的要求;
确定所述适配器设备的可用计算资源;以及
响应于确定所述适配器设备的所述可用计算资源能够支持所述服务容器的所述要求,将所述服务容器部署在所述适配器设备上。
3.根据权利要求1所述的适配器设备,其中所述构成器容器用于配置所述多个服务容器中的每个服务容器的服务容器类型,并且其中所述服务容器类型是选自设备类型、主机类型和服务端点类型中的一者。
4.根据权利要求3所述的适配器设备,其中所述多个服务容器中的第一服务容器被部署为提供用于将所述主机设备连接到网络的虚拟NIC的设备类型容器。
5.根据权利要求4所述的适配器设备,其中所述多个服务容器中的第二服务容器被部署为向所述主机设备提供加密服务的主机类型容器。
6.根据权利要求5所述的适配器设备,其中所述多个服务容器中的第三服务容器被部署为向所述主机设备提供特定web服务的服务端点类型容器。
7.根据权利要求1所述的适配器设备,其中所述适配器设备的所述多个计算资源包括处理器、图形加速器、存储器、存储装置和网络接口。
8.一种存储指令的非暂态机器可读存储介质,所述指令在执行时引起计算设备的处理器:
在耦合到主机设备的适配器设备中部署构成器容器,其中所述适配器设备包括多个计算资源;
通过所述适配器设备中的所述构成器容器从所述主机设备接收多个适配器服务请求;以及
响应于所述多个适配器服务请求,通过所述构成器容器在所述适配器设备中部署多个服务容器,其中每个服务容器用于向所述主机设备提供特定适配器服务,并且其中每个服务容器被分配所述适配器设备的所述多个计算资源的子集。
9.根据权利要求8所述的非暂态机器可读存储介质,其中所述指令引起所述处理器:
通过所述构成器容器维护一个或多个存储的数据结构以跟踪所述多个计算资源到所述多个服务容器的分配。
10.根据权利要求8所述的非暂态机器可读存储介质,其中所述指令引起所述处理器:
通过所述构成器容器确定所述服务容器的要求;
通过所述构成器容器确定所述适配器设备的可用计算资源;以及
响应于确定所述适配器设备的所述可用计算资源能够支持所述服务容器的所述要求,通过所述构成器容器将所述服务容器部署在所述适配器设备上。
11.根据权利要求8所述的非暂态机器可读存储介质,其中所述指令引起所述处理器:
通过所述构成器容器配置所述多个服务容器中的第一服务容器的服务容器类型,其中所述服务容器类型是选自设备类型、主机类型和服务端点类型中的一者。
12.根据权利要求11所述的非暂态机器可读存储介质,其中所述第一服务容器被部署为向所述主机设备提供网络交换服务的设备类型容器。
13.根据权利要求11所述的非暂态机器可读存储介质,其中所述指令引起所述处理器:
通过所述构成器容器向所述第一服务容器分配可用中央处理单元核的子集和可用图形处理单元核的子集。
14.一种方法,包括:
在耦合到主机设备的适配器设备中执行构成器容器,其中所述适配器设备包括多个计算资源;
通过所述适配器设备中的所述构成器容器从所述主机设备接收多个服务请求;以及
响应于所述多个服务请求,通过所述构成器容器在所述适配器设备中部署多个服务容器,其中每个服务容器用于向所述主机设备提供特定处理服务,并且其中每个服务容器被分配所述适配器设备的所述多个计算资源的子集。
15.根据权利要求14所述的方法,包括:
通过所述构成器容器确定所述服务容器的要求;
通过所述构成器容器确定所述适配器设备的可用计算资源是否能够支持所述服务容器的所述要求;以及
响应于确定所述适配器设备的所述可用计算资源能够支持所述服务容器的所述要求,通过所述构成器容器将所述服务容器部署在所述适配器设备上。
16.根据权利要求14所述的方法,包括:
通过所述构成器容器维护一个或多个存储的数据结构以跟踪所述多个计算资源到所述多个服务容器的分配。
17.根据权利要求14所述的方法,包括:
通过所述构成器容器配置所述多个服务容器中的第一服务容器的服务容器类型,其中所述服务容器类型是选自设备类型、主机类型和服务端点类型中的一者。
18.根据权利要求17所述的方法,其中所述第一服务容器被部署为向所述主机设备提供具有重复数据删除的存储设备的设备类型容器。
19.根据权利要求17所述的方法,其中所述第一服务容器被部署为向所述主机设备提供非易失性存储器快速(NVMe)存储服务存储设备的设备类型容器。
20.根据权利要求14所述的方法,包括:
将所述适配器设备耦合到所述主机设备的物理总线插槽,其中耦合的所述适配器设备被容纳在所述主机设备的壳体内。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201941026537 | 2019-07-02 | ||
IN201941026537 | 2019-07-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181632A true CN112181632A (zh) | 2021-01-05 |
Family
ID=73919522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010479279.1A Pending CN112181632A (zh) | 2019-07-02 | 2020-05-29 | 在适配器设备中部署服务容器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11693669B2 (zh) |
CN (1) | CN112181632A (zh) |
DE (1) | DE102020113346A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11354148B2 (en) | 2019-02-22 | 2022-06-07 | Vmware, Inc. | Using service data plane for service control plane messaging |
US20220191304A1 (en) * | 2020-12-15 | 2022-06-16 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11368387B2 (en) | 2020-04-06 | 2022-06-21 | Vmware, Inc. | Using router as service node through logical service plane |
US11405431B2 (en) | 2015-04-03 | 2022-08-02 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US11438267B2 (en) | 2013-05-09 | 2022-09-06 | Nicira, Inc. | Method and system for service switching using service tags |
US11496606B2 (en) | 2014-09-30 | 2022-11-08 | Nicira, Inc. | Sticky service sessions in a datacenter |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11722559B2 (en) | 2019-10-30 | 2023-08-08 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11722367B2 (en) | 2014-09-30 | 2023-08-08 | Nicira, Inc. | Method and apparatus for providing a service with a plurality of service nodes |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11750476B2 (en) | 2017-10-29 | 2023-09-05 | Nicira, Inc. | Service operation chaining |
US11805036B2 (en) | 2018-03-27 | 2023-10-31 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4078363B1 (en) * | 2019-12-19 | 2024-05-01 | Koninklijke Philips N.V. | Dynamic personalized platform generation based on on-the-fly requirements |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9489647B2 (en) * | 2008-06-19 | 2016-11-08 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction with self-service portal for publishing resources |
US9582292B2 (en) * | 2008-10-07 | 2017-02-28 | Microsoft Technology Licensing, Llc. | Merged tree-view UI objects |
US8065454B1 (en) | 2009-08-20 | 2011-11-22 | Qlogic, Corporation | System and method for mapping functions to and from network devices using configuration compatible with an adapter by remapping plurality of logical ports of adapter |
US8904343B2 (en) * | 2009-12-21 | 2014-12-02 | Sap Se | Adding services to application platform via extension |
US10338958B1 (en) * | 2014-01-27 | 2019-07-02 | Amazon Technologies, Inc. | Stream adapter for batch-oriented processing frameworks |
US9948505B2 (en) * | 2015-05-05 | 2018-04-17 | Citrix Systems, Inc. | Systems and methods for integrating a device with a software-defined networking controller |
US11719857B1 (en) * | 2015-05-13 | 2023-08-08 | United States Of America As Represented By The Administrator Of Nasa | System and method for providing a reanalysis ensemble service |
US9674090B2 (en) | 2015-06-26 | 2017-06-06 | Microsoft Technology Licensing, Llc | In-line network accelerator |
US10333865B2 (en) * | 2015-08-21 | 2019-06-25 | Cisco Technology, Inc. | Transformation of peripheral component interconnect express compliant virtual devices in a network environment |
US10608992B2 (en) | 2016-02-26 | 2020-03-31 | Microsoft Technology Licensing, Llc | Hybrid hardware-software distributed threat analysis |
WO2017214862A1 (zh) * | 2016-06-14 | 2017-12-21 | 华为技术有限公司 | 数据访问方法和相关装置及系统 |
US10187323B2 (en) * | 2016-09-02 | 2019-01-22 | Pivotal Software, Inc. | On-demand resource provisioning |
US10908895B2 (en) * | 2018-12-21 | 2021-02-02 | Pensando Systems Inc. | State-preserving upgrade of an intelligent server adapter |
US11157203B2 (en) * | 2019-05-15 | 2021-10-26 | EMC IP Holding Company LLC | Adaptive load balancing in storage system having multiple input-output submission queues |
US11379387B2 (en) * | 2019-08-02 | 2022-07-05 | EMC IP Holding Company LLC | Storage system with submission queue selection utilizing application and submission queue priority |
US20230148292A1 (en) * | 2021-11-08 | 2023-05-11 | Spawn Computing LLC | System and method for reward-based computing services on a distributed computing platform |
-
2020
- 2020-05-18 DE DE102020113346.4A patent/DE102020113346A1/de active Pending
- 2020-05-20 US US16/878,844 patent/US11693669B2/en active Active
- 2020-05-29 CN CN202010479279.1A patent/CN112181632A/zh active Pending
-
2023
- 2023-05-31 US US18/326,142 patent/US20230315489A1/en active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11805056B2 (en) | 2013-05-09 | 2023-10-31 | Nicira, Inc. | Method and system for service switching using service tags |
US11438267B2 (en) | 2013-05-09 | 2022-09-06 | Nicira, Inc. | Method and system for service switching using service tags |
US11496606B2 (en) | 2014-09-30 | 2022-11-08 | Nicira, Inc. | Sticky service sessions in a datacenter |
US11722367B2 (en) | 2014-09-30 | 2023-08-08 | Nicira, Inc. | Method and apparatus for providing a service with a plurality of service nodes |
US11405431B2 (en) | 2015-04-03 | 2022-08-02 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US11750476B2 (en) | 2017-10-29 | 2023-09-05 | Nicira, Inc. | Service operation chaining |
US11805036B2 (en) | 2018-03-27 | 2023-10-31 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US11467861B2 (en) | 2019-02-22 | 2022-10-11 | Vmware, Inc. | Configuring distributed forwarding for performing service chain operations |
US11397604B2 (en) | 2019-02-22 | 2022-07-26 | Vmware, Inc. | Service path selection in load balanced manner |
US11354148B2 (en) | 2019-02-22 | 2022-06-07 | Vmware, Inc. | Using service data plane for service control plane messaging |
US11604666B2 (en) | 2019-02-22 | 2023-03-14 | Vmware, Inc. | Service path generation in load balanced manner |
US11609781B2 (en) | 2019-02-22 | 2023-03-21 | Vmware, Inc. | Providing services with guest VM mobility |
US11722559B2 (en) | 2019-10-30 | 2023-08-08 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11438257B2 (en) | 2020-04-06 | 2022-09-06 | Vmware, Inc. | Generating forward and reverse direction connection-tracking records for service paths at a network edge |
US11743172B2 (en) | 2020-04-06 | 2023-08-29 | Vmware, Inc. | Using multiple transport mechanisms to provide services at the edge of a network |
US11528219B2 (en) | 2020-04-06 | 2022-12-13 | Vmware, Inc. | Using applied-to field to identify connection-tracking records for different interfaces |
US11792112B2 (en) | 2020-04-06 | 2023-10-17 | Vmware, Inc. | Using service planes to perform services at the edge of a network |
US11368387B2 (en) | 2020-04-06 | 2022-06-21 | Vmware, Inc. | Using router as service node through logical service plane |
US11611625B2 (en) * | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US20220191304A1 (en) * | 2020-12-15 | 2022-06-16 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
Also Published As
Publication number | Publication date |
---|---|
DE102020113346A1 (de) | 2021-01-07 |
US11693669B2 (en) | 2023-07-04 |
US20210004245A1 (en) | 2021-01-07 |
US20230315489A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181632A (zh) | 在适配器设备中部署服务容器 | |
EP3556081B1 (en) | Reconfigurable server | |
CN109791471B (zh) | 虚拟化外围装置处的非易失性存储装置 | |
US8645965B2 (en) | Supporting metered clients with manycore through time-limited partitioning | |
US10171375B2 (en) | Constructing computing systems with flexible capacity of resources using disaggregated systems | |
US9075643B2 (en) | Automatically selecting optimal transport protocol in a cloud computing environment | |
US11546431B2 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
US20220329499A1 (en) | Opportunistic placement of compute in an edge network | |
US20230119552A1 (en) | Resource management mechanisms for stateful serverless clusters in edge computing | |
JP2023047294A (ja) | ネットワークアプライアンスを使用したコンテンツ挿入 | |
CN109656675B (zh) | 总线设备、计算机设备及实现物理主机云存储的方法 | |
CN108829529A (zh) | 虚拟机内存共享方法、装置、计算机设备及存储介质 | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
US20230138867A1 (en) | Methods for application deployment across multiple computing domains and devices thereof | |
US11005726B2 (en) | Systems and methods for configuring network interface affinity to system management features supported by a management controller | |
US11937103B1 (en) | Enhancing availability of radio-based applications using multiple compute instances and virtualized network function accelerators at cloud edge locations | |
US11765236B2 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
US11831552B1 (en) | LCS resource device access control and management system | |
CN117032905B (zh) | 容器集群与块存储的关联方法、系统及虚拟机 | |
US20230027152A1 (en) | Upgrade of network objects using security islands | |
US20240004722A1 (en) | Lcs resource device functionality provisioning system | |
US20240028402A1 (en) | Lcs resource device access control and management system | |
US20240036935A1 (en) | Lcs sdxi resource ownership system | |
US20240036925A1 (en) | Lcs sdxi data plane configuration system | |
US9898219B1 (en) | Allocating a device to a container |
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 |