固件

阅读:760发布:2020-05-08

专利汇可以提供固件专利检索,专利查询,专利分析的服务。并且一种网元(network element,简称NE),包括:接收器,用于耦合至 云 网络;多核 中央处理器 (central processing unit,简称CPU),耦合至所述接收器,用于:从编排元件接收第一分区配置,根据所述第一分区配置将多个处理器核心分区成多个处理器核心分区,并启动多个虚拟 基本输入输出系统 (virtual basic input/output system,简称vBIOS),以使每个vBIOS管理一个处理器核心分区。,下面是固件专利的具体信息内容。

1.一种网元,其特征在于,包括:
接收器,用于耦合至网络;
多核中央处理器,耦合至所述接收器,用于:
从编排元件接收第一分区配置;
根据所述第一分区配置将多个处理器核心分区成多个处理器核心分区;
启动多个虚拟基本输入输出系统,以使每个虚拟基本输入输出系统管理一个处理器核心分区;
至少一个虚拟基本输入输出系统用于在不启动对应操作系统管理应用程序的前提下启动所述应用程序。
2.根据权利要求1所述的网元,其特征在于,至少一个虚拟基本输入输出系统分布在多个网元机框上,以使所述至少一个虚拟基本输入输出系统管理所述网元上对应的处理器核心分区中的处理器核心以及通过所述接收器耦合至所述网元的远程网元机框上的对应的远程处理器核心分区中的处理器核心。
3.根据权利要求1所述的网元,其特征在于,所述多核中央处理器包括物理基本输入输出系统,其中,所述物理基本输入输出系统用于分区所述处理器核心,基于来自所述编排元件的所述第一分区配置启动所述多个虚拟基本输入输出系统。
4.根据权利要求3所述的网元,其特征在于,所述多核中央处理器还用于从所述编排元件接收第二分区配置,其中,所述物理基本输入输出系统还用于在没有基于所述第二分区配置重启所述多核中央处理器的前提下卸载至少一个虚拟基本输入输出系统。
5.根据权利要求4所述的网元,其特征在于,所述物理基本输入输出系统还用于:
根据所述第二分区配置重新分区至少一个所述多个处理器核心分区;
在每个重新分区的处理器核心分区中启动虚拟基本输入输出系统。
6.根据权利要求5所述的网元,其特征在于,至少一个所述虚拟基本输入输出系统在所述物理基本输入输出系统进行重新分区时继续在对应的处理器核心分区上运行。
7.根据权利要求1所述的网元,其特征在于,所述接收器用于从所述编排元件接收所述第一分区配置,其中,所述多核中央处理器通过所述接收器接收所述第一分区配置,其中,所述网元不包括所述编排元件。
8.根据权利要求1所述的网元,其特征在于,所述编排元件至少一部分在所述网元上运行,并分布在通过所述接收器耦合至所述网元的所述云网络上。
9.一种在编排元件中实现的方法,其特征在于,所述方法包括:
通过所述编排元件中的处理器发布瞬态操作系统环境;
通过所述处理器确定第一云计算配置;
通过所述编排元件中的发射器与云中的多个网元进行通信以发现所述网元中可用的硬件资源;
通过所述发射器与所述网元进行通信以在所述网元上发布多个物理基本输入输出系统,以使所述物理基本输入输出系统管理所述可用的硬件资源以实现所述第一云计算配置;
通过所述发射器与所述网元的第一网元上的所述物理基本输入输出系统中的第一物理基本输入输出系统进行通信,以根据所述第一云计算配置将所述第一网元上可用的硬件资源分区成多个资源分区;
通过所述发射器与所述第一物理基本输入输出系统进行通信以启动多个虚拟基本输入输出系统,以使每个虚拟基本输入输出系统管理对应的资源分区中可用的硬件资源;
至少一个所述虚拟基本输入输出系统用于在不启动对应的操作系统的前提下运行虚拟机
10.根据权利要求9所述的方法,其特征在于,还包括:通过所述发射器与所述网元的第二网元上的所述物理基本输入输出系统中的第二物理基本输入输出系统进行通信,以根据所述第一云计算配置将所述第二网元上可用的硬件资源分区成多个资源分区;
通过所述发射器与所述第二物理基本输入输出系统进行通信以启动所述虚拟基本输入输出系统的第一虚拟基本输入输出系统,以使所述第一虚拟基本输入输出系统管理所述第一网元和所述第二网元上可用的硬件资源。
11.根据权利要求9所述的方法,其特征在于,还包括:
通过所述处理器确定第二云计算配置,其与所述第一云配置不同;
通过所述发射器与所述第一物理基本输入输出系统进行通信以卸载至少一些所述虚拟基本输入输出系统,并在不重启所述第一网元的前提下根据所述第二云计算配置重新分区所述第一网元上的可用资源。
12.根据权利要求11所述的方法,其特征在于,至少一些所述虚拟基本输入输出系统在重新分区时继续运行。
13.一种在网元中实现的方法,其特征在于,所述方法包括:
通过所述网元中的端口从编排元件接收分区配置;
所述网元中的处理器根据所述分区配置将本地可用的硬件资源分区成多个分区;
所述处理器启动多个虚拟基本输入输出系统,以使每个虚拟基本输入输出系统管理分配给相关分区的所有硬件资源,至少一个所述虚拟基本输入输出系统用于在不启动对应的操作系统的前提下启动虚拟机。
14.根据权利要求13所述的方法,其特征在于,所述至少一个虚拟基本输入输出系统用于在不启动本地虚拟机管理器的前提下启动所述虚拟机。
15.根据权利要求13所述的方法,其特征在于,至少一个虚拟基本输入输出系统分布在多个网元机框上,以使所述至少一个虚拟基本输入输出系统管理所述网元上对应的分区中的硬件资源和远程网元机框中对应的远程分区中的硬件资源。
16.根据权利要求13所述的方法,其特征在于,还包括:通过所述处理器基于来自所述编排元件的通信将所述本地可用的硬件资源重新分区,其中,至少一个所述虚拟基本输入输出系统在重新分区所述本地可用的硬件资源时保持运行。

