CN113296926A - 一种资源分配方法、计算设备及存储介质 - Google Patents
一种资源分配方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN113296926A CN113296926A CN202010475827.3A CN202010475827A CN113296926A CN 113296926 A CN113296926 A CN 113296926A CN 202010475827 A CN202010475827 A CN 202010475827A CN 113296926 A CN113296926 A CN 113296926A
- Authority
- CN
- China
- Prior art keywords
- equipment
- node
- task
- virtual
- physical
- 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.)
- Granted
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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种资源分配方法、计算设备及存储介质。在本申请实施例中,针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备;根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。由于为每个虚拟设备创建了对应的设备节点,与虚拟设备内部进行通信,可以保证通过各自的设备节点来实现多个虚拟设备之间的资源隔离和任务隔离,从而达到一个物理设备可以被多个容器实例共享。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源分配方法、计算设备及存储介质。
背景技术
随着互联网高速发展,云服务相比于传统的计算服务,具有廉价、易扩展、可伸缩、易管理、高可用等多项优势,因此在信息互联网时代占据着越来越关键的地位。而容器技术由于它所具有的特性,被广泛的应用在云服务领域。
但由于人工智能的迅猛发展,异构计算成为了云服务的新兴热点。如何针对云服务上的多个容器,进行异构计算的资源共享和隔离。
发明内容
本申请的多个方面提供一种资源分配方法、计算设备及存储介质,用以能够实现物理设备的资源共享和隔离。
本申请实施例提供一种资源分配方法,包括:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
本申请实施例还提供一种资源分配方法,适用于设置在所述物理设备的设备驱动上层的中间层驱动,所述方法包括:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分;通过任一设备节点接收对应虚拟设备发送的任务,通过所述物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
申请实施例还提供一种资源分配方法,包括:通过至少一个设备节点接收对应虚拟设备发送的任务,一个所述设备节点对应一个所述虚拟设备,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;根据接收到任务的设备节点对应的物理设备上的硬件资源,对所述任务进行处理。
申请实施例还提供一种计算设备,包括:至少一个设备节点以及资源分配器,每个设备节点对应一个虚拟设备,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;所述设备节点,用于接收对应虚拟设备发送的任务;
所述资源分配器,用于根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
本申请实施例还提供一种计算设备,包括:存储器以及处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
本申请实施例还提供一种计算设备,包括:存储器以及处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分;通过任一设备节点接收对应虚拟设备发送的任务,通过所述物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
本申请实施例还提供一种计算设备,包括:存储器以及处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:通过至少一个设备节点接收对应虚拟设备发送的任务,一个所述设备节点对应一个所述虚拟设备,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;根据接收到任务的设备节点对应的物理设备上的硬件资源,对所述任务进行处理。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
在本申请实施例中,针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备;根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。由于为每个虚拟设备创建了对应的设备节点,与虚拟设备内部进行通信,可以保证通过各自的设备节点来实现多个虚拟设备之间的资源隔离和任务隔离,从而达到一个物理设备可以被多个虚拟设备(如,容器)实例共享。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例的资源分配系统的结构示意图;
图2为本申请一示例性实施例的资源分配方法的流程示意图;
图3为本申请又一示例性实施的资源分配的示意图;
图4为本申请又一示例性实施的资源分配的示意图;
图5为本申请一示例性实施例的资源分配方法的流程示意图;
图6为本申请一示例性实施例的资源分配方法的流程示意图;
图7为本申请又一示例性实施例提供的资源分配装置的结构示意图;
图8为本申请又一示例性实施例提供的资源分配装置的结构示意图;
图9为本申请又一示例性实施例提供的资源分配装置的结构示意图;
图10为本申请一示例性实施例提供的计算设备的结构示意图;
图11为本申请一示例性实施例提供的计算设备的结构示意图;
图12为本申请一示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
容器技术是一种将软件打包成标准化单元的技术,以用于开发、交付和部署。它确保了应用运行环境一致性,能够更快速的启动,具有:隔离性、可扩展性、迁移方便、可持续交付和部署等特点。基于以上特性,容器技术被广泛的应用在云服务领域。由于人工智能的迅猛发展,异构计算成为了云服务的新兴热点。然而如何使容器对于异构计算设备进行共享和隔离,成为了容器技术的一个难题。
本申请实施例正是针对这一痛点,提出了一种设备的虚拟化方法,使得同一硬件可以被多个虚拟设备,如容器共享使用,同时又兼具隔离性,使得在不同虚拟设备,如容器内的硬件访问不会互相影响。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种资源分配系统的结构示意图。如图1所示,该系统100可以包括:第一设备101以及第二设备102。
其中,第一设备101可以是有一定计算能力的设备,可以实现向第二设备102发送数据的功能,并从第二设备102获取到响应数据。第一设备101的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如RAM,也可以为非易失性的,例如只读存储器(Read-Only Memory,ROM)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(Operating System,OS)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、IO总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备101可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。
第二设备102是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据处理的设备。在物理实现上,第二设备102可以是任何能够提供计算服务,响应服务请求,并返回数据处理结果,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第二设备102的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
在本申请实施例中,第一设备101,发送数据至第二设备102。第二设备102接收到该数据,将该数据发送至对应的虚拟设备中,如容器或沙箱。在第二设备102中,包括至少一个虚拟设备,如容器或沙箱。同时,第二设备102中的设备驱动(也可以称为设备驱动层,或者设备驱动程序)可以针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备;根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。当第二设备102中的虚拟设备接收到该数据后,需要对该数据处理,将该数据处理生成任务,通过对应设备节点发送至设备驱动。设备驱动收到后,根据该设备节点对应的硬件资源,调度该任务,设备驱动可以驱动对应的硬件资源来处理该任务,对应的硬件资源处理该任务后,将任务结果返回给对应的虚拟设备。再由该虚拟设备返回任务结果至第一设备101。
需要说明的是,虚拟设备将任务结果返回至第一设备101的过程,可以是一个第二设备102中设备驱动执行的过程,具体的执行过程与前述的内容,相似,此处就不再说明。
在本申请实施例的应用场景中,用户通过第一设备101,如电脑,向第二设备102,如云服务器,发送数据,如用于账号登录请求的请求,该请求可以携带账号和密码。用户可以通过第一设备101安装的浏览器发送数据。第二设备102中的虚拟设备,如容器1接收该数据,并获取到账号以及密码。容器1可以通过其对应的设备节点,如通信接口,向第二设备102的设备驱动发送任务,该任务为确认该账号和密码是否正确。设备驱动接收到该任务后,驱动接收该任务的设备节点对应的硬件资源,来处理该任务。如,对应的CPU(centralprocessing unit,中央处理器)、内存以及硬盘等资源,来处理该任务。当处理结果时账号以及密码正确,则可以确定结果正确,可以登录。容器1获取到该处理结果,并通过第二设备102返回至用户的电脑,显示登录成功。
在上述本实施例中,第一设备101以及第二设备102进行网络连接,该网络连接可以是无线连接。若第一设备101以及第二设备102是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。
下面结合方法实施例,针对资源分配过程进行详细说明。
图2为本申请一示例性实施例的一种资源分配方法的流程示意图。本申请实施例提供的该方法200由计算设备执行,如,云服务器,更具体的可以是云服务器中的设备驱动。该方法200包括以下步骤:
201:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信。
202:根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
以下针对上述步骤进行详细阐述:
201:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信。
其中,虚拟设备是指直接基于物理设备的操作系统运行的设备,如容器,其中物理设备可以是指物理主机,如云服务器主机。应理解的是,对于虚拟机而言,它不是直接基于物理设备的操作系统运行的,而是间接基于该操作系统运行的,因为对于虚拟机而言,它具有自己的虚拟操作系统,以及还具有虚拟硬件资源等,如虚拟CPU等,但这并真正不属于物理设备的硬件资源,是对该硬件资源进行了虚拟化。
此外,能够实现本申请实施例的虚拟设备都属于本申请实施例的保护范围,不仅限于容器。
还需要说明的是,对于虚拟设备而言,是已经创建在了物理设备上的了。或者说是,物理设备可以根据需求,对虚拟设备进行创建。由于创建过程属于现有技术,此处不再赘述。应理解,本申请实施例是基于物理设备已经创建好了多个虚拟设备而言的,或者是至少一个虚拟设备而言的。其中,虚拟设备可以创建在物理设备中的用户态,用户态是指操作系统(如,Linux操作系统)中的一种权限级别,在用户态中,不允许其中的程序进行处理器(如,CPU)中要求特权态的操作,以避免操作系统崩溃。
设备节点是指用于链接到容器内部,提供用户态接口(即用户态中容器接口)的节点。该设备节点可以是一种通信接口,用于与容器进行通信,容器可以通过该通信接口发送数据,如,需要处理的任务。
例如,云服务器中的Linux操作系统,或者,如图3所示,云服务器中的设备驱动为每个已创建好的容器创建一个对应的设备节点,用于与设备驱动进行通信。该设备节点在创建的时候可以通过创建节点文件来实现,将该节点文件视为最终的设备节点来进行容器访问设备驱动的入口。该节点文件可以记录对应的硬件设备(也可以称为硬件资源,如,CPU等)位置和信息。
由于每个容器均与一个设备节点一一对应,即每个设备节点负责一个容器,那么可以为每个设备节点创建与其对应的容器标识,如ID等。由此,基于这个对应关系,当容器访问对应的设备节点时,设备节点可以知晓该容器是哪一个。基于此,容器就可以与设备驱动进行通信了。容器中的用户态程序可以以IOCTL(Input/Output Control,输入输出控制),内存映射,或者直接读写等方式,通过对应设备节点与设备驱动进行通信。
需要说明的是,由于每个设备节点与虚拟设备(如,容器)具有一一对应的关系,即每个虚拟设备与对应设备节点具有独有的通信通道。所以多个设备节点之间可以容易做到虚拟设备发送的任务的隔离。从而可以解决设备驱动无法区分任务来自哪个容器,因而很难实现任务的隔离的问题。而有了多设备节点后,设备驱动可以做出区分,从而可以隔离不同的容器发出的任务。
此外,对于CPU而言,该一个任务可以是对应一个进程。对于其它硬件资源而言,可以就是一个任务,该任务用于指示出需要硬件资源执行什么样的动作,如处理什么样的数据,怎么样进行处理,执行一段什么样的程序或代码等。
由于本申请实施例的适用于服务器中,更具体的是云服务器内核态中的设备驱动中,并不涉及到用户态的接口。对于本申请实施例而言,可以保证用户无感知,无论用户态的接口是否进行修改,也不会影响本申请实施例,无需进行修改,也避免了用户态的接口升级维护过程中可能带来的风险及损失。
上述根据已经预置好的虚拟设备来创建设备节点,使得设备节点的数量也被固定好了,属于静态设置,为了更加灵活地与动态虚拟设备进行匹配,本申请实施例也可以根据动态建立的虚拟设备来配置动态设备节点,从而灵活地支持虚拟设备,如容器的数量。
具体的,该方法200还可以包括:创建新的虚拟设备;为新的虚拟设备创建对应的所述设备节点。
例如,根据前文所述,云服务器可以根据服务需求,或用户提交的请求,来在云服务器上创建新的容器。在创建完新的容器后,云服务器或者云服务器的设备驱动可以根据该新创建出来的容器,进行设备节点的创建,创建过程如上文所述。
202:根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
其中,物理设备是指实体设备,如云服务器主机;硬件资源是指实体硬件资源,如CPU、内存、磁盘、网络等,对于异构计算而言,还可以包括GPU(Graphics Processing Unit,图形处理器)、显存以及NPU(neural-network processing units,嵌入式神经网络处理器)等。
例如,根据前文所述,云服务器或者云服务器中的设备驱动为每个设备节点划分对应的硬件资源。在划分的时候,设备驱动可以根据云服务器主机的硬件资源进行划分。由于硬件资源可以包括CPU、内存、磁盘、网络等,还可以包括GPU以及NPU等,所以根据将这些硬件资源进行划分,可以针对容器的个数进行平均划分,即将划分后的硬件资源分配给各个容器对应的设备节点,使得各个设备节点在接收到对应的任务后,通过驱动这些硬件资源来执行对应的任务。每个容器所对应的硬件资源可以互相独立,各不干扰。
由于每个设备节点都有对应的硬件资源,使得多个设备节点之间可以做到上述的硬件资源隔离。与上述任务隔离相似,在多个设备节点的情况下,设备驱动可以为每个节点都保留一定的硬件资源,从而避免了由于某个任务占用过多资源导致其它任务无法得到足够资源的情况。
另外,除了上述平均分配硬件资源外,还可以针对不同设备节点的重要度进行硬件资源的分配。可以将重要度高的设备节点可以分配到更多的硬件资源,而重要度低的设备节点可以分配到较少的硬件资源。于此,多个设备节点之间可以被分配到不同大小的硬件资源。无论怎么分配硬件资源,都可以实现了硬件资源的隔离,因而不同容器可以得到不同的资源大小。
在本申请实施例中,由于虚拟设备是直接利用的物理设备的硬件资源,所以各个设备节点对应的硬件资源的物理地址处于同一物理地址范围,因此不需要额外的地址转换或者是额外的页表结构,因而不会有额外的性能损失,实现了设备的轻量化。
需要说明的是,对于硬件资源来说,还可以根据硬件资源中的时间片以及物理执行单元等来划分硬件资源,具体如下:
具体的,根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,包括:为每个设备节点划分对应的物理执行单元;其中,该方法200还包括:根据划分得到的对应物理执行单元,对对应设备节点接收到的任务进行处理。
其中,物理执行单元是指物理硬件的基础执行部分,如,对于CPU而言,其物理执行单元可以是内核(也可以称为核心),当一个CPU有一个内核时,这个CPU就可以被视为物理执行单元,对于多个单核CPU而言,就可以按照每个CPU作为物理执行单元进行CPU的划分。当一个CPU为多核的话,如果具有多个多核CPU,则可以将CPU中的一个核心作为物理执行单元进行CPU的划分。
相似地,对于一个GPU而言,一个GPU是具有多个流处理器(也可以称为GPU的核心或流处理单元)的,那么这个流处理器可以作为物理执行单元来划分GPU。
相似地,对于一个NPU而言,一个NPU可以具有多个内核,也可以具有一个内核,每个内核也可以具有多个流处理器。那么对于NPU,可以通过流处理器作为物理执行单元来划分NPU,或者通过每个内核作为物理执行单元来划分NPU,也可以通过一个NPU作为物理执行单元来划分NPU。
对于物理设备而言,如云服务主机,可以具有多个多核CPU、多个GPU以及多个NPU等。应理解,对于异构计算对应的硬件资源可以不单单包括上述描述的资源,还可以包括其它属于该异构计算对应的硬件资源,均属于本申请实施例的保护范围。随着异构计算对应的硬件资源增加,均可以按照本申请实施例保护的方式进行硬件资源划分,此处就不再赘述了。
此外,其它硬件资源也可以根据自身或者自身基础单元为物理执行单元进行硬件资源的划分。如,对于内存而言,可以根据进行内存分区(如,通过划分地址来实现)来划分内存。对于硬盘而言,也可以进行硬盘分区(如,通过划分地址来实现)来划分硬盘。网络划分可以包括网络地址划分以及网络端口划分等。对于其它硬件资源的划分也是与上述划分方式相似的,此处就不再一一阐述了。
例如,根据前文所述,云服务器或者云服务器中的设备驱动为每个设备节点划分好对应的硬件资源。当其中任意一个设备节点接收到其对应的容器发送的任务(也可以称为待处理任务),则设备驱动驱动对应的硬件资源来处理进行任务处理。
以下针对时间片来说明,如何划分硬件资源:
具体的,该方法200还可以包括:为每个设备节点划分对应硬件资源的时间片;在对应时间片到达的情况下,通过对应硬件资源对对应设备节点接收到的任务进行处理。
其中,时间片是指用于占用硬件资源的时间,通常是指一段时间,如10ms(毫秒)。以处理器为例进行说明,如对于CPU而言,每个CPU可以为划分出多个时间片,并分配给不同的设备节点,使得设备节点就可以根据时间片,使得CPU对任务进行处理,从而实现CPU在一段时间内处理多个任务的情况。此外,对于多核CPU而言,每个核心可以划分出来多个时间片,并分配给不同的设备节点,使得设备节点可以根据时间片,使得CPU核心对任务进行处理,实现CPU在一段时间内处理多个任务的情况。对于GPU以及NPU而言也是相似的,此处就不再一一赘述了。其它硬件资源也可以以此为依据进行划分。但是时间片可以根据需求进行调整。应理解,每个设备节点可以具有多个时间片,以持续完成任务,每个时间片的时长可以相同。
例如,根据前文所述,云服务器或者云服务器中的设备驱动为每个设备节点按照时间片来划分硬件资源后。当设备节点接收到任务,则根据时间片来驱动对应的硬件资源执行任务。在时间片对应的开始时间到来时,驱动对应硬件资源执行任务,在时间片对应的结束时间到来时,硬件资源可以暂时中止,以等待下次时间片的到来,继续处理该任务。此外,硬件资源在中止了该任务后,会根据其它任务对应的时间片,去处理其它任务,以此类推。
除此以外,还可以将时间片以及物理执行单元融合到一起进行任务处理,具体如下:
具体的,根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,包括:为每个设备节点划分对应的物理执行单元;其中,该方法200还包括:为每个设备节点划分对应硬件资源的时间片;在对应时间片到达的情况下,通过划分得到的对应物理执行单元对对应设备节点接收到的任务进行处理。
由于该方式与前文描述的方式相似,此处就不再赘述。
需要说明的是,除了上述几种方式外,还可以持续更新其它划分方式划分硬件资源,从而来进行任务处理,例如:抢占方式:
例如,对于云服务器新创建的容器以及对应的设备节点,没有来的及给其分配对应的硬件资源。那么可以通过抢占方式来获取到硬件资源,从而执行任务。如,该设备节点接收到任务后,可以通过设备驱动向对应的硬件资源(这里可以随机选择硬件,也可以选择最合适处理该任务的硬件)发送执行请求,对应的硬件资源(也可以称为硬件)收到请求后,会先暂停,即中止掉当前正在处理的任务,转而先去处理新容器对应的设备节点接收到的任务,等到处理完该任务,再回来处理暂停的任务。
其它方式就不再一一赘述,只要符合本申请实施例思路的均属于本申请的保护范围。
上述对设备节点划分好了硬件资源后,这些划分到的硬件资源就属于静态设置了,为了更加灵活地分配硬件资源,本申请实施例也可以动态地为设备节点进行硬件资源划分,从而灵活地支持设备节点,进行任务的处理。
具体的,该方法200还包括:接收针对任一虚拟设备的资源分配请求;重新对该虚拟设备对应的设备节点进行硬件资源划分。
例如,根据前文所述,云服务器可以接收到用户发送的请求,该请求用于申请为该用户所属的容器进行硬件资源的扩充,或者缩减。以扩充为例进行说明,此时,云服务器或者云服务器中的设备驱动基于该请求,可以重新为该容器对应的设备节点进行硬件资源的划分,可以先释放掉原有的硬件资源,然后从云服务器主机中未被划分的硬件资源来进行资源划分,并分配给该设备节点。或者,当云服务器主机中没有未被划分的硬件资源,则可以以抢占的方式,从其它设备节点处进行硬件资源抢占,即两个设备节点,或者多个设备节点共享相同的硬件资源,在发生硬件资源冲突时,需要通过抢占的方式进行硬件资源的抢占,从而完成硬件资源的重新划分。由于硬件资源的缩减与上述内容相似,此处不再赘述。
在针对每个虚拟设备,创建了设备节点后,以及为每个设备节点分配了对应的硬件资源后,就可以进行任务处理了。
需要说明的是,在设备驱动中可以通过资源管理器来进行硬件资源的隔离,如图3所示,通过该资源管理器来保证每个容器无法访问到不属于其的硬件资源,每个容器无法使用超出限度的硬件资源。具体实施方式前文已经阐述过了,此处就不再赘述。
具体的,该方法200还包括:通过任一设备节点,接收对应虚拟设备发送的任务;根据该设备节点对应的硬件资源,对任务进行处理;将处理后的结果,返回至对应虚拟设备。
由于前文已经对任务处理进行了阐述,此处就不再赘述。仅说明,如,云服务器的硬件资源处理完任务后,可以由虚拟设备自己轮询访问对应存储区域的处理结果,并获取到处理结果。
本申请实施例可以为不同的虚拟设备,如容器,设定不同数量的硬件资源,从而使得每个设备节点对应的任务或者容器都有了硬件资源限制,通过不同的硬件资源的分配策略,可以达到更好的硬件资源的利用率。
此外,值得说明的是,由于每个设备节点均被划分好了对应的硬件资源,所以在任务发送过来后,有可能出现对应的硬件资源不能满足该任务,即不能处理该任务,需要更多的硬件资源来处理该任务。此时,设备节点可以确定该任务失败了,并将这个处理结果以及失败的原因发送至对应虚拟设备,如容器。虚拟设备需要重新将任务进行拆分,以使得满足对应的硬件资源。虚拟设备将拆分后的任务在重新向对应设备节点发送,进行任务处理。
另外,还可以在为每个设备节点分配好对应硬件资源后,可以通过设备节点告知对应虚拟设备,如容器,其任务对应的硬件资源,以使得虚拟设备在进行任务生成的时候,根据对应的硬件资源生成任务,以保证对应的硬件资源可以处理该任务。
为了更好地优化各个设备节点,可以为更重要的设备节点提供更好的硬件资源,优先进行对应任务的处理,可以通过为设备节点设置优先级:
具体的,该方法200还包括:为每个设备节点设置各自的优先级;当在同一时间接收到多个任务的情况下,根据优先级,来处理任务。
例如,根据前文所述,云服务器或者云服务器中的设备驱动可以为每个设备节点设置各自的优先级,如容器1对应设备节点1的优先级为一级(即最高优先级)、容器2对应设备节点2的优先级为二级等。对于抢占方式(即抢占资源的方式)而言,不同设备节点同一时间需要相同硬件资源来处理各自的任务,则需要通过抢占方式来实现,此时可以通过优先级来确定,同一硬件资源先处理哪个任务,先处理优先级高的任务。
应理解,上述抢占方式的实现可以是没有时间片的情况下,或者是时间片相同的情况下,但是需要用到相同的硬件资源,或者就是通过抢占方式进行硬件资源抢占。
由于多个设备节点之间可以实现不同的优先级。在任务隔离的基础上,设备驱动可以为每个设备节点赋予不同的优先级,从而可以达到不同类型的虚拟设备,如容器之间的任务优先级的效果。若不同的设备节点不是同一时间情况下接收到的任务,也需要进行硬件资源抢占的话,可以具体实现如下:
具体的,该方法200还包括:为每个设备节点设置各自的优先级;在接收到任务的情况下,将当前正在处理的任务对应的设备节点的第一优先级与接收到的任务对应的设备节点第二优先级进行比较;当第一优先级低于第二优先级,则停止当前正在处理的任务,优先处理接收到的任务。
例如,根据前文所述,云服务器或者云服务器中的设备驱动在设置完优先级后,云服务器中的其中某硬件资源接收到需要处理的任务,可以先确定出该任务对应的设备节点的优先级,并跟当前正在处理的任务对应的优先级进行比较,若接收到的任务对应的优先级更高,则中断当前正在处理的任务,优先处理新任务。否则继续处理当前任务。
应理解,此时这些设备节点可以不具有时间片,或者具有相同的时间片,但是具有相同硬件资源,或者就是通过抢占方式进行硬件资源抢占。
此外,本申请实施例还可以为不同优先级的设备节点设置不同的时间片。
具体的,该方法200还包括:为每个设备节点设置各自的优先级;对同一优先级的设备节点,划分相同时间片,以使用对应硬件资源。
例如,根据前文所述,云服务器或者云服务器中的设备驱动可以先设置优先级,在设置完优先级后,再进行硬件资源分配,分配给具有相同优先级的设备节点相同时间片,来使用对应的硬件资源,从而使得优先处理优先级高的任务。
具体的,该方法200还包括:划分给优先级高的设备节点的时间片多于划分给优先级低的设备节点的时间片。
例如,根据前文所述,云服务器或者云服务器中的设备驱动可以先设置优先级,在设置完优先级后,再进行硬件资源分配。为了更好地处理优先级高的任务,还可以分配给优先级高的设备节点更多的时间片。
需要说明的是,云服务器或者云服务器可以设置一个优先级与时间片的对应关系,不同优先级对应的时间片数量不同,时间片的长度也可以不同,对应关系的原则就是优先级高的时间片要多于优先级低的时间片。
相似地,本申请实施例还可以为不同优先级的设备节点设置不同的物理执行单元。
具体的,该方法200还包括:为每个设备节点设置各自的优先级;对同一优先级的设备节点,划分相同物理执行单元,以进行任务处理。
例如,根据前文所述,云服务器或者云服务器中的设备驱动可以先设置优先级,在设置完优先级后,再进行硬件资源分配,分配给具有相同优先级的设备节点相同物理执行单元(这里的物理执行单元可以是较好的物理执行单元,即将好的物理执行单元优先分配给了优先级高的设备节点),来使用对应的硬件资源,从而使得优先级高的任务可以得到更好地处理。
具体的,该方法200还包括:划分给优先级高的设备节点的物理执行单元多于划分给优先级低的设备节点的物理执行单元。
例如,根据前文所述,云服务器或者云服务器中的设备驱动可以先设置优先级,在设置完优先级后,再进行硬件资源分配。为了更好地处理优先级高的任务,还可以分配给优先级高的设备节点更多的物理执行单元,从而提高任务处理效果。
需要说明的是,在设备驱动中可以通过任务调度器调度多个容器通过设备节点提交的任务,如图3所示,它可以对于不同设备节点中由虚拟设备提交的任务,进行基于时间片、物理执行单元、和/或其它方式的调度。具体实施方式前文已经阐述过了,此处就不再赘述。
基于上述相同的发明构思,图5示出了本申请另一示例性实施例提供的一种资源分配方法的流程示意图。本申请实施例提供的该方法500由上述服务器执行,更具体的可以是设置在云服务器的设备驱动上层的中间层驱动,如图4所示。该方法500包括以下步骤:
501:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备。
502:根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分。
503:通过任一设备节点接收对应虚拟设备发送的任务,通过物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
由于前文已经详细阐述过步骤501-503的具体实施方式,此处就不再赘述。仅说明,如图4所示,该方法500可以适用于单独的创建一个中间层驱动,该中间层驱动创建在设备驱动的上层,同属于内核态。
此外,也可以在中间层驱动中实现上述的任务管理器,资源分配器以及多个设备节点,此处就不再赘述。
该方法500的中间层驱动可以独立于设备驱动而存在,不需要对原有物理设备中的设备驱动进行任何修改。
此外,还需说明:步骤503中,通过任一设备节点接收对应虚拟设备发送的任务,通过物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
其中,通过物理设备的设备驱动,驱动对应的硬件资源进行任务处理,包括:与设备驱动进行通信,使得设备驱动启动对应的硬件资源,进行任务处理。
在中间层驱动为每个设备节点划分好对应的硬件资源后,就可以等待虚拟设备发送任务过来了。当虚拟设备,如容器发送任务过来后,中间层驱动可以向设备驱动发送消息,进行通信,以使得驱动设备驱动对应的硬件资源来执行任务。
另,本方法500未能详细描述的内容,还可以参照上述方法200中的各个步骤。
基于上述相同的发明构思,图6示出了本申请另一示例性实施例提供的一种资源分配方法的流程示意图。本申请实施例提供的该方法600由上述服务器执行,更具体的可以是设置在云服务器的设备驱动或者中间层驱动,该方法600包括以下步骤:
601:通过至少一个设备节点接收对应虚拟设备发送的任务,一个设备节点对应一个虚拟设备,虚拟设备是指直接基于物理设备的操作系统运行的设备。
602:根据接收到任务的设备节点对应的物理设备上的硬件资源,对任务进行处理。
由于前文已经详细阐述过步骤601-602的具体实施方式,此处就不再赘述。另,本方法600未能详细描述的内容,还可以参照上述方法200中的各个步骤。
图7为本申请一示例性实施例提供的一种资源分配装置的结构框架示意图。该装置700可以应用于云服务器,更具体的可以是云服务器中的设备驱动。该装置700包括创建模块701以及划分模块702;以下针对各个模块的功能进行详细的阐述:
创建模块701,用于针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备。
划分模块702,用于根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
此外,该装置700还包括:接收模块,用于通过任一设备节点,接收对应虚拟设备发送的任务;处理模块,用于根据该设备节点对应的硬件资源,对任务进行处理;返回模块,用于将处理后的结果,返回至对应虚拟设备。
此外,该装置700还包括:设置模块,用于为每个设备节点设置各自的优先级;处理模块,用于当在同一时间接收到多个任务的情况下,根据优先级,来处理任务。
此外,设置模块,还用于为每个设备节点设置各自的优先级;比较模块,用于在接收到任务的情况下,将当前正在处理的任务对应的设备节点的第一优先级与接收到的任务对应的设备节点第二优先级进行比较;停止模块,用于当第一优先级低于第二优先级,则停止当前正在处理的任务,优先处理接收到的任务。
此外,接收模块,还用于接收针对任一虚拟设备的资源分配请求;划分模块702,还用于重新对该虚拟设备对应的设备节点进行硬件资源划分。
此外,创建模块701,还用于创建新的虚拟设备;为新的虚拟设备创建对应的设备节点。
此外,划分模块702,还用于为每个设备节点划分对应硬件资源的时间片;处理模块,还用于在对应时间片到达的情况下,通过对应硬件资源对对应设备节点接收到的任务进行处理。
其中,划分模块702,包括:为每个设备节点划分对应的物理执行单元;其中,处理模块,还用于根据划分得到的对应物理执行单元,对对应设备节点接收到的任务进行处理。
其中,划分模块702,用于为每个设备节点划分对应的物理执行单元;为每个设备节点划分对应硬件资源的时间片;处理模块,还用于在对应时间片到达的情况下,通过划分得到的对应物理执行单元对对应设备节点接收到的任务进行处理。
此外,设置模块,还用于为每个设备节点设置各自的优先级;划分模块702,还用于对同一优先级的设备节点,划分相同时间片,以使用对应硬件资源。
其中,划分给优先级高的设备节点的时间片多于划分给优先级低的设备节点的时间片。
此外,设置模块,还用于为每个设备节点设置各自的优先级;划分模块702,还用于对同一优先级的设备节点,划分相同物理执行单元,以进行任务处理。
其中,划分给优先级高的设备节点的物理执行单元多于划分给优先级低的设备节点的物理执行单元。
其中,该装置700通过物理设备的设备驱动来实现。
其中,虚拟设备包括容器。
其中,硬件资源包括异构计算对应的硬件资源。
图8为本申请一示例性实施例提供的一种资源分配装置的结构框架示意图。该装置800可以应用于云服务器,更具体的可以是设置在云服务器的设备驱动上层的中间层驱动。该装置800包括创建模块801、划分模块802以及处理模块803;以下针对各个模块的功能进行详细的阐述:
创建模块801,用于针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备。
划分模块802,用于根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分。
处理模块803,用于通过任一设备节点接收对应虚拟设备发送的任务,通过物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
其中,处理模块803,用于与设备驱动进行通信,使得设备驱动启动对应的硬件资源,进行任务处理。
需要说明的是,对于装置800未能提及的部分内容,可以参照上述装置700的内容。
图9为本申请一示例性实施例提供的一种资源分配装置的结构框架示意图。该装置900可以应用于云服务器,更具体的可以是设置在云服务器的设备驱动。该装置900包括创建模块901以及处理模块902;以下针对各个模块的功能进行详细的阐述:
创建模块901,用于通过至少一个设备节点接收对应虚拟设备发送的任务,一个设备节点对应一个虚拟设备,虚拟设备是指直接基于物理设备的操作系统运行的设备。
处理模块902,用于根据接收到任务的设备节点对应的物理设备上的硬件资源,对任务进行处理。
需要说明的是,对于装置900未能提及的部分内容,可以参照上述装置700的内容。
基于上述相同的发明构思,本申请提出一种计算设备,如服务器,特别是云服务器。该计算设备可以包括:至少一个设备节点以及资源分配器,每个设备节点对应一个虚拟设备,虚拟设备是指直接基于物理设备的操作系统运行的设备。
其中,设备节点,用于接收对应虚拟设备发送的任务。
资源分配器,用于根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
此外,该设备还包括:任务调度器;任务调度器,用于为每个设备节点划分对应硬件资源的时间片;在对应时间片到达的情况下,通过对应硬件资源对对应设备节点接收到的任务进行处理。
此外,任务调度器,用于将设备节点接收到的任务,调度给对应设备节点划分得到的对应物理执行单元进行处理。
此外,任务调度器,用于对同一优先级的设备节点,划分相同时间片,以使用对应硬件资源。
此外,任务调度器,用于划分给优先级高的设备节点的时间片多于划分给优先级低的设备节点的时间片。
此外,任务调度器,用于对同一优先级的设备节点,划分相同物理执行单元,以进行任务处理。
此外,任务调度器,用于划分给优先级高的设备节点的物理执行单元多于划分给优先级低的设备节点的物理执行单元。
本申请实施例中基于软件实现的资源管理器和任务调度器都具有高度的灵活性,可以配置不同调度策略及硬件资源分配的方案。
由于前文已经阐述过此处,就不再赘述。
需要说明的是,对于该设备未能提及的部分内容,可以参照上述方法200的内容。
以上描述了图7所示的装置700的内部功能和结构,在一个可能的设计中,图7所示的装置700的结构可实现为计算设备,如,服务器。如图10所示,该设备1000可以包括:存储器1001以及处理器1002;
存储器1001,用于存储计算机程序。
处理器1002,用于执行计算机程序,以用于:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备;根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
此外,处理器1002,还用于,通过任一设备节点,接收对应虚拟设备发送的任务;根据该设备节点对应的硬件资源,对任务进行处理;将处理后的结果,返回至对应虚拟设备。
此外,处理器1002,还用于,为每个设备节点设置各自的优先级;当在同一时间接收到多个任务的情况下,根据优先级,来处理任务。
此外,处理器1002,还用于,为每个设备节点设置各自的优先级;在接收到任务的情况下,将当前正在处理的任务对应的设备节点的第一优先级与接收到的任务对应的设备节点的第二优先级进行比较;当第一优先级低于第二优先级,则停止当前正在处理的任务,优先处理接收到的任务。
此外,处理器1002,还用于,接收针对任一虚拟设备的资源分配请求;重新对该虚拟设备对应的设备节点进行硬件资源划分。
此外,处理器1002,还用于,创建新的虚拟设备;为新的虚拟设备创建对应的设备节点。
此外,处理器1002,还用于,为每个设备节点划分对应硬件资源的时间片;在对应时间片到达的情况下,通过对应硬件资源对对应设备节点接收到的任务进行处理。
其中,处理器1002,具体用于:为每个设备节点划分对应的物理执行单元;此外,处理器1002,还用于,根据划分得到的对应物理执行单元,对对应设备节点接收到的任务进行处理。
其中,处理器1002,具体用于:为每个设备节点划分对应的物理执行单元;为每个设备节点划分对应硬件资源的时间片;此外,处理器1002,还用于,在对应时间片到达的情况下,通过划分得到的对应物理执行单元对对应设备节点接收到的任务进行处理。
此外,处理器1002,还用于,为每个设备节点设置各自的优先级;对同一优先级的设备节点,划分相同时间片,以使用对应硬件资源。
其中,划分给优先级高的设备节点的时间片多于划分给优先级低的设备节点的时间片。
此外,处理器1002,还用于,为每个设备节点设置各自的优先级;对同一优先级的设备节点,划分相同物理执行单元,以进行任务处理。
其中,划分给优先级高的设备节点的物理执行单元多于划分给优先级低的设备节点的物理执行单元。
其中,虚拟设备包括容器。
其中,硬件资源包括异构计算对应的硬件资源。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图2方法实施例中一种资源分配方法的步骤。
以上描述了图8所示的装置800的内部功能和结构,在一个可能的设计中,图8所示的装置800的结构可实现为计算设备,如,服务器。如图11所示,该设备1100可以包括:存储器1101以及处理器1102;
存储器1101,用于存储计算机程序;
处理器1102,用于执行计算机程序,以用于:针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,设备节点用于与对应虚拟设备进行通信,虚拟设备是指直接基于物理设备的操作系统运行的设备;根据物理设备上的硬件资源,为每个设备节点进行硬件资源划分;通过任一设备节点接收对应虚拟设备发送的任务,通过物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
其中,处理器1102,具体用于:与设备驱动进行通信,使得设备驱动启动对应的硬件资源,进行任务处理。
需要说明的是,对于该设备1100未能提及的部分内容,可以参照上述设备1000的内容。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图5方法实施例中一种资源分配方法的步骤。
以上描述了图9所示的装置900的内部功能和结构,在一个可能的设计中,图9所示的装置900的结构可实现为计算设备,如,服务器。如图12所示,该设备1200可以包括:存储器1201以及处理器1202;
存储器1201,用于存储计算机程序;
处理器1202,用于执行计算机程序,以用于:通过至少一个设备节点接收对应虚拟设备发送的任务,一个设备节点对应一个虚拟设备,虚拟设备是指直接基于物理设备的操作系统运行的设备;根据接收到任务的设备节点对应的物理设备上的硬件资源,对任务进行处理。
需要说明的是,对于该设备1200未能提及的部分内容,可以参照上述设备1000的内容。
另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图6方法实施例中一种资源分配方法的步骤。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (30)
1.一种资源分配方法,包括:
针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
2.根据权利要求1所述的方法,所述方法还包括:
通过任一所述设备节点,接收对应所述虚拟设备发送的任务;
根据该设备节点对应的硬件资源,对所述任务进行处理;
将处理后的结果,返回至对应所述虚拟设备。
3.根据权利要求1所述的方法,所述方法还包括:
为每个设备节点设置各自的优先级;
当在同一时间接收到多个任务的情况下,根据所述优先级,来处理任务。
4.根据权利要求1所述的方法,所述方法还包括:
为每个设备节点设置各自的优先级;
在接收到任务的情况下,将当前正在处理的任务对应的设备节点的第一优先级与接收到的任务对应的设备节点的第二优先级进行比较;
当所述第一优先级低于所述第二优先级,则停止当前正在处理的任务,优先处理所述接收到的任务。
5.根据权利要求1所述的方法,所述方法还包括:
接收针对任一虚拟设备的资源分配请求;
重新对该虚拟设备对应的设备节点进行硬件资源划分。
6.根据权利要求1所述的方法,所述方法还包括:
创建新的所述虚拟设备;
为所述新的虚拟设备创建对应的所述设备节点。
7.根据权利要求1或2所述的方法,所述方法还包括:
为每个设备节点划分对应硬件资源的时间片;
在对应时间片到达的情况下,通过对应硬件资源对对应设备节点接收到的任务进行处理。
8.根据权利要求1所述的方法,所述根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,包括:
为每个设备节点划分对应的物理执行单元;
其中,所述方法还包括:
根据划分得到的对应物理执行单元,对对应设备节点接收到的任务进行处理。
9.根据权利要求1所述的方法,所述根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,包括:
为每个设备节点划分对应的物理执行单元;
其中,所述方法还包括:
为每个设备节点划分对应硬件资源的时间片;
在对应时间片到达的情况下,通过划分得到的对应物理执行单元对对应设备节点接收到的任务进行处理。
10.根据权利要求1所述的方法,所述方法还包括:
为每个设备节点设置各自的优先级;
对同一优先级的设备节点,划分相同时间片,以使用对应硬件资源。
11.根据权利要求10所述的方法,划分给优先级高的设备节点的时间片多于划分给优先级低的设备节点的时间片。
12.根据权利要求1所述的方法,所述方法还包括:
为每个设备节点设置各自的优先级;
对同一优先级的设备节点,划分相同物理执行单元,以进行任务处理。
13.根据权利要求12所述的方法,划分给优先级高的设备节点的物理执行单元多于划分给优先级低的设备节点的物理执行单元。
14.根据权利要求1所述的方法,所述方法通过所述物理设备的设备驱动来实现。
15.根据权利要求1-14任一项所述的方法,所述虚拟设备包括容器。
16.根据权利要求1-14任一项所述的方法,所述硬件资源包括异构计算对应的硬件资源。
17.一种资源分配方法,适用于设置在所述物理设备的设备驱动上层的中间层驱动,所述方法包括:
针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分;
通过任一设备节点接收对应虚拟设备发送的任务,通过所述物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
18.根据权利要求17所述的方法,所述通过所述物理设备的设备驱动,驱动对应的硬件资源进行任务处理,包括:
与所述设备驱动进行通信,使得所述设备驱动启动所述对应的硬件资源,进行任务处理。
19.一种资源分配方法,包括:
通过至少一个设备节点接收对应虚拟设备发送的任务,一个所述设备节点对应一个所述虚拟设备,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
根据接收到任务的设备节点对应的物理设备上的硬件资源,对所述任务进行处理。
20.一种计算设备,包括:至少一个设备节点以及资源分配器,每个设备节点对应一个虚拟设备,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
所述设备节点,用于接收对应虚拟设备发送的任务;
所述资源分配器,用于根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
21.根据权利要求20所述的设备,所述设备还包括:任务调度器;
所述任务调度器,用于为每个设备节点划分对应硬件资源的时间片;
在对应时间片到达的情况下,通过对应硬件资源对对应设备节点接收到的任务进行处理。
22.根据权利要求21所述的设备,
所述任务调度器,用于将设备节点接收到的任务,调度给对应设备节点划分得到的对应物理执行单元进行处理。
23.根据权利要求21所述的设备,
所述任务调度器,用于对同一优先级的设备节点,划分相同时间片,以使用对应硬件资源。
24.根据权利要求21所述的设备,
所述任务调度器,用于划分给优先级高的设备节点的时间片多于划分给优先级低的设备节点的时间片。
25.根据权利要求21所述的设备,
所述任务调度器,用于对同一优先级的设备节点,划分相同物理执行单元,以进行任务处理。
26.根据权利要求21所述的设备,
所述任务调度器,用于划分给优先级高的设备节点的物理执行单元多于划分给优先级低的设备节点的物理执行单元。
27.一种计算设备,包括:存储器以及处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分,以便任一设备节点对应的虚拟设备发送任务的情况下,直接根据对应的硬件资源进行任务处理。
28.一种计算设备,包括:存储器以及处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
针对至少一个虚拟设备,为每个虚拟设备创建对应的设备节点,所述设备节点用于与对应虚拟设备进行通信,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
根据所述物理设备上的硬件资源,为每个所述设备节点进行硬件资源划分;
通过任一设备节点接收对应虚拟设备发送的任务,通过所述物理设备的设备驱动,驱动对应的硬件资源进行任务处理。
29.一种计算设备,包括:存储器以及处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以用于:
通过至少一个设备节点接收对应虚拟设备发送的任务,一个所述设备节点对应一个所述虚拟设备,所述虚拟设备是指直接基于物理设备的操作系统运行的设备;
根据接收到任务的设备节点对应的物理设备上的硬件资源,对所述任务进行处理。
30.一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求1-19任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475827.3A CN113296926B (zh) | 2020-05-29 | 2020-05-29 | 一种资源分配方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475827.3A CN113296926B (zh) | 2020-05-29 | 2020-05-29 | 一种资源分配方法、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296926A true CN113296926A (zh) | 2021-08-24 |
CN113296926B CN113296926B (zh) | 2022-06-21 |
Family
ID=77318071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010475827.3A Active CN113296926B (zh) | 2020-05-29 | 2020-05-29 | 一种资源分配方法、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296926B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089926A (zh) * | 2022-01-20 | 2022-02-25 | 阿里云计算有限公司 | 分布式存储空间的管理方法、计算设备及存储介质 |
CN116112306A (zh) * | 2023-02-08 | 2023-05-12 | 广州市保伦电子有限公司 | 一种去中心化的网络交互方法、装置、设备及存储介质 |
WO2023165431A1 (zh) * | 2022-03-03 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 用于安全容器的设备访问方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520550A (zh) * | 2001-04-20 | 2004-08-11 | �������չɷ�����˾ | 在处理系统中虚拟连网的系统及方法 |
CN101488113A (zh) * | 2008-11-25 | 2009-07-22 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
CN104714849A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
CN106201720A (zh) * | 2016-07-11 | 2016-12-07 | 广州高能计算机科技有限公司 | 虚拟对称多处理虚拟机创建方法、数据处理方法及系统 |
CN107533469A (zh) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | 对图形处理单元资源的容器访问 |
CN108984264A (zh) * | 2017-06-02 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 虚拟gpu的实现方法、装置及系统 |
CN110764901A (zh) * | 2019-09-17 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 基于gpu资源的数据处理方法、电子设备及系统 |
CN110798541A (zh) * | 2019-10-31 | 2020-02-14 | 新华三大数据技术有限公司 | 接口共享、报文转发方法、装置、电子设备及存储介质 |
-
2020
- 2020-05-29 CN CN202010475827.3A patent/CN113296926B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520550A (zh) * | 2001-04-20 | 2004-08-11 | �������չɷ�����˾ | 在处理系统中虚拟连网的系统及方法 |
CN101488113A (zh) * | 2008-11-25 | 2009-07-22 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
CN104714849A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
CN107533469A (zh) * | 2015-05-29 | 2018-01-02 | 英特尔公司 | 对图形处理单元资源的容器访问 |
CN106201720A (zh) * | 2016-07-11 | 2016-12-07 | 广州高能计算机科技有限公司 | 虚拟对称多处理虚拟机创建方法、数据处理方法及系统 |
CN108984264A (zh) * | 2017-06-02 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 虚拟gpu的实现方法、装置及系统 |
CN110764901A (zh) * | 2019-09-17 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 基于gpu资源的数据处理方法、电子设备及系统 |
CN110798541A (zh) * | 2019-10-31 | 2020-02-14 | 新华三大数据技术有限公司 | 接口共享、报文转发方法、装置、电子设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089926A (zh) * | 2022-01-20 | 2022-02-25 | 阿里云计算有限公司 | 分布式存储空间的管理方法、计算设备及存储介质 |
WO2023165431A1 (zh) * | 2022-03-03 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 用于安全容器的设备访问方法及系统 |
CN116112306A (zh) * | 2023-02-08 | 2023-05-12 | 广州市保伦电子有限公司 | 一种去中心化的网络交互方法、装置、设备及存储介质 |
CN116112306B (zh) * | 2023-02-08 | 2024-02-13 | 广东保伦电子股份有限公司 | 一种去中心化的网络交互方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113296926B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467725B2 (en) | Managing access to a resource pool of graphics processing units under fine grain control | |
US11861203B2 (en) | Method, apparatus and electronic device for cloud service migration | |
CN113296926B (zh) | 一种资源分配方法、计算设备及存储介质 | |
CN104050045B (zh) | 基于磁盘io的虚拟资源分配方法及装置 | |
US8352938B2 (en) | System, method and program to migrate a virtual machine | |
US9052932B2 (en) | Hybrid virtual machine configuration management | |
US10897428B2 (en) | Method, server system and computer program product for managing resources | |
JP2016541072A (ja) | リソース処理方法、オペレーティング・システム、およびデバイス | |
US11281388B2 (en) | Method for managing a multi-system shared memory, electronic device and non-volatile computer-readable storage medium | |
CN110888743A (zh) | 一种gpu资源使用方法、装置及存储介质 | |
KR20210095690A (ko) | 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체 | |
US10275558B2 (en) | Technologies for providing FPGA infrastructure-as-a-service computing capabilities | |
US11334372B2 (en) | Distributed job manager for stateful microservices | |
CN114138422B (zh) | 可扩展性的NVMe存储虚拟化方法和系统 | |
CN108351810B (zh) | 用于虚拟化图形处理的扩展 | |
CN112905342B (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
US10002016B2 (en) | Configuration of virtual machines in view of response time constraints | |
EP4113298A1 (en) | Task scheduling method, computing device and storage medium | |
CN112130960A (zh) | 一种轻量化移动边缘计算节点及构建方法 | |
CN113535319A (zh) | 一种实现多rdma网卡虚拟化的方法、设备及存储介质 | |
CN111459668A (zh) | 用于服务器的轻量级资源虚拟化方法及轻量级资源虚拟化装置 | |
CN114880077A (zh) | 资源调度方法、设备及存储介质 | |
KR20220161070A (ko) | 클라우드 환경에서 컨테이너 기반의 gpu 자원 공유 방법 및 장치 | |
CN107967165B (zh) | 基于lvm的虚拟机离线迁移方法 | |
CN116157778A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |