CN117280325A - 在运行时对计算机进行动态分区的系统和方法 - Google Patents

在运行时对计算机进行动态分区的系统和方法 Download PDF

Info

Publication number
CN117280325A
CN117280325A CN202180097729.3A CN202180097729A CN117280325A CN 117280325 A CN117280325 A CN 117280325A CN 202180097729 A CN202180097729 A CN 202180097729A CN 117280325 A CN117280325 A CN 117280325A
Authority
CN
China
Prior art keywords
hardware resources
subset
partition
computer
workload
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
CN202180097729.3A
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Publication of CN117280325A publication Critical patent/CN117280325A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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/505Allocation 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 the load
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种计算机,包括控制器和包含多个硬件资源的硬件资源集。所述控制器用于接收第一工作负载和第二工作负载的指示。所述计算机还用于通过将硬件资源的第一子集分配给所述第一工作负载来生成所述计算机的第一分区,并通过将硬件资源的第二子集分配给所述第二工作负载来生成所述计算机的第二分区。所述计算机在所分配的硬件资源的第一子集上在所述第一分区中执行所述第一工作负载,并在所分配的硬件资源的第二子集上在所述第二分区中执行所述第二工作负载。所述硬件资源的第一子集和所述硬件资源的第二子集小于所述硬件资源集。所述控制器实现了所述计算机的动态分区,并减少了开销和性能损失。

Description