说明书全文

固件

[0001] 相关申请案交叉申请
[0002] 本申请要求由An Wei等人于2014年7月15日递交的发明名称为“云固件”的第62/024,816号美国临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
[0003] 关于由联邦政府赞助研究或开发的声明
[0004] 不适用
[0005] 参考缩微胶片附录
[0006] 不适用

背景技术

[0007] 云计算指的是在诸如一个或多个数据中心内弹性提供计算机业务硬件,然后,用户可在诸如互联网上对其进行利用。多个动态提供的硬件部件组成一个云,计算机业务之间共享该云的硬件资源,以实现最佳性能。所述计算机业务可包括计算和数据存储。
[0008] 云可分为私有云、公有云,以及混合云。私有云是针对单一机构而独立运行的,私有云可以由内部或第三方管理并且可包括维护数据完整性的安全机制。公有云供公众使用,可供大量用户进行接入,但不提供有效的安全保障。混合云是至少一个私有云和至少一个公有云的组合。私有云的架构与公有云的架构大体类似。然而,针对在私有云架构和公有云架构上运行的计算机业务而言,安全考量可能极其不同。

发明内容

[0009] 在一实施例中,本发明包括一种网元(network element,简称NE),包括:接收器,用于耦合至云网络;多核中央处理器(central processing unit,简称CPU),耦合至所述接收器,用于从编排元件接收第一分区配置,根据所述第一分区配置将多个处理器核心分区成多个处理器核心分区,并启动多个虚拟基本输入输出系统(virtual basic input/output system,简称vBIOS),以使每个vBIOS管理一个处理器核心分区。
[0010] 在另一实施例中,本发明包括一种在编排元件中实现的方法,所述方法包括:发布瞬态操作系统环境,确定第一云计算配置,与云中的多个NE进行通信以发现所述NE中可用的硬件资源,与所述NE进行通信以在所述NE上发布多个物理基本输入输出系统(physical basic input/output system,简称pBIOS),以使所述pBIOS管理所述可用的硬件资源以实现所述第一云计算配置。
[0011] 在又一实施例中,本发明包括一种在NE中实现的方法,所述方法包括:从编排元件接收分区配置,根据所述分区配置将本地可用的硬件资源分区成多个分区,启动多个vBIOS,以使每个vBIOS管理分配给相关分区的所有硬件资源。
[0012] 结合下面对附图权利要求的详细描述,可以更清楚地了解这些及其他特征。

附图说明

[0013] 为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
[0014] 图1是一种云计算架构的示意图。
[0015] 图2是另一种云计算架构的示意图。
[0016] 图3是又一种云计算架构的示意图。
[0017] 图4是本发明一实施例提供的一种云计算网络的示意图。
[0018] 图5是本发明一实施例提供的一种云计算架构的示意图。
[0019] 图6是本发明一实施例提供的一种vBIOS分配方法的示意图。
[0020] 图7是本发明一实施例提供的另一种云计算架构的示意图。
[0021] 图8是一种NE设备的示意图。
[0022] 图9是本发明一实施例提供的一种执行云计算架构中应用程序的方法的图。
[0023] 图10是本发明一实施例提供的一种创建vBIOS的方法的实施例的流程图
[0024] 图11是本发明一实施例提供的一种通过发布vBIOS管理硬件资源的方法的实施例的流程图。
[0025] 图12是一种编排元件管理硬件资源的方法的实施例的流程图。
[0026] 图13是一种NE基于来自编排元件的配置管理硬件资源的方法的实施例的流程图。

具体实施方式