在运行时对计算机进行动态分区的系统和方法
技术领域
本发明大体上涉及硬件分区领域,尤其涉及在运行时对计算机进行动态分区的系统和方法。
背景技术
通常,数据中心用于组织、处理、存储和分发大量数据。在这些数据中心中,分区用于数据中心的工作负载管理和数据整合。典型的工作负载包括在计算机系统中运行的多个程序。此外,数据中心的工作负载通常不会直接转换为特定硬件。数据中心通常支持多个物理服务器、网络设备等。如今,服务器在容量和性能方面变得更加突出和稳健,但典型的工作负载(例如云工作负载)所需的资源(例如更少的中央处理器(central processingunit,CPU)、存储器和存储设备)远少于此类服务器上可用的资源。因此,在单个服务器上运行单个工作负载会导致服务器的大部分未被充分利用。
因此,希望对每个服务器进行分区,以使服务器的每个分区都有适合的特定工作负载。但是,在这种情况下,每个工作负载可能需要其自身的操作系统(operating system,OS),并且在没有虚拟化技术(或自定义硬件)的情况下,传统上不可能在同一硬件(例如,服务器)上运行多个操作系统。传统的虚拟化技术依赖于硬件扩展(或模拟)来在同一物理机器上执行多个虚拟机。换句话说,在虚拟化技术中,单个硬件可以托管许多虚拟机(例如,使用硬件扩展),并且每个虚拟机运行特定工作负载。此外,每个虚拟机承担由虚拟机监视器软件模拟或由硬件体系结构实现的虚拟硬件的控制。但是,虚拟化技术依赖于虚拟机监视器层来托管和运行虚拟化堆栈,这会极大地影响性能水平,例如降低开销。在某些场景中进行容器化,其中所有工作负载都在同一操作系统上运行,并被同一操作系统实例隔离,带来所有工作负载单独存在的假象。容器化使得单个操作系统将其进程的子集相互隔离。每个进程都属于一个容器,对应的进程只能与其自身容器的进程进行交互且只能观察其自身容器的进程。但是,容器化是在操作系统之上完成的,其中所有容器都在同一操作系统实例上运行,例如底层操作系统管理所有容器(以及自身)的资源。此外,容器化的底层操作系统可以自行决定将其分配给属于容器的所有正在运行的进程。因此,容器化不适合需要不同操作系统类型(或版本)的工作负载。一些现有方案基于拥有将计算机系统划分成多个逻辑机的能力的硬件技术。但是,此类方案依赖于硬件扩展和可共享资源的粒度,使得该方案资源密集。其他现有方案将资源划分成两个相等的部分。但是,此类现有方案仍然无法动态地控制分区和资源分配,而资源分配对于处理工作负载十分关键。因此,在同一硬件上运行多个操作系统存在技术问题。
因此,鉴于上述讨论,需要克服与在传统计算机系统中在同一硬件上运行多个操作系统的传统方法相关联的上述缺点。
发明内容
本发明提供了一种在运行时对计算机进行动态分区的系统和方法。本发明寻求提供一种在同一硬件上运行多个操作系统而不会影响硬件性能的现有问题的解决方案。本发明的目的是提供一种至少部分克服了现有技术中遇到的问题的解决方案,并提供一种在运行时对计算机进行动态分区以在同一硬件上运行多个操作系统的改进的系统和方法。
本发明的一个或多个目的通过所附独立权利要求中提供的解决方案来实现。在从属权利要求中进一步限定本发明的有利实现方式。
在一个方面,本发明提供了一种计算机,包括控制器和包含多个硬件资源的硬件资源集。所述控制器用于接收第一工作负载的指示;通过将硬件资源的第一子集分配给所述第一工作负载来生成所述计算机的第一分区;在所分配的硬件资源的第一子集上在所述第一分区中执行所述第一工作负载,其中,所述第一子集小于所述硬件资源集。所述控制器还用于接收第二工作负载的指示;通过将硬件资源的第二子集分配给所述第二工作负载来生成所述计算机的第二分区;在所分配的硬件资源的第二子集上在所述第二分区中执行所述第二工作负载,其中,所述第二子集小于所述硬件资源集。
在本发明中,控制器实现根据接收到的第一工作负载和第二工作负载的指示在运行时对计算机进行动态分区。此外,所述第一工作负载和所述第二工作负载用于将所述计算机的分区分配给特定硬件资源子集,以确保硬件资源限制。因此,与传统方法相比,本发明的所述计算机的动态分区不假设所述计算机的硬件扩展,也不需要模拟所述计算机的硬件资源。此外,所述计算机运行所述控制器,所述控制器对所述硬件资源进行记账并管理分区,例如所述计算机的第一分区和第二分区。因此,所述计算机的所述动态分区直接在所述硬件资源(或物理资源)上运行/使用所述硬件资源运行,从而与所述传统方法相比,降低了开销和性能损失。
在一种实现方式中,所述控制器还配置为基于所述控制器执行的软件指令。
在这种实现方式中,使用基于软件的解决方案对所述计算机进行硬件分区是有利的。
在一种实现方式中,所述控制器还用于针对所述第一工作负载确定第一操作系统、在所述硬件资源的第一子集上启动所述第一操作系统、在所述第一操作系统下执行所述第一工作负载;针对所述第二工作负载确定第二操作系统、在所述硬件资源的第二子集上启动所述第二操作系统、在所述第二操作系统下执行所述第二工作负载。
在这种实现方式中,第一操作系统和第二操作系统仅使用所分配的硬件资源子集来启动。此外,本发明提供了一种操作系统机制,以使得能够使用这种操作系统机制在多个操作系统,例如所述第一操作系统和所述第二操作系统之间共享所述硬件资源/对所述硬件资源进行分区。
在一种实现方式中,所述控制器还用于根据所述第一工作负载的属性确定所述硬件资源的第一子集。
通过确定所述硬件资源的第一子集,所述控制器使得能够分配和管理所述硬件资源。
在一种实现方式中,所述第一操作系统与所述第二操作系统不同。
由于所述第一操作系统与所述第二操作系统不同,因此本发明可以用于需要不同操作系统类型(或版本)的工作负载。
在一种实现方式中,所述多个硬件资源包括多个处理器核心和多个存储器,其中,所述硬件资源的第一子集包括第一处理器核心子集和第一存储器子集,所述硬件资源的第二子集包括第二处理器核心子集和第二存储器子集。
在这种实现方式中,所述硬件资源的第一子集和所述硬件资源的第二子集有利于分别运行两个期望的操作系统。
在一种实现方式中,所述控制器还用于停止在所述第一分区中执行所述第一工作负载并将所述硬件资源的第一子集标记为可用,从而删除所述第一分区。
在这种实现方式中,所述控制器能够删除所述计算机的分区。
在一种实现方式中,所述控制器还用于通过将另一硬件资源分配给所述硬件资源的第一子集,将所述另一硬件资源添加到所述第一分区。
由于所述控制器能够添加另一硬件资源,因此可以通过分配其他硬件资源来调整分区的大小。此外,所述控制器能够动态地控制所述计算机的分区数和硬件资源分配。
在一种实现方式中,所述控制器还用于响应于从所述第一分区接收到的对附加硬件的请求,将所述另一硬件资源添加到所述第一分区。
本发明的所述控制器使得能够调整所述硬件资源的大小,以将另一硬件资源添加到所述第一分区。
在一种实现方式中,来自所述第一分区的对附加硬件的所述请求是基于分配的子集不足这项判断而确定的。
在这种实现方式中,接收调整所述计算机的所述分区的大小的请求是有利的。此外,所述控制器能够根据要求动态地控制所述计算机的硬件资源分配。
在一种实现方式中,所述控制器还用于通过从所述硬件资源的第一子集中删除所产生的硬件资源来从所述第一分区中删除所述产生的硬件资源,从而在没有所述产生的硬件资源的情况下,在所述硬件资源的第一子集上在所述第一分区中执行所述第一工作负载。
在这种实现方式中,可以通过从所述硬件资源的第一子集中删除所述产生的硬件资源来调整所述计算机的所述分区的大小。
在一种实现方式中,共享硬件资源是所述硬件资源的第一子集的一部分和所述硬件资源的第二子集的一部分,其中,所述控制器还用于在一段时间内利用所述共享硬件资源在所述第一分区中执行所述第一工作负载。
通过使用共享硬件资源,所述硬件资源可以共享,而不仅仅是分区。有益的是,与所述传统方法相比,本发明的动态分区无法确保所述计算机的所述分区之间的隔离,并且无法强制执行访问控制。
在一种实现方式中,所述控制器还用于接收第三工作负载的指示;确定是否存在可用于第三硬件资源子集的硬件资源,且如果没有,则从所述第一分区和/或所述第二分区检索硬件资源;将可用的硬件资源分配给所述第三硬件资源子集,其中,所述第三子集小于所述硬件资源集;通过将所述第三硬件资源子集分配给所述第三工作负载来生成所述计算机的第三分区;在所分配的第三硬件资源子集上在所述第三分区中执行所述第三工作负载。
有益的是,分区、创建、销毁或修改由所述控制器管理,并在协商一致的情况下完成。
在另一方面,本发明提供了一种在包括包含多个硬件资源的硬件资源集的计算机中使用的方法。所述方法包括接收第一工作负载的指示;通过将硬件资源的第一子集分配给所述第一工作负载来生成所述计算机的第一分区;在所分配的硬件资源的第一子集上在所述第一分区中执行所述第一工作负载,其中,所述第一子集小于所述硬件资源集。所述控制器还用于接收第二工作负载的指示;通过将硬件资源的第二子集分配给所述第二工作负载来生成所述计算机的第二分区;在所分配的硬件资源的第二子集上在所述第二分区中执行所述第二工作负载,其中,所述第二子集小于所述硬件资源集。
所公开的方法实现了本发明的所有技术效果。
应理解,可组合所有上述实现方式。要说明的是,本申请中描述的所有设备、元件、电路、单元和构件可以通过软件或硬件元件或其任何类型的组合实现。本申请中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的软件或硬件元件或其任何种类的组合实现。可以理解的是,本发明的特征易于以各种组合进行组合,而不脱离由所附权利要求书所限定的本发明的范围。
本发明的附加方面、优点、特征和目的从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得显而易见。
附图说明
当结合附图阅读时,可以更好地理解以上发明内容以及说明性实施例的以下详细描述。为了示出本发明,本发明的示例性结构在附图中示出。但是,本发明不限于本文公开的具体方法和工具。此外,本领域技术人员应理解,附图不是按比例绘制的。在可能的情况下,相同的元件用相同的数字表示。
现在参考下图仅作为示例来描述本发明的实施例,其中:
图1为本发明实施例的包括控制器和硬件资源集的计算机的框图;
图2为本发明实施例的用于包括硬件资源集的计算机的方法的流程图;
图3为本发明实施例的计算机的图示。
在附图中,带下划线的数字用于表示带下划线的数字所在的项目或与带下划线的数字相邻的项目。不带下划线的数字与由将不带下划线的数字与项目关联的线标识的项目有关。当一个数字不带下划线并具有关联的箭头时,不带下划线的数字用于标识箭头指向的一般项目。
具体实施方式
以下详细描述示出了本发明的实施例以及可以实现这些实施例的方式。虽然已经公开了实施本发明的一些模式,但本领域技术人员应认识到,也可存在用于实施或实践本发明的其他实施例。
图1为本发明实施例的包括控制器和硬件资源集的计算机的框图。参考图1,示出了计算机102的框图100。计算机102包括控制器104和硬件资源集106。硬件资源集106还包括多个硬件资源106A至106N。还示出了第一工作负载108、第二工作负载110、第三工作负载112、第一分区114、第二分区116和第三分区118。
在一个方面,本发明提供了一种计算机102,所述计算机包括控制器104和包含多个硬件资源106A至106N的硬件资源集106,所述控制器104用于:
接收第一工作负载108的指示;
通过将硬件资源106A至106N的第一子集分配给第一工作负载108来生成计算机102的第一分区114;
在所分配的硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108,其中第一子集小于硬件资源集106,所述控制器104还用于
接收第二工作负载110的指示;
通过将硬件资源106A至106N的第二子集分配给第二工作负载110来生成计算机102的第二分区116;
在所分配的硬件资源106A至106N的第二子集上在第二分区116中执行第二工作负载110,其中第二子集小于硬件资源集106。
计算机102包括控制器104和硬件资源集106。计算机102包括适当的逻辑、电路和接口,所述计算机通过增强正在运行的软件(具体地,操作系统)来执行动态硬件分区,其中每个工作负载能够在可用硬件资源的子集上运行。在这种情况下,每个分区充当计算资源(CPU、存储器、设备)的集合,并使得工作负载以其期望的操作系统类型和版本运行。计算机102用于通过分配和取消分配资源来调整动态生成的分区的大小。计算机102的示例包括但不限于服务器、云服务器、数据中心的计算设备、笔记本电脑、大型计算机和具有不同工作负载的个人计算机等其他计算机。
控制器104包括适当的逻辑、电路和接口,其用于接收不同的工作负载,例如第一工作负载108和第二工作负载110,并进一步使得能够在计算机102上执行这些工作负载。控制器104还用于触发(即,创建、删除或调整大小)计算机102的不同分区,例如第一分区114和第二分区116,并根据计算机102的不同分区执行不同的工作负载。在一个示例中,控制器104也可以被称为执行管理功能的处理器、管理系统或管理单元。
硬件资源集106包括多个硬件资源106A至106N。多个硬件资源106A至106N由给定工作负载(例如第一工作负载108和第二工作负载110)利用。硬件资源集106的示例包括但不限于中央处理器(central processing unit,CPU)、存储器、固态设备等。在一个示例中,第一工作负载108具有其相应的硬件资源,例如具有相应的CPU和存储器的硬件资源106A。
工作负载广义上是在任何计算机上运行的任何程序或应用程序。工作负载还指软件或应用程序强加给底层计算资源的工作(或负载)量。例如第一工作负载108、第二工作负载110和第三工作负载112等工作负载中的每一个对应于计算机102在固定时间段内必须进行的潜在处理量。第一工作负载108、第二工作负载110和第三工作负载112可以包括例如程序量、连接到其应用程序的用户数、交互消耗多少时间和处理能力等细节。在一个示例中,第一工作负载108可以包括第一操作系统,第二工作负载110可以包括第二操作系统,第三工作负载112可以包括第三操作系统。第一分区114、第二分区116和第三分区118对应于计算机102的存储器和资源的逻辑划分。
在操作(过程)中,控制器104用于接收第一工作负载108的指示。计算机102的控制器104接收第一工作负载108的指示(或外部命令)。在一个示例中,从外部设备接收第一工作负载108的指示,以便触发计算机102的分区。在另一个示例中,控制器104用于从与计算机102相关联的计算设备接收第一工作负载108的指示。换句话说,第一工作负载108用于增强计算机102的正在运行的软件(具体地,操作系统),以实现计算机102的动态硬件分区。
根据实施例,控制器104还用于根据第一工作负载108的属性确定硬件资源106A至106N的第一子集。换句话说,控制器104用于根据第一工作负载108的属性拔掉正在运行的(或已经分配的)硬件资源106A至106N,以便确定硬件资源106A至106N的第一子集。例如,控制器104根据第一工作负载108的属性从硬件资源集106中确定硬件资源106A。因此,控制器104使得能够分配和管理硬件资源106A至106N。第一工作负载108的属性可以包括程序量、连接到其应用程序的用户数、交互消耗的时间和处理能力等。
在本发明中,控制器104还用于通过将硬件资源106A至106N的第一子集分配给第一工作负载108来生成计算机102的第一分区114。控制器104还用于在所分配的硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108,其中第一子集小于硬件资源集106。控制器104还用于接收第二工作负载110的指示;通过将硬件资源106A至106N的第二子集分配给第二工作负载110来生成计算机102的第二分区116;在所分配的硬件资源106A至106N的第二子集上在第二分区116中执行第二工作负载110,其中,所述第二子集小于硬件资源集106。换句话说,控制器104根据接收到的第一工作负载108的指示生成计算机102的第一分区114,并根据接收到的第二工作负载110的指示生成计算机102的第二分区116。此外,控制器104将硬件资源106A至106N的第一子集分配给第一工作负载108,并将硬件资源106A至106N的第二子集分配给第二工作负载110。例如,控制器104根据接收到的第一工作负载108的指示将硬件资源106A分配给第一工作负载108,并且还根据接收到的第二工作负载110的指示将硬件资源106B分配给第二工作负载110。换句话说,计算机102的第一分区114充当例如中央处理器、存储器、存储设备等资源(即硬件资源106A)的集合。此外,计算机102的第二分区116充当例如另一个中央处理器、另一个存储器、另一个存储设备等资源(即硬件资源106B)的集合。因此,控制器104对可用硬件资源106A至106N进行记账并将其分配给计算机102的第一分区114和第二分区116。此后,控制器104在第一分区114中且在所分配的硬件资源106A至106N的第一子集上执行第一工作负载108,并在所分配的硬件资源106A至106N的第二子集上在第二分区116中执行第二工作负载110。例如,控制器104在分配给第一工作负载108的所分配硬件资源106A上且在计算机102的第一分区114中执行第一工作负载108(例如,程序集)。类似地,控制器104在分配给第二工作负载110的所分配硬件资源106B上且在计算机102的第二分区116中执行第二工作负载110(例如,另一个程序集)。因此,计算机102的分区,例如第一分区114和第二分区116,被分配给硬件资源106A至106N的特定子集,以便确保硬件资源106A至106N被高效利用。此外,计算机102运行控制器104(或管理服务),所述控制器对硬件资源106A至106N(或所有设备)进行记账并管理计算机102的第一分区114和第二分区116。在一个示例中,控制器104可以被实现为在计算机102的一个分区上运行(或在单独的机器上,或甚至以分布式性质实现,同时在所有/一些分区上运行,保持所有正在运行的部分之间的一致性)的单个实体。有益的是,与传统方法相比,计算机102的控制器104例如使用第一分区114和第二分区116实现计算机102的动态分区。此外,与传统分区相比,计算机102的动态分区不假设计算机102的硬件扩展,也不需要模拟计算机102的硬件资源106A至106N。此外,计算机102的动态分区直接在硬件资源106A至106N(或物理资源)上运行/使用所述硬件资源运行,从而降低了开销和性能损失。
根据实施例,控制器104还配置为基于控制器104执行的软件指令。由于控制器104根据软件指令,因此本发明提供了一种用于计算机102的硬件分区的基于软件的解决方案。因此,本发明可以在传统计算机中实现,而不需要太多硬件升级。
根据实施例,控制器104还用于针对第一工作负载108确定第一操作系统、在硬件资源106A至106N的第一子集上启动第一操作系统、在第一操作系统下执行第一工作负载108。控制器104还用于针对第二工作负载110确定第二操作系统、在硬件资源106A至106N的第二子集上启动第二操作系统、在第二操作系统下执行第二工作负载110。在一种实现方式中,计算机102是单个多核心机器,其中最初,单个操作系统在计算机102的硬件资源集106上运行。此外,计算机102的控制器104针对第一工作负载108确定第一操作系统且针对第二工作负载110确定第二操作系统。此后,计算机102的第一分区114使得第一工作负载108以其期望的操作系统类型(例如硬件资源106A至106N的第一子集上的第一操作系统)运行。类似地,计算机102的第二分区116使得第二工作负载110以其期望的操作系统类型(例如硬件资源106A至106N的第二子集上的第二操作系统)运行。换句话说,计算机102的初始操作系统在所分配的硬件资源集106上调度新的操作系统。因此,新操作系统,例如第一操作系统和第二操作系统,仅使用所分配的硬件资源106A至106N的子集启动。例如,第一操作系统仅启动硬件资源106A,第二操作系统仅启动硬件资源106B。此外,这两个不同的操作系统在计算机102的分区模式下运行。与一些传统计算机相比,在同一硬件上运行多于一个操作系统是不可能的。在一种实现方式中,新操作系统,例如第一操作系统和第二操作系统,也产生控制器104(或管理服务)。此外,本发明提供了一种操作系统机制,以使得能够使用这种操作系统机制在多个操作系统,例如第一操作系统和第二操作系统之间共享硬件资源集106/对所述硬件资源集进行分区。在一种实现方式中,并发操作系统的数量是动态的,并发操作系统之间的硬件资源集106(和设备)分布也是动态的。
根据实施例,第一操作系统与第二操作系统不同。换句话说,并发操作系统可以是不同的版本和种类。有益的是,与传统方法相比,本发明可用于需要不同操作系统类型(或版本)的工作负载。在一个示例中,第一操作系统可以是Linux v5.5,第二操作系统可以是Linux v4.16。操作系统的示例仅是指示性的,并且可以使用各种其他操作系统而不会限制本发明的范围。例如,不同的操作系统可能有不同的版本,或者OS本身可能不同。
根据实施例,所述多个硬件资源106A至106N包括多个处理器核心和多个存储器,其中硬件资源106A至106N的第一子集包括处理器核心的第一子集和存储器的第一子集,并且硬件资源106A至106N的第二子集包括处理器核心的第二子集和存储器的第二子集。在一种实现方式中,计算机102的活动分区的数量根据硬件资源106A至106N,其中硬件资源106A至106N的每个子集具有粒度,将能够根据所述粒度进行分区,例如按页对存储器进行分区、按核心对中央处理器(central processing unit,CPU)进行分区等。在一个示例中,如果只有八个核心可用于计算机102,则在任何给定时间只有八个分区可以是活动的,并且计算机102的分区将需要由当前活动分区之一自愿调度和交换。因此,硬件资源106A至106N的第一子集,例如硬件资源106A,包括处理器核心的第一子集和存储器的第一子集,并且硬件资源106A至106N的第二子集,例如硬件资源106B,包括处理器核心的第二子集和存储器的第二子集。换句话说,在对计算机102进行动态分区时,硬件资源106A至106N的每个子集包括存储器(或按页分区的存储器)、处理器核心(或按核心分区的中央处理器)等的不同子集,以便分别运行期望的操作系统。
根据实施例,控制器104还用于停止在第一分区114中执行第一工作负载108,并将硬件资源106A至106N的第一子集标记为可用,从而删除第一分区114。在一种实现方式中,控制器104负责例如通过命令来插拔硬件资源106A至106N。换句话说,驻留在每个分区(例如第一分区114)内的机制负责插拔硬件资源106A至106N。因此,控制器104可以停止在计算机102的第一分区114中执行第一工作负载108。因此,硬件资源106A至106N的第一子集,例如硬件资源106A,可用于进一步分配。换句话说,控制器104还可以停止(或销毁)第一分区114的操作系统并删除第一分区114,并且硬件资源106A至106N由计算机102的剩余分区根据所限定的分配收集。因此,控制器104能够通过请求分区内的机制停止操作系统来删除分区。在一种实现方式中,控制器104实现分配给当前操作系统的硬件的簿记,并且还在对应分区(例如第一分区114)的拔掉的中央处理器核心上调度任意代码。
根据实施例,控制器104还用于通过将另一硬件资源分配给硬件资源106A至106N的第一子集来将另一硬件资源添加到第一分区114。换句话说,控制器104请求计算机102的一个分区,例如第一分区114,以插入另一硬件资源。由于另一硬件资源被分配给硬件资源106A至106N的第一子集,因此,可以通过分配其他硬件资源106A至106N来调整第一分区114的大小。此外,控制器104能够动态地控制计算机102的分区数和硬件资源分配。
根据实施例,控制器104还用于响应于从第一分区114接收到的对附加硬件资源的请求,将另一硬件资源添加到第一分区114。在一种实现方式中,控制器104从例如计算机102的第一分区114等分区接收对附加硬件资源的外部请求(或命令)。此外,根据接收到的请求,控制器104将另一硬件资源添加到计算机102的第一分区114。因此,可以根据接收到的请求调整计算机102的第一分区114的大小,并且控制器104能够动态地控制计算机102的分区数和硬件资源分配。
根据实施例,来自第一分区114的对附加硬件资源的请求是基于所分配的硬件资源106A至106N的子集不足这项判断而确定的。在一种实现方式中,硬件资源106A至106N的子集,例如分配给工作负载的硬件资源106C,不足以在计算机102的对应分区中执行对应工作负载。在这种情况下,控制器104从第一分区114接收对附加硬件的请求。因此,控制器104能够根据要求动态地控制计算机102的硬件资源分配。
根据实施例,控制器104还用于通过从硬件资源106A至106N的第一子集中删除所产生的硬件资源来从第一分区114中删除所产生的硬件资源,从而在没有所产生的硬件资源的情况下,在硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108。在一种实现方式中,控制器104接收对附加硬件资源的请求。但是,可能不存在可用的免费硬件资源106A至106N。例如,所有硬件资源106A至106N已经分配给不同的工作负载。因此,在这种情况下,控制器104通过从硬件资源106A至106N的第一子集中删除所产生的硬件资源(即,未使用的或额外的硬件资源)来从例如计算机102的第一分区114等分区之一中删除所产生的硬件资源。例如,通过从第一分区114中删除所产生的存储器的第一子集。因此,控制器104在没有所产生的硬件资源(例如没有存储器的第一子集)的情况下,在硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108。此外,借助于分区,可以调整计算机102的大小。因此,可以通过从硬件资源106A至106N的第一子集中删除所产生的硬件资源来调整计算机102的分区的大小。此外,控制器104能够动态地控制计算机102的分区数和硬件资源分配。
根据实施例,共享硬件资源是硬件资源106A至106N的第一子集的一部分和硬件资源106A至106N的第二子集的一部分,其中控制器104还用于在一段时间内利用共享硬件资源在第一分区114中执行第一工作负载108。在一种实现方式中,控制器104接收对附加硬件的请求。但是,可能不存在可用的免费硬件资源106A至106N。在这种情况下,使用共享硬件资源,所述共享硬件资源是硬件资源106A至106N的第一子集以及第二子集的一部分。因此,在一段时间内利用共享硬件资源,以便在第一分区114中执行第一工作负载108。换句话说,使用多个硬件资源106A至106N(例如中央处理器),不同的分区使用同一硬件资源并同时执行。在一种实现方式中,控制器104主动从在第一分区114中执行转移到在第二分区116中执行。例如,计算机102的一个分区,例如第一分区114,可以例如通过产生中央处理器核心并恢复其他分区的中央处理器状态来合作地在彼此之间进行上下文切换。有益的是,与传统方法相比,硬件资源106A至106N可以共享,而不仅仅是分区。
根据实施例,所述时间段一直持续到第一分区114移交共享硬件资源。在一种实现方式中,控制器104接收对附加硬件的请求。但是,可能不存在可用的免费硬件资源106A至106N。因此,控制器104请求计算机102的第一分区114将所述时间段调度为一直持续到第一分区114移交共享硬件资源。有益的是,与传统方法相比,本发明的动态分区无法确保计算机102的分区之间的隔离,并且无法强制执行访问控制。在一种实现方式中,计算机102的动态分区无法确保分区(例如第一分区114和第二分区116)之间的隔离,并且无法强制执行访问控制,因为所有合作都是自愿的。
根据实施例,控制器104还用于接收第三工作负载112的指示;确定是否存在可用于硬件资源106A至106N的第三子集的硬件资源106A至106N,且如果没有,则从第一分区114和/或第二分区116检索硬件资源106A至106N;将可用硬件资源106A至106N分配给硬件资源106A至106N的第三子集,其中第三子集小于硬件资源集106。控制器104还用于通过将硬件资源106A至106N的第三子集分配给第三工作负载112来生成计算机102的第三分区118,并在所分配的硬件资源106A至106N的第三子集上在第三分区118中执行第三工作负载112。换句话说,计算机102的控制器104例如从外部设备接收第三工作负载112的指示(或外部命令)。此后,控制器104确定硬件资源106A至106N对于硬件资源106A至106N的第三子集的可用性。在一种实现方式中,如果硬件资源106A至106N可用,则控制器104根据第三工作负载112的属性拔掉已经运行(或已经分配或未分配)的硬件资源106A至106N,以便确定硬件资源106A至106N的第三子集。例如,控制器104拔掉分配给计算机102的第一分区114和/或第二分区116的硬件资源106A至106N,并确定硬件资源106A至106N的第三子集。在另一种实现方式中,如果没有可用的免费硬件资源106A至106N,则控制器104从计算机102的第一分区114和/或第二分区116检索硬件资源106A至106N。此后,控制器104将确定的(或检索到的)硬件资源106A至106N分配给硬件资源106A至106N的第三子集。此外,控制器104将硬件资源106A至106N的第三子集分配给第三工作负载112,以便创建计算机102的第三分区118。例如,控制器104根据接收到的第三工作负载112的指示将硬件资源106C分配给第三工作负载112,并且还为第三工作负载112创建计算机102的第三分区118。换句话说,计算机102的第三分区118充当硬件资源106A至106N的第三子集的集合。例如,硬件资源106A至106N的第三子集包括处理器核心的第三子集和存储器的第三子集。因此,控制器104对可用硬件资源106A至106N进行记账并将其分配给计算机102的第三分区118。此后,控制器104在所分配的硬件资源106A至106N的第三子集上在第三分区118中执行第三工作负载112。例如,控制器104在分配给第三工作负载112的所分配硬件资源106C上且在计算机102的第三分区118中执行第三工作负载112。
换句话说,控制器104能够通过请求一个或多个分区以产生硬件资源106A至106N(如果没有免费硬件资源可用),和/或通过请求一个分区以在所分配的中央处理器核心中的一个上调度新的操作系统来创建新的分区,例如计算机102的第三分区118。有益的是,与传统方法相比,计算机102的控制器104在运行时实现计算机102的动态分区。此外,计算机102的动态分区直接在硬件资源106A至106N(或物理资源)上运行,从而降低了开销和性能损失。
因此,在本发明中,计算机102运行控制器104(或管理服务),所述控制器对硬件资源106A至106N进行记账并管理不同分区,例如计算机102的第一分区114、第二分区116和第三分区118。有益的是,与传统方法相比,计算机102的控制器104实现计算机102的动态分区。此外,计算机102的动态分区不假设计算机102的硬件扩展,也不需要模拟计算机102的硬件资源106A至106N。此外,计算机102的动态分区直接在硬件资源106A至106N(或物理资源)上运行/使用所述硬件资源运行,从而降低了开销和性能损失。此外,动态分区的创建/销毁/修改由控制器104(或管理服务)管理。
图2为本发明实施例的用于包括硬件资源集的计算机的方法的流程图。图2结合图1中的元件描述。参考图2,示出了包括步骤202到212的方法200。
在另一方面,本发明提供了一种用于包括硬件资源集106的计算机102的方法200,所述硬件资源集包括多个硬件资源106A至106N,所述方法200包括:
接收第一工作负载108的指示;
通过将硬件资源106A至106N的第一子集分配给第一工作负载108来生成计算机102的第一分区114;
在所分配的硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108,其中第一子集小于硬件资源集106,其中控制器104还用于
接收第二工作负载110的指示;
通过将硬件资源106A至106N的第二子集分配给第二工作负载110来生成计算机102的第二分区116;
在所分配的硬件资源106A至106N的第二子集上在第二分区116中执行第二工作负载110,其中第二子集小于硬件资源集106。
方法200用于包括硬件资源集106的计算机102,所述硬件资源集包括多个硬件资源106A至106N。方法200用于实现计算机102的动态分区。
在步骤202,方法200包括由控制器104接收第一工作负载108的指示。方法200包括控制器104管理计算机102的动态分区。此外,控制器104包括接收第一工作负载108的指示(或外部命令)。在一个示例中,从外部设备接收第一工作负载108的指示,用于触发计算机102的分区。换句话说,第一工作负载108用于增强计算机102的正在运行的软件(具体地,操作系统),以实现计算机102的动态分区。
根据实施例,方法200还包括控制器104根据第一工作负载108的属性确定硬件资源106A至106N的第一子集。换句话说,控制器104包括根据第一工作负载108的属性拔掉正在运行的(或已经分配的)硬件资源106A至106N,并确定硬件资源106A至106N的第一子集。例如,控制器104包括根据第一工作负载108的属性从硬件资源集106中确定硬件资源106A。因此,控制器104使得能够分配和管理硬件资源106A至106N。第一工作负载108的属性可以包括程序量、连接到其应用程序的用户数、交互消耗的时间和处理能力等。
在步骤204,方法200还包括通过将硬件资源106A至106N的第一子集分配给第一工作负载108来生成计算机102的第一分区114。换句话说,控制器104包括根据接收到的第一工作负载108的指示生成计算机102的第一分区114,并且还将硬件资源106A至106N的第一子集分配给第一工作负载108。换句话说,计算机102的第一分区114充当硬件资源106A至106N的第一子集(例如与中央处理器、存储器、设备等一起)的集合。因此,控制器104包括对可用硬件资源106A至106N进行记账并将其分配给计算机102的第一分区114。
在步骤206,方法200还包括在所分配的硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108,其中第一子集小于硬件资源集106。换句话说,方法200包括控制器104在第一分区114中且在所分配的硬件资源106A至106N的第一子集上执行第一工作负载108。例如,控制器104在计算机102的第一分区114中且在分配给第一工作负载108的硬件资源106A上执行第一工作负载108。有益的是,与传统方法相比,计算机102的控制器104包括实现计算机102的动态分区,例如使用第一分区114。此外,计算机102的动态分区不假设计算机102的硬件扩展,也不需要模拟计算机102的硬件资源106A至106N。此外,计算机102的动态分区直接在硬件资源106A至106N(或物理资源)上运行/使用所述硬件资源运行,从而降低了开销和性能损失。
在步骤208,方法200还包括由控制器104接收第二工作负载110的指示。换句话说,计算机102的控制器104还包括接收第二工作负载110的指示。在一个示例中,从外部设备接收第二工作负载110的指示,用于触发计算机102的分区。换句话说,第二工作负载110用于增强计算机102的正在运行的软件(具体地,操作系统),以实现计算机102的动态分区。
在步骤210,方法200还包括通过将硬件资源106A至106N的第二子集分配给第二工作负载110来生成计算机102的第二分区116。在一个示例中,控制器104包括根据第二工作负载110的属性确定硬件资源106A至106N的第二子集。此后,控制器104包括根据接收到的第二工作负载110的指示生成计算机102的第二分区116,并且还将硬件资源106A至106N的第二子集分配给第二工作负载110。换句话说,计算机102的第二分区116充当硬件资源106A至106N的第二子集(例如与其他中央处理器、其他存储器、设备等一起)的集合。因此,控制器104对可用硬件资源106A至106N进行记账并将其分配给计算机102的第二分区116。
在步骤212,方法200还包括在所分配的硬件资源106A至106N的第二子集上在第二分区116中执行第二工作负载110,其中第二子集小于硬件资源集106。换句话说,控制器104包括在第二分区116中且在所分配的硬件资源106A至106N的第二子集上执行第二工作负载110。例如,控制器104在计算机102的第二分区116中且在分配给第二工作负载110的硬件资源106B上执行第二工作负载110。有益的是,与传统方法相比,计算机102的控制器104包括实现计算机102的动态分区,例如使用第二分区116。此外,计算机102的动态分区不假设计算机102的硬件扩展,也不需要模拟硬件资源106A至106N。此外,计算机102的动态分区直接在硬件资源106A至106N(或物理资源)上运行/使用所述硬件资源运行,从而降低了开销和性能损失。
根据实施例,方法200还包括控制器104针对第一工作负载108确定第一操作系统、在硬件资源106A至106N的第一子集上启动第一操作系统、在第一操作系统下执行第一工作负载108。方法200还包括控制器104针对第二工作负载110确定第二操作系统、在硬件资源106A至106N的第二子集上启动第二操作系统、在第二操作系统下执行第二工作负载110。在一种实现方式中,计算机102是单个多核心机器,其中最初,单个操作系统在计算机102的硬件资源集106上运行。此后,计算机102的控制器104包括针对第一工作负载108确定第一操作系统并针对第二工作负载110确定第二操作系统。此后,计算机102的第一分区114包括使得第一工作负载108以其期望的操作系统类型,例如硬件资源106A至106N的第一子集上的第一操作系统运行。类似地,计算机102的第二分区116包括使得第二工作负载110以其期望的操作系统类型,例如硬件资源106A至106N的第二子集上的第二操作系统运行。换句话说,计算机102的初始操作系统在所分配的硬件资源集106上调度新的操作系统。因此,新操作系统,例如第一操作系统和第二操作系统,仅使用所分配的硬件资源106A至106N的子集启动。例如,第一操作系统仅启动硬件资源106A,第二操作系统仅启动硬件资源106B。此外,这两个不同的操作系统在计算机102的分区模式下运行。在一种实现方式中,新操作系统,例如第一操作系统和第二操作系统,也产生控制器104(或管理服务)。此外,本发明提供了一种操作系统机制,以使得能够使用这种操作系统机制在多个操作系统,例如第一操作系统和第二操作系统之间共享硬件资源集106/对所述硬件资源集进行分区。在一种实现方式中,并发操作系统的数量是动态的,并发操作系统之间的硬件资源集106(和设备)分布也是动态的。
根据实施例,方法200还包括停止在第一分区114中执行第一工作负载108,并将硬件资源106A至106N的第一子集标记为可用,从而删除第一分区114。在一种实现方式中,控制器104负责例如通过命令来插拔硬件资源106A至106N。换句话说,驻留在每个分区,例如第一分区114内的机制,负责插拔硬件资源106A至106N。因此,控制器104可以停止在计算机102的第一分区114中执行第一工作负载108。因此,硬件资源106A至106N的第一子集,例如硬件资源106A,可用于进一步分配。换句话说,控制器104还可以包括停止(或销毁)第一分区114的操作系统,并且删除第一分区114,硬件资源106A至106N由计算机102的剩余分区根据限定的分配收集。因此,控制器104能够通过请求分区内部用于停止操作系统的机制来删除分区。在一种实现方式中,控制器104实现分配给当前操作系统的硬件的簿记,并且还在对应分区(例如第一分区114)的拔掉的中央处理器核心上调度任意代码。
根据实施例,方法200还包括控制器104通过将另一硬件资源分配给硬件资源106A至106N的第一子集,将另一硬件资源添加到第一分区114。换句话说,控制器104包括请求计算机102的一个分区,例如第一分区114,以用于插入另一个硬件资源。由于另一硬件资源被分配给硬件资源106A至106N的第一子集,因此,可以通过分配其他硬件资源106A至106N来调整第一分区114的大小。此外,控制器104能够动态地控制计算机102的分区数和硬件资源分配。
根据实施例,方法200还包括响应于从第一分区114接收到的对附加硬件资源的请求,由控制器104将另一硬件资源添加到第一分区114。在一种实现方式中,控制器104包括从例如计算机102的第一分区114等分区接收对附加硬件资源的外部请求(或命令)。此外,根据接收到的请求,控制器104包括将另一硬件资源添加到计算机102的第一分区114。因此,可以根据接收到的请求调整计算机102的第一分区114的大小,并且控制器104能够动态地控制计算机102的分区数和硬件资源分配。
根据实施例,方法200还包括控制器104通过从硬件资源106A至106N的第一子集中删除所产生的硬件资源来从第一分区114中删除所产生的硬件资源,从而在没有所产生的硬件资源的情况下,在硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108。在一种实现方式中,控制器104包括接收对附加硬件资源的请求。但是,可能不存在可用的免费硬件资源106A至106N。例如,所有硬件资源106A至106N已经分配给不同的工作负载。因此,在这种情况下,控制器104包括通过从硬件资源106A至106N的第一子集中删除所产生的硬件资源来从例如计算机102的第一分区114等分区之一中删除所产生的硬件资源(即,未使用的或额外的硬件资源)。例如,通过从第一分区114中删除所产生的存储器的第一子集。因此,控制器104在没有所产生的硬件资源(例如没有存储器的第一子集)的情况下,在硬件资源106A至106N的第一子集上在第一分区114中执行第一工作负载108。此外,借助于分区,可以调整计算机102的大小。因此,可以通过从硬件资源106A至106N的第一子集中删除所产生的硬件资源来调整计算机102的分区的大小。此外,控制器104能够动态地控制计算机102的分区数和硬件资源分配。
根据实施例,方法200还包括控制器104接收第三工作负载112的指示;确定是否存在可用于硬件资源106A至106N的第三子集的硬件资源106A至106N,且如果没有,则从第一分区114和/或第二分区116检索硬件资源106A至106N;将可用硬件资源106A至106N分配给硬件资源106A至106N的第三子集,其中第三子集小于硬件资源集106。方法200还包括控制器104通过将硬件资源106A至106N的第三子集分配给第三工作负载112来生成计算机102的第三分区118,并在所分配的硬件资源106A至106N的第三子集上在第三分区118中执行第三工作负载112。换句话说,计算机102的控制器104包括例如从外部设备接收第三工作负载112的指示(或外部命令)。此后,控制器104包括确定硬件资源106A至106N对于硬件资源106A至106N的第三子集的可用性。在一种实现方式中,如果硬件资源106A至106N可用,则控制器104包括根据第三工作负载112的属性拔掉已经运行(或已经分配)的硬件资源106A至106N,以确定硬件资源106A至106N的第三子集。例如,控制器104包括拔掉分配给计算机102的第一分区114和/或第二分区116的硬件资源106A至106N,并确定硬件资源106A至106N的第三子集。在另一种实现方式中,如果没有可用的免费硬件资源106A至106N,则控制器104包括从计算机102的第一分区114和/或第二分区116检索硬件资源106A至106N。此后,控制器104包括将确定的(或检索到的)硬件资源106A至106N分配给硬件资源106A至106N的第三子集。此外,控制器104包括将硬件资源106A至106N的第三子集分配给第三工作负载112,以用于创建计算机102的第三分区118。例如,控制器104包括根据接收到的第三工作负载112的指示将硬件资源106C分配给第三工作负载112,并且还为第三工作负载112创建计算机102的第三分区118。换句话说,计算机102的第三分区118充当硬件资源106A至106N的第三子集的集合。例如,硬件资源106A至106N的第三子集包括处理器核心的第三子集和存储器的第三子集。因此,控制器104包括对可用硬件资源106A至106N进行记账并将其分配给计算机102的第三分区118。此后,控制器104在所分配的硬件资源106A至106N的第三子集上在第三分区118中执行第三工作负载112。例如,控制器在分配给第三工作负载112的所分配硬件资源106C上且在计算机102的第三分区118中执行第三工作负载112。换句话说,控制器104包括创建新的分区,例如计算机102的第三分区118。例如,通过请求一个或多个分区以产生硬件资源106A至106N(如果没有可用的免费硬件资源)和/或通过请求一个分区以在所分配的中央处理器核心之一上调度新的操作系统。
因此,方法200对硬件资源106A至106N进行记账,并管理不同的分区,例如计算机102的第一分区114和第二分区116。有益的是,与传统方法相比,方法200包括实现计算机102的动态分区。此外,方法200的动态分区不假设计算机102的硬件扩展,也不需要模拟硬件资源106A至106N。此外,计算机102的动态分区直接在硬件资源106A至106N(或物理资源)上运行/使用所述硬件资源运行,从而降低了开销和性能损失。此外,动态分区的创建/销毁/修改由方法200(或管理服务)管理,并在协商一致的情况下完成。换句话说,所有正在运行的管理服务都保持关于硬件资源到分区的分配和硬件资源106A至106N的插拔管理的共识。
在另一方面,本发明提供了一种计算机可读介质,包括指令,当加载到控制器104中并由所述控制器执行时,所述指令使控制器104能够执行方法200。在一个方面,提供了一种计算机程序产品,包括上面存储有计算机指令的非瞬时性计算机可读介质,所述计算机指令可由控制器104、计算机102执行以执行方法200。非瞬时性计算机可读介质的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、硬盘驱动器(hard disk drive,HDD)、闪存、安全数字(securedigital,SD)卡、固态硬盘(solid-state drive,SSD)、计算机可读存储介质和/或CPU高速缓冲存储器。用于提供非瞬时性存储器的计算机可读介质可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或上述任何合适的组合。
图3为本发明实施例的计算机的图示。结合图1的元件描述图3。参考图3,示出了框图300,其包括计算机102,所述计算机包括第一分区114、第二分区116和第三分区118,以及管理系统302、软件304、硬件306和合作机制308A、308B和308C。还示出了第一操作系统(operating system,OS)310、第二操作系统312、第三操作系统314、第一中央处理器(firstcentral processing unit,CPU1)316、第二中央处理器(second central processingunit,CPU2)318、第三中央处理器(third central processing unit,CPU3)320和第四中央处理器(fourth central processing unit,CPU4)322。还示出了第一存储器(firstmemory,MEM1)324、第二存储器(second memory,MEM2)326、第三存储器(third memory,MEM3)328、第四存储器(fourth memory,MEM4)330、第一固态设备(first solid-statedevice,SSD1)332、第二固态设备(second solid-state device,SSD2)334,第三固态设备(third solid-state device,SSD3)336、第四固态设备(fourth solid-state device,SSD3)338、第一网络接口卡(first network interface card,NIC1)340和第二网络接口卡(second network interface card,NIC2)342。
管理系统302对应于图1的控制器104。管理系统302用于接收不同的工作负载,例如第一工作负载108、第二工作负载110和第三工作负载112。管理系统302还用于触发(或创建或删除或调整大小)计算机102的不同分区,例如第一分区114、第二分区116和第三分区118,并且还用于根据计算机102的不同分区执行不同的工作负载。
计算机102的软件304对应于计算机102的软件部分(或部分)。软件304也可以被称为包括可执行指令(和/或可执行文件)的软件集。
硬件306对应于图1的硬件资源集106。硬件306包括多个硬件资源(例如,硬件资源106A至106N)。硬件306的示例包括但不限于中央处理器(central processing unit,CPU)、存储器、存储器设备、设备等。
合作机制308A、308B和308C包括在计算机102的软件304中。合作机制308A、308B和308C由计算机102的每个分区使用,使得分区可以合作地在彼此之间进行上下文切换(例如,通过产生中央处理器核心并恢复其他分区的中央处理器状态)。
第一操作系统310、第二操作系统312和第三操作系统314是软件304的一部分,并被分配给计算机102的不同分区。例如,第一操作系统310被分配给第一分区114,第二操作系统312被分配给第二分区116,第三操作系统314被分配给第三分区118。
第一中央处理器316、第二中央处理器318、第三中央处理器320和第四中央处理器322中的每一个都包括用于执行计算机102的不同分区的不同操作系统的适当逻辑、电路、接口和/或代码。第一中央处理器316、第二中央处理器318、第三中央处理器320和第四中央处理器322的示例包括但不限于精简指令集计算(reduced instruction set computing,RISC)处理器、专用集成电路(application-specific integrated circuit,ASIC)处理器、复杂指令集计算(complex instruction set computing,CISC)处理器,显式并行指令计算(explicitly parallel instruction computing,EPIC)处理器、超长指令集(very longinstruction word,VLIW)处理器、图形处理单元(graphics processing unit,GPU)、状态机和/或其他处理器或电路。
第一存储器324、第二存储器326、第三存储器328和第四存储器330中的每一个包括用于存储机器代码和/或可由对应中央处理器执行的指令集的适当逻辑、电路和/或接口。第一存储器324、第二存储器326、第三存储器328和第四存储器330的实现示例可以包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)、动态随机存取存储器(dynamic random access memory,DRAM)、随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、闪存,和/或CPU高速缓冲存储器。
第一固态设备(first solid-state device,SSD1)332、第二固态设备(secondsolid-state device,SSD2)334,第三固态设备(third solid-state device,SSD3)336和第四固态设备(fourth solid-state device,SSD3)338中的每一个包括用于存储对应操作系统和/或可由对应中央处理器执行的指令集的适当逻辑、电路和/或接口。第一网络接口卡(first network interface card,NIC1)340和第二网络接口卡(second networkinterface card,NIC2)342包括用于连接外部设备的适当逻辑、电路和/或接口。
最初,计算机102是单个多核心机器,其中最初,单个操作系统在计算机102的硬件306上运行。此后,计算机102的管理系统302接收(图1的)第一工作负载108的指示(或外部命令)和(图1的)第二工作负载110的指示,以便触发计算机102的分区。此外,管理系统302根据接收到的第一工作负载108的指示生成计算机102的第一分区114,并根据接收到的第二工作负载110的指示生成计算机102的第二分区116。在一种实现方式中,管理系统302用于根据第一工作负载108和第二工作负载110的属性拔掉正在运行的(或已经分配的)硬件306,以便确定硬件306的第一子集和第二子集。管理系统302还将硬件306的第一子集分配给第一分区114,并将硬件306的第二子集分配给第二分区116。例如,管理系统302将第一中央处理器316、第二中央处理器318、第一存储器324、第一固态设备342和第二网络接口卡342分配给第一分区114,如图3所示。类似地,管理系统302将第四中央处理器322、第四存储器330、第二固态设备334和第四固态设备338分配给计算机102的第二分区116,如图3所示。
换句话说,第一工作负载108和第二工作负载110用于增强计算机102的正在运行的软件(具体地,操作系统),以实现计算机102的动态硬件分区。因此,管理系统302对可用硬件306进行记账并将其分配给计算机102的第一分区114和第二分区116。此后,管理系统302在第一分区114中且在所分配的硬件306的第一子集上执行第一工作负载108,并在所分配的硬件306的第二子集上在第二分区116中执行第二工作负载110。
在一种实现方式中,计算机102的管理系统302针对第一工作负载108确定第一操作系统310并针对第二工作负载110确定第二操作系统312。此后,计算机102的第一分区114使得第一工作负载108以其期望的操作系统类型,例如硬件306的第一子集上的第一操作系统310运行。类似地,计算机102的第二分区116使得第二工作负载110以其期望的操作系统类型,例如硬件306的第二子集上的第二操作系统312运行。换句话说,计算机102的初始操作系统在所分配的硬件306上调度新的操作系统。因此,新操作系统,例如第一操作系统310和第二操作系统312,仅使用所分配的硬件306的子集启动。此外,第一操作系统310和第二操作系统312以计算机102的分区模式运行。在一种实现方式中,新操作系统,例如第一操作系统310和第二操作系统312,也产生管理系统302(或控制器104)。因此,本发明提供了一种操作系统机制,以使得能够使用这种操作系统机制在多个操作系统(例如第一操作系统310和第二操作系统312)之间共享硬件306/对所述硬件进行分区。在一种实现方式中,并发操作系统的数量是动态的,并且并发操作系统之间的硬件306(和设备)分布也是动态的。因此,计算机102的分区,例如第一分区114和第二分区116,被分配给硬件资源106A至106N的特定子集,以便确保硬件资源106A至106N的限制。
在一种实现方式中,计算机102的管理系统302还接收(图1的)第三工作负载112的指示。此后,管理系统302确定硬件306对于硬件306的第三子集的可用性。在一个示例中,如果硬件306(或图1的硬件资源106A至106N)可用,则管理系统302根据第三工作负载112的属性拔掉已经运行(或已经分配)的硬件306,以便确定硬件306的第三子集。例如,管理系统302拔掉分配给计算机102的第一分区114和/或第二分区116的硬件306,并确定硬件306的第三子集。在另一个示例中,如果没有可用的免费硬件306,则管理系统302从计算机102的第一分区114和/或第二分区116检索硬件306。此后,管理系统302将确定的(或检索到的)硬件306分配给硬件306的第三子集。此外,管理系统302将硬件306的第三子集分配给第三工作负载112,以便创建计算机102的第三分区118。在一个示例中,管理系统302根据第三工作负载112的属性将硬件306的第三子集分配给第三工作负载112。例如,管理系统302将第三中央处理器320、第二存储器326、第三存储器328、第三固态设备336和第一网络接口卡340分配给计算机102的第三分区118,如图3所示。因此,管理系统302对可用硬件306进行记账并将其分配给计算机102的第三分区118。此后,管理系统302在所分配的硬件306的第三子集上在第三分区118中执行第三工作负载112。在一种实现方式中,计算机102的管理系统302针对第三工作负载112确定第三操作系统314。此后,计算机102的第三分区118使得第三工作负载112以其期望的操作系统类型,例如硬件306的第三子集上的第三操作系统314运行。在一个示例中,第三操作系统314不同于第一操作系统310和第二操作系统312。有益的是,与传统方法相比,本发明可用于需要不同操作系统类型(或版本)的工作负载。
在一种实现方式中,管理系统302接收对附加硬件306的请求。但是,可能不存在可用的免费硬件306。在这种情况下,使用共享硬件,所述共享硬件是硬件306的两个子集的一部分,例如,硬件306的第一子集以及第二子集的一部分。因此,在一段时间内利用共享硬件306,以便在第一分区114中执行第一工作负载108。换句话说,多个硬件306必须被过量使用,例如使用相同硬件资源的中央处理器分区同时执行。在一种实现方式中,管理系统302例如通过合作机制308A、308B和308C主动地从在第一分区114中执行转移到在第二分区116中执行。例如,计算机102的一个分区,例如第一分区114,可以合作地在彼此之间进行上下文切换,例如通过产生中央处理器核心(例如,第一中央处理器316)并恢复其他分区的中央处理器状态。有益的是,与传统方法相比,硬件306可以共享,而不仅仅是分区。
在不脱离所附权利要求所限定的本发明范围的情况下,可对上文描述的本发明的实施例进行修改。如“包括”、“结合”、“具有”、“是/为”等用于描述和要求保护本发明的表述旨在以非排他性的方式解释,即使得未明确描述的项目、组件或元件也存在。对单数的引用也应解释为涉及复数。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何被描述为“示例性的”实施例不一定解释为比其他实施例更优选或更有利,或排除其他实施例的特征的结合。本文使用的词语“可选地”表示“在一些实施例中提供且在其他实施例中没有提供”。应当理解,为了清楚起见在单独实施例的上下文中描述的本发明的某些特征还可通过组合提供在单个实施例中。相反地,为了简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的组合或作为本发明的任何其他描述的实施例提供。

Claims (16)

1.一种计算机(102),包括控制器(104)和包含多个硬件资源(106A至106N)的硬件资源集(106),其特征在于,所述控制器(104)用于:
接收第一工作负载(108)的指示;
通过将硬件资源(106A至106N)的第一子集分配给所述第一工作负载(108)来生成所述计算机(102)的第一分区(114);
在所分配的硬件资源(106A至106N)的第一子集上在所述第一分区(114)中执行所述第一工作负载(108),其中,所述第一子集小于所述硬件资源集(106),所述控制器(104)还用于
接收第二工作负载(110)的指示;
通过将硬件资源(106A至106N)的第二子集分配给所述第二工作负载(110)来生成所述计算机(102)的第二分区(116);
在所分配的硬件资源(106A至106N)的第二子集上在所述第二分区(116)中执行所述第二工作负载(110),其中,所述第二子集小于所述硬件资源集(106)。
2.根据权利要求1所述的计算机(102),其特征在于,所述控制器(104)还配置为基于所述控制器(104)执行的软件指令。
3.根据前述权利要求1中任一项所述的计算机(102),其特征在于,所述控制器(104)还用于针对所述第一工作负载(108)确定第一操作系统(310)、在所述硬件资源(106A至106N)的第一子集上启动所述第一操作系统(310)、在所述第一操作系统(310)下执行所述第一工作负载(108);针对所述第二工作负载(110)确定第二操作系统(312)、在所述硬件资源(106A至106N)的第二子集上启动所述第二操作系统(312)、在所述第二操作系统(312)下执行所述第二工作负载(110)。
4.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述控制器(104)还用于根据所述第一工作负载(108)的属性确定所述硬件资源(106A至106N)的第一子集。
5.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述第一操作系统(310)与所述第二操作系统(312)不同。
6.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述多个硬件资源(106A至106N)包括多个处理器核心和多个存储器,其中,所述硬件资源(106A至106N)的第一子集包括处理器核心的第一子集和存储器的第一子集,所述硬件资源(106A至106N)的第二子集包括处理器核心的第二子集和存储器的第二子集。
7.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述控制器(104)还用于停止在所述第一分区(112)中执行所述第一工作负载(108),并将所述硬件资源(106A至106N)的第一子集标记为可用,从而删除所述第一分区(112)。
8.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述控制器(104)还用于通过将另一硬件资源分配给所述硬件资源(106A至106N)的第一子集来将所述另一硬件资源添加到所述第一分区(112)。
9.根据权利要求8所述的计算机(102),其特征在于,所述控制器(104)还用于响应于从所述第一分区(112)接收到的对附加硬件资源的请求,将所述另一硬件资源添加到所述第一分区(112)。
10.根据权利要求8所述的计算机(102),其特征在于,来自所述第一分区(112)的对附加硬件资源的所述请求是基于分配的硬件资源(106A至106N)的子集不足这项判断而确定的。
11.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述控制器(104)还用于通过从所述硬件资源(106A至106N)的第一子集中删除所产生的硬件资源来从所述第一分区(112)中删除所述产生的硬件资源,从而在没有所述产生的硬件资源的情况下,在所述硬件资源(106A至106N)的第一子集上在所述第一分区(112)中执行所述第一工作负载(108)。
12.根据前述权利要求中任一项所述的计算机(102),其特征在于,共享硬件资源是所述硬件资源(106A至106N)的第一子集的一部分和所述硬件资源(106A至106N)的第二子集的一部分,其中,所述控制器(104)还用于通过在一段时间内利用所述共享硬件资源在所述第一分区(112)中执行所述第一工作负载(108)。
13.根据权利要求12所述的计算机(102),其特征在于,所述时间段一直持续到所述第一分区(112)移交所述共享硬件资源。
14.根据前述权利要求中任一项所述的计算机(102),其特征在于,所述控制器(104)还用于:
接收第三工作负载(112)的指示;
确定是否存在能用于硬件资源(106A至106N)的第三子集的硬件资源(106A至106N),且如果没有,则从所述第一分区和/或所述第二分区(116)检索硬件资源(106A至106N);
将可用硬件资源(106A至106N)分配给所述硬件资源(106A至106N)的第三子集,其中,所述第三子集小于所述硬件资源集(106);
通过将所述硬件资源(106A至106N)的第三子集分配给所述第三工作负载(112)来生成所述计算机(102)的第三分区(118);
在所分配的硬件资源(106A至106N)的第三子集上在所述第三分区(118)中执行所述第三工作负载(112)。
15.一种用于包括硬件资源集(106)的计算机(102)的方法(200),所述硬件资源集包括多个硬件资源(106A至106N),其特征在于,所述方法包括:
接收第一工作负载(108)的指示;
通过将硬件资源(106A至106N)的第一子集分配给所述第一工作负载(108)来生成所述计算机(102)的第一分区(114);
在所分配的硬件资源(106A至106N)的第一子集上在所述第一分区(114)中执行所述第一工作负载(108),其中,所述第一子集小于所述硬件资源集(106),所述控制器(104)还用于
接收第二工作负载(110)的指示;
通过将硬件资源(106A至106N)的第二子集分配给所述第二工作负载(110)来生成所述计算机(102)的第二分区(116);
在所分配的硬件资源(106A至106N)的第二子集上在所述第二分区(116)中执行所述第二工作负载(110),其中,所述第二子集小于所述硬件资源集(106)。
16.一种计算机可读介质,其特征在于,包括指令,当加载到控制器(104)中并由所述控制器执行时,所述指令使所述控制器(104)能够执行根据权利要求15所述的方法(200)。
CN202180097729.3A 2021-05-04 2021-05-04 在运行时对计算机进行动态分区的系统和方法 Pending CN117280325A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/061688 WO2022233399A1 (en) 2021-05-04 2021-05-04 System and method of dynamically partitioning computers at runtime