[0027] 首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改
[0028] 图1是一种云计算架构100的示意图。该云计算架构100包括多台与连接160互连的计算机110。该云计算架构100可以按照如图所示或其他任一合适的方式进行配置。
[0029] 从功能度,每台计算机110分为四层,包括:硬件层120、基本输入输出系统(basic input/output system,简称BIOS)层130、操作系统(operating system,简称OS)层140,以及应用层150。在硬件层120中,计算机110提供诸如CPU(例如,处理器)等硬件资源,其可包括多个处理器核心。在BIOS层130中,计算机110运行BIOS固件程序,其用于确定计算机110中全部可用的硬件资源并在启动时通知OS全部可用的硬件资源。在OS层140中,OS在每台计算机110上运行。例如,OS可以是 OS或者 OS。多台计算机
110的OS通过计算机110的硬件相互通信。不同的计算机110可以利用不同的OS来运行。在应用层150中,通过利用计算机110的OS,计算机110执行一个应用程序。该应用程序可以是用于为用户提供服务的任一计算机程序。由于计算机110中的所有可用的硬件资源都进行了分配以执行该应用程序,因此当运行该应用程序不需要所有可用的硬件资源时,可能会浪费一些可用的硬件资源。
[0030] 连接160用于连接多台计算机110的硬件。在一些示例中,连接160可以是诸如光纤链路和/或电链路等物理连接。在一些示例中,连接160可以是无线或虚拟链路。
[0031] 图2是另一种云计算架构200的示意图。从功能角度,该云计算架构200分为五层,包括:硬件层210、虚拟机管理器(virtual machine manager,简称VMM)层220、虚拟机层230、OS层240,以及应用层250。该云计算架构200可以按照如图所示或其他任一合适的方式进行配置。例如,该云计算架构200可以分布在诸如计算机110等多台计算机上,和/或在单一计算机上实现。
[0032] 在硬件层210中,一个或多个硬件用于提供硬件资源。例如,该硬件可包括CPU、存储设备,以及控制板。该硬件可以作为计算云互连,以便将该硬件按需动态地进行分配以服务于多个应用程序。
[0033] 在VMM层220中,一个VMM程序创建多个虚拟机(virtual machine,简称VM)并通过将合适的硬件资源分配给每个VM来管理每个VM。不同的VM可以支持不同的OS并通过硬件资源连接。利用VMM程序创建多个VM以支持不同的OS被称为虚拟技术。在VM层230中,多个VM支持使用VMM分配的硬件资源的OS。VMM层220和VM层230合称为虚拟层。OS层240和应用层250分别与OS层140和应用层150类似。
[0034] 图3是又一种云计算架构300的示意图。从功能角度,该云计算架构300分为四层,包括:硬件层310、BIOS层350、VMM层360,以及VM层370。该云计算架构300可以按照如图所示或其他任一合适的方式进行配置。例如,该云计算架构300可以分布在诸如计算机110等多台计算机上,和/或在单一计算机上实现。
[0035] 硬件层310包括存储设备315(例如,硬盘或其他存储器)、网络320(例如,发射器、接收器、链路等),以及耦合至存储设备315和网络320的控制板325。硬件层310还包括耦合至控制板325的多个CPU 330。存储设备315、网络320、控制板325,以及CPU 330可以以本领域普通技术人员已知的任一方式进行配置。
[0036] 存储设备315是一个存储单元,其包括一个或多个磁盘、磁带驱动器和/或固态驱动器,并可用作溢出数据存储设备,以存储选择执行这些程序时所用的程序,并存储程序执行时所读取的指令与数据。网络320用于使云计算架构300能够与其他云计算架构进行通信。控制板325用于管理多个CPU330、存储设备315、网络320和/或其他硬件之间的通信。
[0037] 每个CPU 330包括控制插槽335和多个处理器核心340。控制插槽335用于控制和管理多个处理器核心340。每个处理器核心340为一个处理单元,其从控制插槽335接收指令并执行该指令。BIOS层350、VMM层360和VM层370分别与BIOS层130、VMM层220和VM层230类似。
[0038] 相较于图1中的云计算架构100,由于VMM允许将资源动态地按需分配,因此图2中的云计算架构200和图3中的云计算架构300在资源共享以及应用程序和/或OS迁移方面具有优势。然而,随着处理器核心数量的增加,VMM管理不同应用程序的硬件资源的能相应地减弱。因此,需要一个支持计算容量的持续扩容的云计算架构。另外,除了隔离和连通,OS层和虚拟层将延迟和复杂度引入云中,并对建立有效实际的云计算架构提出挑战。因此,为了实现一个低延迟,低复杂度,高效的轻量灵活的云计算架构,云计算架构可以消除OS层(例如,OS层140、240)和虚拟层(例如,VMM层220、360和VM层230、370)。此类云计算架构可应用于数据中心。
[0039] 本文揭露了各种管理云计算架构中的硬件资源的实施例。动态创建包括虚拟BIOS(virtual basic input/output system,简称vBIOS)的固件,从而指定和分区可用的硬件资源,以供云计算架构中的多处理器环境下的应用程序使用。在一实施例中,编排元件与云计算架构进行通信并位于一个与实现云计算架构的节点相分离的远程节点。在启动云计算架构和/或相关节点时,编排元件创建该固件,并将该固件加载到实现云计算架构的节点的存储元件中。云计算架构的每个节点上的控制板发布固件的vBIOS的本地副本(例如,从编排元件接收到的),从而为了运行应用程序而对可用的硬件资源进行管理和/或分区。在另一实施例中,编排元件分布在实现云计算架构的多个节点上。节点的控制板都包含编排元件的功能,所述控制板相互通信以创建包括vBIOS的固件并发布vBIOS,从而为运行应用程序而对可用的硬件资源进行管理和分区。此外,该固件管理云计算架构中的本地处理、网络和资源存储。该固件适用于所有的云计算架构。此外,通过消除云计算架构的OS层和VMM层,该固件节省了虚拟软件的成本,提供了高可靠性、并且提升了性能。
[0040] 图4是本发明一实施例提供的云计算网络400的示意图。该云计算网络400包括编排元件410和多个计算节点430。多个计算节点430与连接420互连并组成一个计算云440。该云计算网络400可以按照如图所示或者其他任一适合的方式进行配置。
[0041] 编排元件410用于:通过将硬件资源分配给多种应用程序以响应硬件资源请求,管理计算云440的硬件资源,以及动态管理多个计算节点430的硬件资源。每个计算节点430用于利用编排元件410分配的硬件资源来运行一个或多个应用程序。与图4所示的多个计算节点430互连的连接420可以是逻辑连接或物理连接。计算节点430的硬件资源可包括多个CPU(例如,CPU 330)或计算云440中的其他资源(例如,存储驱动器、网络资源等)。多个CPU可以通过光纤链路、电链路和/或无线链路进行连接。
[0042] 图5是本发明一实施例提供的云计算架构500的示意图。该云计算架构500包括平台510、第一计算子系统520、第二计算子系统530、第三计算子系统540、第四计算子系统550、分布式应用元件560,以及编排元件570。所述云计算架构500可以在诸如网络400等网络中实现。例如,分别地,第一计算子系统520、第二计算子系统530、第三计算子系统540,以及第四计算子系统550可以在诸如节点430等节点上实现;分布式应用元件560可以在诸如节点430等多个节点上运行;编排元件570可以与编排元件410类似。在其他实施例中,云计算架构500通过计算节点(例如,节点430)分布式地实现编排元件570。该云计算网络500可以按照如图所示或者其他任一适合的方式进行配置。
[0043] 平台510与计算节点440类似,并包括硬件资源。所述平台510支持异构计算子系统。如图5所示,该异构计算子系统包括第一计算子系统520、第二计算子系统530、第三计算子系统540,以及第四计算子系统550。
[0044] 第一计算子系统520与计算机110类似。从功能角度,第一计算子系统520分为四层,包括:第一节点层522(例如,节点430)、第一BIOS层524、第一OS层526,以及第一应用层528,其分别与硬件层120、BIOS层130、OS层140,以及应用层150类似。
[0045] 从功能角度,第二计算子系统530分为三层,包括:第二节点层532(例如,节点430)、第二BIOS层534,以及第二应用层538,其分别与硬件层120、BIOS层130,以及应用层
150类似。通过利用用于资源管理、监控以及编排的南向应用程序界面(application programming interface,简称API),第二应用层538在第二BIOS层534上运行,以使通过诸如利用OpenStack,远程实体(例如,编排元件570)可以对资源进行直接管理、监控以及分配。该API使得应用程序不利用OS也能够运行。因此,第二计算子系统530不包括OS层(例如,OS层140)。
[0046] 从功能角度,第三计算子系统540分为两层,包括:第三节点层542(例如,节点430)和第三应用层548,其分别与硬件层120和应用层150类似。通过处理器、图形处理器(graphic processing unit,简称GPU),或现场可编程阵列(field programming gate array,简称FPGA),第三应用层548可以直接在第三节点层542上运行。因此,第三计算子系统540既不包括OS层(例如,OS层140),也不包括BIOS层(例如,BIOS层130)。
[0047] 第四计算子系统550包括用于计算机加速的计算节点552(例如,节点430)。第四计算子系统550中的计算节点552与第一计算子系统520、第二计算子系统530,以及第三计算子系统540中的计算节点类似。通过增加计算节点522,第四计算子系统550可以提供诸如迁移、备份和反射等服务。应当说明的是,架构500可包括相同类型的多个节点和/或也可以不包括一些实施例中所示的所有节点。
[0048] 分布式应用元件560用于与编排元件570进行通信并通过异构计算子系统作为一个或多个分布式应用程序运行,例如,第一计算子系统520、第二计算子系统530、第三计算子系统540,以及第四计算子系统550。
[0049] 在一实施例中,节点522、532、542和552与远程位于专用节点的编排元件570进行通信。例如,节点522、532、542和552都可以在一个单一机框/计算机上运行。编排元件570可以在远程计算节点中的另一个机框/计算机上运行。在另一实施例中,编排元件570分布在节点522、532、542和552上。编排元件570与编排元件410类似,并用于根据来自分布式应用元件560的硬件资源请求,通过为多种应用程序中的每一个创建包括vBIOS的固件来管理平台510的硬件资源。来自分布式应用元件560的硬件资源请求指示多种应用程序中的每个应用程序所需的硬件资源。
[0050] 运行时,分布式应用元件560将多种应用程序的硬件资源请求传输至编排元件570。在一实施例中,从功能角度,编排元件570包括在云计算架构500的每个节点中。这样一来,编排元件570发布pBIOS,以确定平台510的每个节点的响应硬件资源请求的可用硬件资源。pBIOS可以是针对节点的一个固件程序,其用于测试节点硬件并启动节点软件。编排元件570还创建包括针对各种应用程序中的每一个的vBIOS的固件,并将一个分区的可用硬件资源进行分区以分配给各种应用程序中的每一个。可通过为了启动节点硬件的特定分区上的特定应用程序而定制的BIOS固件动态地生成vBIOS。该分区的可用硬件资源是一个虚拟分区的可用硬件资源。最后,编排元件570发布vBIOS,以管理用于运行各种应用程序的分区的可用硬件资源。
[0051] 在一实施例中,编排元件570的位置远离节点522、532、542和552。编排元件570将针对平台510的可用硬件资源的一个请求传输至节点522、532、542和552。针对平台510的每个节点的控制板(例如,控制板325)发布本地pBIOS,以确定平台510的每个节点的响应该请求的本地可用的硬件资源。然后,所述控制板将指示可用的硬件资源的消息传输至编排元件570。接收到所述消息之后,编排元件570创建包括针对各种应用程序中的每一个的vBIOS的固件,并指定每个节点的一个分区的可用硬件资源以分配给各种应用程序中的每一个。编排元件570还将该固件传输至每个控制板。最后,所述控制板发布vBIOS,以管理用于运行各种应用程序的该分区的可用硬件资源。对于这两个实施例,该分区的可用硬件资源对应于第一计算子系统520的第一节点层522、第二计算子系统530的第二节点层532、第三计算子系统540的第三节点层542,以及第四计算子系统550中的计算节点。
[0052] 图6是本发明一实施例提供的vBIOS分配方法600的示意图。方法600可以在平台660和编排元件650上运行,其可以分别与平台510和编排元件570类似。平台660包括多个节点,例如,节点430。所述节点包括硬件资源,例如多个CPU 620。接收到硬件资源请求之后,编排元件650创建包括针对各种应用程序的多个vBIOS 610、630和640的固件。根据硬件资源请求,将平台660中合适的硬件资源都分配给vBIOS 610、630和640。例如,每个CPU 620包括一个或多个处理器核心。因此,将最小整数数量的可用处理器核心都分配给vBIOS 610、
630和640,从而提供硬件资源请求所需的硬件资源。
[0053] 例如,CPU 620中的每一个可包括8个处理器核心。此外,硬件资源请求可以指示运行第一应用程序需要32个处理器核心的硬件资源、运行第二应用程序需要11.5个处理器核心的硬件资源、运行第三应用程序需要3.5个处理器核心的硬件资源。相应地,编排元件650为第一应用程序创建第一vBIOS(vBIOS1)610,将其分配给4个CPU 620。编排元件650为第二应用程序创建第二vBIOS(vBIOS2)630,将其分配给1.5个CPU 620或12个处理器核心。编排元件650为第三应用程序创建第三vBIOS(vBIOS3)640,将其分配给半个CPU 620或4个处理器核心。基于请求来自编排元件650的资源的应用程序需要,可以将额外的CPU/核心动态地重新分配给额外的vBIOS。
[0054] 图7是本发明一实施例提供的另一云计算架构700的示意图。所述云计算架构700包括硬件层710和固件层740,其可以分别与硬件层310和BIOS层350类似。硬件层710和固件层740可以在单一节点上实现或者分布在多个节点上,例如,节点430。该云计算架构700也可以用于加载多个计算机子系统750和795,其可以与计算子系统520、530、540和/或550的软件和/或固件的部分类似。该云计算架构700可以按照如图所示或者其他任一合适的方式进行配置。
[0055] 硬件层710包括多个CPU 720,其中的每一个包括多个处理器核心730。硬件层710还包括网络连接(例如,网络)、控制板715,以及存储设备712,其分别与网络320、控制板325,以及存储设备315类似。
[0056] 控制板715与上述控制板类似。在固件层740中,从功能角度,一个固件可以配置为一个BIOS(例如,BIOS层130中的BIOS)或者BIOS和虚拟机监视器的组合。该固件与上述固件类似。该固件可以直接与私有云和/或公有云中其他计算机/节点的固件连接。
[0057] 在一实施例中,编排元件(例如,编排元件570)的位置远离云计算架构700。因此,在启动云计算架构700时,编排元件为各种应用程序创建包括vBIOS的固件,并将该固件传输至控制板715。在控制板715从编排元件接收到该固件后,该固件存储在存储设备712中。在一实施例中,控制板715包括编排元件的功能。因此,在控制板715创建该固件后,控制板
715创建包括针对各种应用程序的vBIOS的固件,且该固件存储在存储设备712中。
[0058] 从功能角度,计算机子系统750和795都分别分为vBIOS层760和780以及应用层770和790。vBIOS层760和780可包括vBIOS,例如,vBIOS 610、630和/或640。应用层770可包括本地或分布式应用程序,例如,分布式应用元件560。例如,在第一计算机子系统750的第一vBIOS层760中,在第一vBIOS层760中发布第一vBIOS后,提供第一分区的硬件资源以支持第一应用程序。又例如,在第二计算机子系统795的第二vBIOS层780中,在第二vBIOS层780中发布第二vBIOS后,提供第二分区的硬件资源以支持第二应用程序。如图所示,第一分区的硬件资源包括一个处理器核心730。第二分区的硬件资源包括两个处理器核心730。相应地,处理器核心730可以属于同一个CPU 720,但是可以通过编排元件建立的分区分布在不同的vBIOS上。在一实施例中,一组处理器核心730可以属于不同的CPU 720。
[0059] 实际上,通过分布式和/或离散的容器或者经过云管理层的VM,提供该分区的硬件资源。可以作为固件的一部分或与远程模通信的固件的延伸执行该云管理层。在一实施例中,该远程模块为编排元件(例如,编排元件570)。该远程模块可以耦合至使用增强的固件技术的一个或多个云计算架构。
[0060] 无论是否具有OS层,计算机子系统750和795的应用层770和790都分别在vBIOS层760和780上直接运行。在应用层770和790上运行的应用程序可以是任一计算机程序。例如,该应用程序可以是在VM或软件容器上运行的应用程序。
[0061] 图8是网元(network element,简称NE)设备800的示意图。该NE设备800适用于实现本发明的实施例,包括:编排元件410、570和650;节点430、520、530、540和550中的任一个;平台660;和/或架构700。该NE设备800包括:用于接收数据的入端口810和接收器单元(receiver unit,简称Rx)820;用于处理数据的处理器、逻辑单元或CPU 830;用于传输数据的发射器单元(transmitter unit,简称Tx)840和出端口850;以及用于存储数据的存储器860。该NE设备800也可包括:耦合至入端口810的光电(optical-to-electrical,简称OE)组件和电光(electrical-to-optical,简称EO)组件;接收器单元820;发射器单元840;以及用于光或电信号的导出或导入的出端口850。应当说明的是,入端口810和入端口810可以是双向端口和/或在一些实施例中,可以合并到单一的双向端口中。
[0062] 处理器830可以通过硬件和软件来实现。处理器830可以实现为一个或多个CPU芯片、核心(例如,作为一个多核处理器)、现场可编程门阵列(field-programming gate array,简称FPGA)、专用集成电路(application specific integrated circuit,简称ASIC),以及数字信号处理器(digital signal processor,简称DSP)。处理器830与入端口810、接收器单元820、发射器单元840、出端口850,以及存储器860进行通信。处理器830包括vBIOS协议模块835,其至少实现一些下面讨论的方法,例如,方法900、1000、1100、1200和/或1300。在一可选实施例中,将vBIOS协议模块835实现为存储在存储器860中的指令,其由处理器830执行或在处理器830和存储器860中得以部分实现,例如,非瞬态存储器中存储的计算机程序产品,其中,该非瞬态存储器包括处理器830所实现的指令。在另一可选实施例中,vBIOS协议模块835在单独的NE中实现。
[0063] 存储器860包括一个或多个磁盘、磁带驱动器及固态驱动器,并可用作溢出数据存储设备,以存储选择执行这些程序时所用的程序,并存储程序执行时所读取的指令与数据。存储器860可以是易失性的和非易失性的,可以是只读存储器(read-only memory,简称ROM)、随机访问存储器(random-access memory,简称RAM)、三态内容寻址存储器(ternary content-addressable memory,简称TCAM),以及静态随机访问存储器(static random-access memory,简称SRAM)。
[0064] 图9是本发明一实施例提供的云计算架构中执行应用程序的方法的图900。在用户请求各种应用程序的操作时,协议图900可以在云计算架构中实现(例如,云计算架构500和/或700)。
[0065] 在第一阶段910中,由预先审核器915进行安全(security,简称SEC)检查。该预先审核器915用于在打开云计算硬件时,对该云计算硬件进行一定的检查,例如,检查网络连接和电池状态。第一阶段910有时也称为“上电”阶段。在第二阶段920中,进行可扩展固件接口(extensible firmware interface,简称EFI)预初始化(pre EFI initialization,简称PEI)。启动PEI核心922、芯片集PEI模块(PEIM)924,以及板PEIM 926。PEI核心922与处理器核心340和730极其类似,并用于调度芯片集PEIM 924和板PEIM926。PEI核心922也为芯片集PEIM 924和板PEIM 926提供基本服务。芯片集PEIM 924和板PEIM 926为可执行的二元模块,其为PEI核心922所加载,以在芯片集和控制板上分别执行各种任务和初始化。在初始化板PEIM926后,板PEIM 926通知驱动执行环境(driver execution environment,简称DXE)调度器934。
[0066] 在第三阶段930中,建立一个DXE。基于来自板PEIM 926的信息,该DXE调度器934启动设备、总线,或者服务驱动936。该DXE调度器934还用于提供启动服务、运行时间服务,和DXE服务932,并在建立DXE后,通知启动调度器942。第二阶段920和第三阶段930合称为“平台初始化”阶段。
[0067] 应当说明的是,在启动过程中(例如,迭代地),第四阶段940和第五阶段950可以不止一次地出现以支持加载瞬态OS和永久OS(如果有),对此图9中没有清楚表明。第四阶段940称为“资源分区”阶段。第五阶段950可以称为“OS启动”阶段。在第四阶段940的第一迭代中,当启动调度器定位和启动瞬态OS加载器时,进行启动设备选择(boot device selection,简称BDS)。然后,该方法继续在第五阶段950进行,以进行瞬态系统加载(transient system load,简称TSL),其包括加载瞬态OS。瞬态OS启动加载器952用于启动该瞬态OS。接着,建立一个瞬态OS环境954并启动OS缺席应用程序956以配置vBIOS接口944。
[0068] 在第四阶段940的第二迭代中,例如,基于来自诸如编排元件570等编排元件的指令,创建多个vBIOS接口944。每个vBIOS接口944与管理一个分区的硬件资源的vBIOS相关联。启动调度器942也将vBIOS接口944调度至多个OS加载器951。该多个OS加载器951按需加载OS(例如,永久OS)。针对不同的vBIOS接口944,在OS加载器951处加载的OS可以不同。
[0069] 在第六阶段960中,在运行时间(run time,简称RT),应用程序在OS上运行。例如,应用程序可以是VM 961。在第七阶段970中,应用程序完成之后进行卸载,并释放用于应用程序的硬件资源。然后,该方法900返回到请求启动服务、运行时间服务,和/或DXE服务932的第三阶段930。当应用程序为VM时,VM卸载器971卸载VM。这样一来,第七阶段970称为“VM卸载器”阶段。通过利用本方法900,可以将资源分配给各种vBIOS以运行OS、VM,和/或不利用OS或VM而运行的应用程序。应用程序一经完成,其他应用程序可以不必重启系统而释放资源,以供使用。相应地,可以不需要附带的OS和/或VM,将资源进行动态分配以运行应用程序,并且一经完成,便将该资源释放。可以不需要OS、虚拟机监视器、VM、VMM,或其他虚拟系统,通过多个节点(例如,节点430)将资源进行动态分配以支持分布式应用程序。
[0070] 图10是本发明一实施例提供的描述创建vBIOS的方法1000的流程图。当用户请求执行各种应用程序时,该方法1000在云计算架构(例如,云计算架构500和/或700)中实现。例如,该方法1000可以由云环境中的网络节点(例如,节点430)实现。在块1010中,打开系统电源,以初始化所述节点。在块1020中,启动主BIOS。该主BIOS可以是pBIOS和/或其他固件(例如,固件740),并可以支持节点的启动。在一些实施例中,系统启动后,可以关掉该主BIOS。在块1030中,发布瞬态OS环境。该瞬态OS环境可以作为与编排元件进行通信的一个平台,并因此可以为节点提供编排支持。该瞬态OS环境用于短时间内在临时OS上进行一定的任务,例如,直到启动完成后该瞬态OS环境方可使用,且可在硬件分区之前或之后将其关闭。
[0071] 在块1040中,例如,从诸如编排元件570等编排元件获取云计算配置。可以通过接收器从远程编排元件或通过控制板从本地编排元件接收该配置。在块1050中,主BIOS发现硬件资源。可以将发现的可用硬件资源上报给编排元件,以支持编排。在块1060中,方法1000判断硬件是否足够创建云固件,例如,以基于应用程序请求服务于分布式应用程序。如果硬件足够创建云固件,则方法1000执行至块1070。否则,方法1000执行至块1080。在块
1070,由于硬件资源不足,因此拒绝待处理的请求。然后,该方法1000结束。
[0072] 在块1080中,在各个CPU上发布pBIOS以确定每个CPU可用的硬件资源。该pBIOS可以由主BIOS发布,或者可以在主BIOS中独立运行。在块1090中,该方法1000判断是否需要一个或多个精细资源分区(例如,少于一个CPU的分区)。具体地,如果不细分CPE资源也可将CPU进行分配以支持所有的请求,则不需要精细资源分区。如果需要一个或多个精细资源分区,该方法1000执行至块1095。否则,该方法1000结束。在块1095中,在pBIOS上创建并发布vBIOS。具体地,精细资源分区对至少一个CPU进行分区,以使CPU核心为不止一个vBIOS所专用,从而允许多个应用程序维持单一CPU上的专用处理资源。然后,该方法1000结束。
[0073] 图11是本发明一实施例提供的描述通过发布vBIOS管理硬件资源的方法1100的流程图。当用户请求执行各种应用程序时,该方法1100在云计算架构(例如,云计算架构500和/或700)中实现。方法1100可类似于方法1000,但是也可以支持在vBIOS分区上创建虚拟机。在块1110中,以类似于步骤1020的方式启动物理BIOS,例如,主BIOS。在块1115中,以类似于步骤1030的方式发布瞬态OS环境。在块1120中,例如,在该瞬态OS环境中发布VMM。该VMM可以用于管理多个VM。该VM可以获取一个本地资源图,其指示云计算架构的硬件资源。
[0074] 在块1125中,将本地资源图保存在,例如,在存储设备中,针对第一(例如,初始的)vBIOS,控制板获取分区配置。在启动完成后,可以选择该第一分区配置以支持用于运行VMM的第一vBIOS。在块1130中,在第一分区(例如,分区0)上发布该第一vBIOS。在块1135中,将VMM转移至第一vBIOS,并将所有的本地资源信息转发至第一vBIOS上的VMM。一旦VMM在第一vBIOS上完成初始化,可以关闭瞬态OS和/或主BIOS。在块1140中,该方法1100判断是否需要额外的分区以支持针对VM的额外vBIOS。如果不需要更多的分区,则该方法1100结束。否则,该方法1100执行至块1145。在块1145中,更新该资源图以指示没有分配给任何现有的分区的剩余可用资源。在块1150中,获取分区配置以支持新的VM。在块1155中,通过从块1145中确定的剩余可用资源中选择资源,为新的VM创建一个分区。在块1160中,发布新的vBIOS以支持新的VM。在块1165中,将新的VM加载到新的vBIOS。然后,在第一vBIOS上运行的VMM可以控制新的VM,从而允许VM和/或VMM在CPU的不同专用核心上运行。在块1170中,该方法1100判断该新发布的vBIOS是否是最后一个vBIOS。如果该新发布的vBIOS是最后一个需要的以支持来自一个或多个分布式应用程序的资源请求的vBIOS,则该方法1100结束。否则,该方法1100返回到块1145以创建支持更多的VM的更多的vBIOS分区。相应地,方法1100允许在无需运行VMM或VM的前提下进行VMM和VM的操作。
[0075] 图12是一种诸如编排元件570等编排元件管理硬件资源的方法的实施例的流程图。当编排元件初始化时,可以开始方法1200。在步骤1201中,可以发布瞬态OS环境以确定需要服务于一个或多个分布式应用程序的初始云计算配置。在步骤1203中,该方法1200可以与云中诸如NE 430的多个NE进行通信以发现该云中可用的硬件资源。在步骤1205中,该方法1200可以与NE(例如,通过信令)进行通信,以使NE发布pBIOS,例如,固件740,以便每个pBIOS对本地可用的硬件资源进行管理以实现云计算配置。在步骤1207中,该方法1200可以与pBIOS进行通信以启动vBIOS,例如vBIOS 760和/或780,从而管理对应资源分区中可用的硬件资源。例如,不需要使用OS、VM、VMM,或其他虚拟技术,可以将vBIOS集中到一个特定的NE中或者分布在多个NE上以允许分布式vBIOS运行一个应用程序,其使用来自多个节点的资源。在步骤1209中,该方法1200可以与pBIOS进行通信以卸载至少一些vBIOS并将可用的资源按需进行重新分区,以便不需要虚拟层而基于应用程序的需要动态地将资源以分散的方式进行重新分配。
[0076] 图13是一种诸如NE 430等NE基于来自诸如编排元件570等编排元件的配置管理硬件资源的方法的实施例的流程图。当NE和/或云(例如,云440)初始化时,可以开始方法1300。在步骤1301中,可以从编排元件接收分区配置。在步骤1303中,可以根据分区配置对NE(例如,处理器核心、CPU、存储设备、网络通信设备等)上的本地可用硬件资源进行分区。
在步骤1305中,可以针对每个分区,启动诸如vBIOS 760和/或780的vBIOS以管理分配给每个对应分区的硬件资源。然后,以本地或分散的方式(例如,通过与另一个NE上对应的vBIOS进行通信),每个vBIOS可以利用分配的资源以执行应用程序。在步骤1307中,不需要重启运行的vBIOS,可以基于来自编排元件的通信将硬件资源按需进行重新分区。相应地,不需要OS、虚拟机监视器,或虚拟层,可以将特定的硬件资源动态地分配给每个应用程序。
[0077] 虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
[0078] 此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