Publications (1)

Publication Number Publication Date
CN117280325A true CN117280325A (zh) 2023-12-22

Family

ID=75801601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180097729.3A Pending CN117280325A (zh) 2021-05-04 2021-05-04 在运行时对计算机进行动态分区的系统和方法

Country Status (3)

Country Link
EP (1) EP4323868A1 (zh)
CN (1) CN117280325A (zh)
WO (1) WO2022233399A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266823B2 (en) * 2002-02-21 2007-09-04 International Business Machines Corporation Apparatus and method of dynamically repartitioning a computer system in response to partition workloads

Also Published As

Publication number Publication date
EP4323868A1 (en) 2024-02-21
WO2022233399A1 (en) 2022-11-10

Similar Documents

Publication Publication Date Title
US10162658B2 (en) Virtual processor allocation techniques
RU2571366C2 (ru) Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин
JP5235989B2 (ja) 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム
RU2569805C2 (ru) Виртуальная архитектура неоднородной памяти для виртуальных машин
US9268394B2 (en) Virtualized application power budgeting
US11181970B2 (en) System and method for performing distributed power management without power cycling hosts
US9152200B2 (en) Resource and power management using nested heterogeneous hypervisors
US8661448B2 (en) Logical partition load manager and balancer
US8312201B2 (en) Managing memory allocations loans
US20180157519A1 (en) Consolidation of idle virtual machines
US10216536B2 (en) Swap file defragmentation in a hypervisor
US9183061B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
JP2022516486A (ja) リソース管理方法と装置、電子デバイス、及び記録媒体
JP2015534184A (ja) コード実行の柔軟なアクセラレーション
US20220058044A1 (en) Computer system and management method
US9158554B2 (en) System and method for expediting virtual I/O server (VIOS) boot time in a virtual computing environment
CN116324706A (zh) 分离式存储器池分配
CN113268356B (zh) 基于LINUX系统的多GPU板卡bounding的系统、方法及介质
US20190278714A1 (en) System and method for memory access latency values in a virtual machine
CN117280325A (zh) 在运行时对计算机进行动态分区的系统和方法
US20190278715A1 (en) System and method for managing distribution of virtual memory over multiple physical memories

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