本申請要求由An Wei等人于2014年7月15日遞交的發(fā)明名稱為“云固件”的第62/024,816號美國臨時專利申請案的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容以引入的方式并入本文。
關(guān)于由聯(lián)邦政府贊助研究或開發(fā)的聲明
不適用
參考縮微膠片附錄
不適用
背景技術(shù):
云計算指的是在諸如一個或多個數(shù)據(jù)中心內(nèi)彈性提供計算機業(yè)務硬件,然后,用戶可在諸如互聯(lián)網(wǎng)上對其進行利用。多個動態(tài)提供的硬件部件組成一個云,計算機業(yè)務之間共享該云的硬件資源,以實現(xiàn)最佳性能。所述計算機業(yè)務可包括計算和數(shù)據(jù)存儲。
云可分為私有云、公有云,以及混合云。私有云是針對單一機構(gòu)而獨立運行的,私有云可以由內(nèi)部或第三方管理并且可包括維護數(shù)據(jù)完整性的安全機制。公有云供公眾使用,可供大量用戶進行接入,但不提供有效的安全保障?;旌显剖侵辽僖粋€私有云和至少一個公有云的組合。私有云的架構(gòu)與公有云的架構(gòu)大體類似。然而,針對在私有云架構(gòu)和公有云架構(gòu)上運行的計算機業(yè)務而言,安全考量可能極其不同。
技術(shù)實現(xiàn)要素:
在一實施例中,本發(fā)明包括一種網(wǎng)元(network element,簡稱NE),包括:接收器,用于耦合至云網(wǎng)絡;多核中央處理器(central processing unit,簡稱CPU),耦合至所述接收器,用于從編排元件接收第一分區(qū)配置,根據(jù)所述第一分區(qū)配置將多個處理器核心分區(qū)成多個處理器核心分區(qū),并啟動多個虛擬基本輸入輸出系統(tǒng)(virtual basic input/output system,簡稱vBIOS),以使每個vBIOS管理一個處理器核心分區(qū)。
在另一實施例中,本發(fā)明包括一種在編排元件中實現(xiàn)的方法,所述方法包括:發(fā)布瞬態(tài)操作系統(tǒng)環(huán)境,確定第一云計算配置,與云中的多個NE進行通信以發(fā)現(xiàn)所述NE中可用的硬件資源,與所述NE進行通信以在所述NE上發(fā)布多個物理基本輸入輸出系統(tǒng)(physical basic input/output system,簡稱pBIOS),以使所述pBIOS管理所述可用的硬件資源以實現(xiàn)所述第一云計算配置。
在又一實施例中,本發(fā)明包括一種在NE中實現(xiàn)的方法,所述方法包括:從編排元件接收分區(qū)配置,根據(jù)所述分區(qū)配置將本地可用的硬件資源分區(qū)成多個分區(qū),啟動多個vBIOS,以使每個vBIOS管理分配給相關(guān)分區(qū)的所有硬件資源。
結(jié)合下面對附圖和權(quán)利要求的詳細描述,可以更清楚地了解這些及其他特征。
附圖說明
為了更透徹地理解本發(fā)明,現(xiàn)參閱結(jié)合附圖和具體實施方式而描述的以下簡要說明,其中的相同參考標號表示相同部分。
圖1是一種云計算架構(gòu)的示意圖。
圖2是另一種云計算架構(gòu)的示意圖。
圖3是又一種云計算架構(gòu)的示意圖。
圖4是本發(fā)明一實施例提供的一種云計算網(wǎng)絡的示意圖。
圖5是本發(fā)明一實施例提供的一種云計算架構(gòu)的示意圖。
圖6是本發(fā)明一實施例提供的一種vBIOS分配方法的示意圖。
圖7是本發(fā)明一實施例提供的另一種云計算架構(gòu)的示意圖。
圖8是一種NE設備的示意圖。
圖9是本發(fā)明一實施例提供的一種執(zhí)行云計算架構(gòu)中應用程序的方法的圖。
圖10是本發(fā)明一實施例提供的一種創(chuàng)建vBIOS的方法的實施例的流程圖。
圖11是本發(fā)明一實施例提供的一種通過發(fā)布vBIOS管理硬件資源的方法的實施例的流程圖。
圖12是一種編排元件管理硬件資源的方法的實施例的流程圖。
圖13是一種NE基于來自編排元件的配置管理硬件資源的方法的實施例的流程圖。
具體實施方式
首先應理解,盡管下文提供一項或多項實施例的說明性實施方案,但所公開的系統(tǒng)和/或方法可使用任何數(shù)目的技術(shù)來實施,無論該技術(shù)是當前已知還是現(xiàn)有的。本發(fā)明決不應限于下文所說明的說明性實施方案、附圖和技術(shù),包括本文所說明并描述的示例性設計和實施方案,而是可在所附權(quán)利要求書的范圍以及其等效物的完整范圍內(nèi)修改。
圖1是一種云計算架構(gòu)100的示意圖。該云計算架構(gòu)100包括多臺與連接160互連的計算機110。該云計算架構(gòu)100可以按照如圖所示或其他任一合適的方式進行配置。
從功能角度,每臺計算機110分為四層,包括:硬件層120、基本輸入輸出系統(tǒng)(basic input/output system,簡稱BIOS)層130、操作系統(tǒng)(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執(zhí)行一個應用程序。該應用程序可以是用于為用戶提供服務的任一計算機程序。由于計算機110中的所有可用的硬件資源都進行了分配以執(zhí)行該應用程序,因此當運行該應用程序不需要所有可用的硬件資源時,可能會浪費一些可用的硬件資源。
連接160用于連接多臺計算機110的硬件。在一些示例中,連接160可以是諸如光纖鏈路和/或電鏈路等物理連接。在一些示例中,連接160可以是無線或虛擬鏈路。
圖2是另一種云計算架構(gòu)200的示意圖。從功能角度,該云計算架構(gòu)200分為五層,包括:硬件層210、虛擬機管理器(virtual machine manager,簡稱VMM)層220、虛擬機層230、OS層240,以及應用層250。該云計算架構(gòu)200可以按照如圖所示或其他任一合適的方式進行配置。例如,該云計算架構(gòu)200可以分布在諸如計算機110等多臺計算機上,和/或在單一計算機上實現(xiàn)。
在硬件層210中,一個或多個硬件用于提供硬件資源。例如,該硬件可包括CPU、存儲設備,以及控制板。該硬件可以作為計算云互連,以便將該硬件按需動態(tài)地進行分配以服務于多個應用程序。
在VMM層220中,一個VMM程序創(chuàng)建多個虛擬機(virtual machine,簡稱VM)并通過將合適的硬件資源分配給每個VM來管理每個VM。不同的VM可以支持不同的OS并通過硬件資源連接。利用VMM程序創(chuàng)建多個VM以支持不同的OS被稱為虛擬技術(shù)。在VM層230中,多個VM支持使用VMM分配的硬件資源的OS。VMM層220和VM層230合稱為虛擬層。OS層240和應用層250分別與OS層140和應用層150類似。
圖3是又一種云計算架構(gòu)300的示意圖。從功能角度,該云計算架構(gòu)300分為四層,包括:硬件層310、BIOS層350、VMM層360,以及VM層370。該云計算架構(gòu)300可以按照如圖所示或其他任一合適的方式進行配置。例如,該云計算架構(gòu)300可以分布在諸如計算機110等多臺計算機上,和/或在單一計算機上實現(xiàn)。
硬件層310包括存儲設備315(例如,硬盤或其他存儲器)、網(wǎng)絡320(例如,發(fā)射器、接收器、鏈路等),以及耦合至存儲設備315和網(wǎng)絡320的控制板325。硬件層310還包括耦合至控制板325的多個CPU 330。存儲設備315、網(wǎng)絡320、控制板325,以及CPU 330可以以本領(lǐng)域普通技術(shù)人員已知的任一方式進行配置。
存儲設備315是一個存儲單元,其包括一個或多個磁盤、磁帶驅(qū)動器和/或固態(tài)驅(qū)動器,并可用作溢出數(shù)據(jù)存儲設備,以存儲選擇執(zhí)行這些程序時所用的程序,并存儲程序執(zhí)行時所讀取的指令與數(shù)據(jù)。網(wǎng)絡320用于使云計算架構(gòu)300能夠與其他云計算架構(gòu)進行通信??刂瓢?25用于管理多個CPU330、存儲設備315、網(wǎng)絡320和/或其他硬件之間的通信。
每個CPU 330包括控制插槽335和多個處理器核心340。控制插槽335用于控制和管理多個處理器核心340。每個處理器核心340為一個處理單元,其從控制插槽335接收指令并執(zhí)行該指令。BIOS層350、VMM層360和VM層370分別與BIOS層130、VMM層220和VM層230類似。
相較于圖1中的云計算架構(gòu)100,由于VMM允許將資源動態(tài)地按需分配,因此圖2中的云計算架構(gòu)200和圖3中的云計算架構(gòu)300在資源共享以及應用程序和/或OS遷移方面具有優(yōu)勢。然而,隨著處理器核心數(shù)量的增加,VMM管理不同應用程序的硬件資源的能力相應地減弱。因此,需要一個支持計算容量的持續(xù)擴容的云計算架構(gòu)。另外,除了隔離和連通,OS層和虛擬層將延遲和復雜度引入云中,并對建立有效實際的云計算架構(gòu)提出挑戰(zhàn)。因此,為了實現(xiàn)一個低延遲,低復雜度,高效的輕量靈活的云計算架構(gòu),云計算架構(gòu)可以消除OS層(例如,OS層140、240)和虛擬層(例如,VMM層220、360和VM層230、370)。此類云計算架構(gòu)可應用于數(shù)據(jù)中心。
本文揭露了各種管理云計算架構(gòu)中的硬件資源的實施例。動態(tài)創(chuàng)建包括虛擬BIOS(virtual basic input/output system,簡稱vBIOS)的固件,從而指定和分區(qū)可用的硬件資源,以供云計算架構(gòu)中的多處理器環(huán)境下的應用程序使用。在一實施例中,編排元件與云計算架構(gòu)進行通信并位于一個與實現(xiàn)云計算架構(gòu)的節(jié)點相分離的遠程節(jié)點。在啟動云計算架構(gòu)和/或相關(guān)節(jié)點時,編排元件創(chuàng)建該固件,并將該固件加載到實現(xiàn)云計算架構(gòu)的節(jié)點的存儲元件中。云計算架構(gòu)的每個節(jié)點上的控制板發(fā)布固件的vBIOS的本地副本(例如,從編排元件接收到的),從而為了運行應用程序而對可用的硬件資源進行管理和/或分區(qū)。在另一實施例中,編排元件分布在實現(xiàn)云計算架構(gòu)的多個節(jié)點上。節(jié)點的控制板都包含編排元件的功能,所述控制板相互通信以創(chuàng)建包括vBIOS的固件并發(fā)布vBIOS,從而為運行應用程序而對可用的硬件資源進行管理和分區(qū)。此外,該固件管理云計算架構(gòu)中的本地處理、網(wǎng)絡和資源存儲。該固件適用于所有的云計算架構(gòu)。此外,通過消除云計算架構(gòu)的OS層和VMM層,該固件節(jié)省了虛擬軟件的成本,提供了高可靠性、并且提升了性能。
圖4是本發(fā)明一實施例提供的云計算網(wǎng)絡400的示意圖。該云計算網(wǎng)絡400包括編排元件410和多個計算節(jié)點430。多個計算節(jié)點430與連接420互連并組成一個計算云440。該云計算網(wǎng)絡400可以按照如圖所示或者其他任一適合的方式進行配置。
編排元件410用于:通過將硬件資源分配給多種應用程序以響應硬件資源請求,管理計算云440的硬件資源,以及動態(tài)管理多個計算節(jié)點430的硬件資源。每個計算節(jié)點430用于利用編排元件410分配的硬件資源來運行一個或多個應用程序。與圖4所示的多個計算節(jié)點430互連的連接420可以是邏輯連接或物理連接。計算節(jié)點430的硬件資源可包括多個CPU(例如,CPU 330)或計算云440中的其他資源(例如,存儲驅(qū)動器、網(wǎng)絡資源等)。多個CPU可以通過光纖鏈路、電鏈路和/或無線鏈路進行連接。
圖5是本發(fā)明一實施例提供的云計算架構(gòu)500的示意圖。該云計算架構(gòu)500包括平臺510、第一計算子系統(tǒng)520、第二計算子系統(tǒng)530、第三計算子系統(tǒng)540、第四計算子系統(tǒng)550、分布式應用元件560,以及編排元件570。所述云計算架構(gòu)500可以在諸如網(wǎng)絡400等網(wǎng)絡中實現(xiàn)。例如,分別地,第一計算子系統(tǒng)520、第二計算子系統(tǒng)530、第三計算子系統(tǒng)540,以及第四計算子系統(tǒng)550可以在諸如節(jié)點430等節(jié)點上實現(xiàn);分布式應用元件560可以在諸如節(jié)點430等多個節(jié)點上運行;編排元件570可以與編排元件410類似。在其他實施例中,云計算架構(gòu)500通過計算節(jié)點(例如,節(jié)點430)分布式地實現(xiàn)編排元件570。該云計算網(wǎng)絡500可以按照如圖所示或者其他任一適合的方式進行配置。
平臺510與計算節(jié)點440類似,并包括硬件資源。所述平臺510支持異構(gòu)計算子系統(tǒng)。如圖5所示,該異構(gòu)計算子系統(tǒng)包括第一計算子系統(tǒng)520、第二計算子系統(tǒng)530、第三計算子系統(tǒng)540,以及第四計算子系統(tǒng)550。
第一計算子系統(tǒng)520與計算機110類似。從功能角度,第一計算子系統(tǒng)520分為四層,包括:第一節(jié)點層522(例如,節(jié)點430)、第一BIOS層524、第一OS層526,以及第一應用層528,其分別與硬件層120、BIOS層130、OS層140,以及應用層150類似。
從功能角度,第二計算子系統(tǒng)530分為三層,包括:第二節(jié)點層532(例如,節(jié)點430)、第二BIOS層534,以及第二應用層538,其分別與硬件層120、BIOS層130,以及應用層150類似。通過利用用于資源管理、監(jiān)控以及編排的南向應用程序界面(application programming interface,簡稱API),第二應用層538在第二BIOS層534上運行,以使通過諸如利用OpenStack,遠程實體(例如,編排元件570)可以對資源進行直接管理、監(jiān)控以及分配。該API使得應用程序不利用OS也能夠運行。因此,第二計算子系統(tǒng)530不包括OS層(例如,OS層140)。
從功能角度,第三計算子系統(tǒng)540分為兩層,包括:第三節(jié)點層542(例如,節(jié)點430)和第三應用層548,其分別與硬件層120和應用層150類似。通過處理器、圖形處理器(graphic processing unit,簡稱GPU),或現(xiàn)場可編程門陣列(field programming gate array,簡稱FPGA),第三應用層548可以直接在第三節(jié)點層542上運行。因此,第三計算子系統(tǒng)540既不包括OS層(例如,OS層140),也不包括BIOS層(例如,BIOS層130)。
第四計算子系統(tǒng)550包括用于計算機加速的計算節(jié)點552(例如,節(jié)點430)。第四計算子系統(tǒng)550中的計算節(jié)點552與第一計算子系統(tǒng)520、第二計算子系統(tǒng)530,以及第三計算子系統(tǒng)540中的計算節(jié)點類似。通過增加計算節(jié)點522,第四計算子系統(tǒng)550可以提供諸如遷移、備份和反射等服務。應當說明的是,架構(gòu)500可包括相同類型的多個節(jié)點和/或也可以不包括一些實施例中所示的所有節(jié)點。
分布式應用元件560用于與編排元件570進行通信并通過異構(gòu)計算子系統(tǒng)作為一個或多個分布式應用程序運行,例如,第一計算子系統(tǒng)520、第二計算子系統(tǒng)530、第三計算子系統(tǒng)540,以及第四計算子系統(tǒng)550。
在一實施例中,節(jié)點522、532、542和552與遠程位于專用節(jié)點的編排元件570進行通信。例如,節(jié)點522、532、542和552都可以在一個單一機框/計算機上運行。編排元件570可以在遠程計算節(jié)點中的另一個機框/計算機上運行。在另一實施例中,編排元件570分布在節(jié)點522、532、542和552上。編排元件570與編排元件410類似,并用于根據(jù)來自分布式應用元件560的硬件資源請求,通過為多種應用程序中的每一個創(chuàng)建包括vBIOS的固件來管理平臺510的硬件資源。來自分布式應用元件560的硬件資源請求指示多種應用程序中的每個應用程序所需的硬件資源。
運行時,分布式應用元件560將多種應用程序的硬件資源請求傳輸至編排元件570。在一實施例中,從功能角度,編排元件570包括在云計算架構(gòu)500的每個節(jié)點中。這樣一來,編排元件570發(fā)布pBIOS,以確定平臺510的每個節(jié)點的響應硬件資源請求的可用硬件資源。pBIOS可以是針對節(jié)點的一個固件程序,其用于測試節(jié)點硬件并啟動節(jié)點軟件。編排元件570還創(chuàng)建包括針對各種應用程序中的每一個的vBIOS的固件,并將一個分區(qū)的可用硬件資源進行分區(qū)以分配給各種應用程序中的每一個??赏ㄟ^為了啟動節(jié)點硬件的特定分區(qū)上的特定應用程序而定制的BIOS固件動態(tài)地生成vBIOS。該分區(qū)的可用硬件資源是一個虛擬分區(qū)的可用硬件資源。最后,編排元件570發(fā)布vBIOS,以管理用于運行各種應用程序的分區(qū)的可用硬件資源。
在一實施例中,編排元件570的位置遠離節(jié)點522、532、542和552。編排元件570將針對平臺510的可用硬件資源的一個請求傳輸至節(jié)點522、532、542和552。針對平臺510的每個節(jié)點的控制板(例如,控制板325)發(fā)布本地pBIOS,以確定平臺510的每個節(jié)點的響應該請求的本地可用的硬件資源。然后,所述控制板將指示可用的硬件資源的消息傳輸至編排元件570。接收到所述消息之后,編排元件570創(chuàng)建包括針對各種應用程序中的每一個的vBIOS的固件,并指定每個節(jié)點的一個分區(qū)的可用硬件資源以分配給各種應用程序中的每一個。編排元件570還將該固件傳輸至每個控制板。最后,所述控制板發(fā)布vBIOS,以管理用于運行各種應用程序的該分區(qū)的可用硬件資源。對于這兩個實施例,該分區(qū)的可用硬件資源對應于第一計算子系統(tǒng)520的第一節(jié)點層522、第二計算子系統(tǒng)530的第二節(jié)點層532、第三計算子系統(tǒng)540的第三節(jié)點層542,以及第四計算子系統(tǒng)550中的計算節(jié)點。
圖6是本發(fā)明一實施例提供的vBIOS分配方法600的示意圖。方法600可以在平臺660和編排元件650上運行,其可以分別與平臺510和編排元件570類似。平臺660包括多個節(jié)點,例如,節(jié)點430。所述節(jié)點包括硬件資源,例如多個CPU 620。接收到硬件資源請求之后,編排元件650創(chuàng)建包括針對各種應用程序的多個vBIOS 610、630和640的固件。根據(jù)硬件資源請求,將平臺660中合適的硬件資源都分配給vBIOS 610、630和640。例如,每個CPU 620包括一個或多個處理器核心。因此,將最小整數(shù)數(shù)量的可用處理器核心都分配給vBIOS 610、630和640,從而提供硬件資源請求所需的硬件資源。
例如,CPU 620中的每一個可包括8個處理器核心。此外,硬件資源請求可以指示運行第一應用程序需要32個處理器核心的硬件資源、運行第二應用程序需要11.5個處理器核心的硬件資源、運行第三應用程序需要3.5個處理器核心的硬件資源。相應地,編排元件650為第一應用程序創(chuàng)建第一vBIOS(vBIOS1)610,將其分配給4個CPU 620。編排元件650為第二應用程序創(chuàng)建第二vBIOS(vBIOS2)630,將其分配給1.5個CPU 620或12個處理器核心。編排元件650為第三應用程序創(chuàng)建第三vBIOS(vBIOS3)640,將其分配給半個CPU 620或4個處理器核心?;谡埱髞碜跃幣旁?50的資源的應用程序需要,可以將額外的CPU/核心動態(tài)地重新分配給額外的vBIOS。
圖7是本發(fā)明一實施例提供的另一云計算架構(gòu)700的示意圖。所述云計算架構(gòu)700包括硬件層710和固件層740,其可以分別與硬件層310和BIOS層350類似。硬件層710和固件層740可以在單一節(jié)點上實現(xiàn)或者分布在多個節(jié)點上,例如,節(jié)點430。該云計算架構(gòu)700也可以用于加載多個計算機子系統(tǒng)750和795,其可以與計算子系統(tǒng)520、530、540和/或550的軟件和/或固件的部分類似。該云計算架構(gòu)700可以按照如圖所示或者其他任一合適的方式進行配置。
硬件層710包括多個CPU 720,其中的每一個包括多個處理器核心730。硬件層710還包括網(wǎng)絡連接(例如,網(wǎng)絡)、控制板715,以及存儲設備712,其分別與網(wǎng)絡320、控制板325,以及存儲設備315類似。
控制板715與上述控制板類似。在固件層740中,從功能角度,一個固件可以配置為一個BIOS(例如,BIOS層130中的BIOS)或者BIOS和虛擬機監(jiān)視器的組合。該固件與上述固件類似。該固件可以直接與私有云和/或公有云中其他計算機/節(jié)點的固件連接。
在一實施例中,編排元件(例如,編排元件570)的位置遠離云計算架構(gòu)700。因此,在啟動云計算架構(gòu)700時,編排元件為各種應用程序創(chuàng)建包括vBIOS的固件,并將該固件傳輸至控制板715。在控制板715從編排元件接收到該固件后,該固件存儲在存儲設備712中。在一實施例中,控制板715包括編排元件的功能。因此,在控制板715創(chuàng)建該固件后,控制板715創(chuàng)建包括針對各種應用程序的vBIOS的固件,且該固件存儲在存儲設備712中。
從功能角度,計算機子系統(tǒng)750和795都分別分為vBIOS層760和780以及應用層770和790。vBIOS層760和780可包括vBIOS,例如,vBIOS 610、630和/或640。應用層770可包括本地或分布式應用程序,例如,分布式應用元件560。例如,在第一計算機子系統(tǒng)750的第一vBIOS層760中,在第一vBIOS層760中發(fā)布第一vBIOS后,提供第一分區(qū)的硬件資源以支持第一應用程序。又例如,在第二計算機子系統(tǒng)795的第二vBIOS層780中,在第二vBIOS層780中發(fā)布第二vBIOS后,提供第二分區(qū)的硬件資源以支持第二應用程序。如圖所示,第一分區(qū)的硬件資源包括一個處理器核心730。第二分區(qū)的硬件資源包括兩個處理器核心730。相應地,處理器核心730可以屬于同一個CPU 720,但是可以通過編排元件建立的分區(qū)分布在不同的vBIOS上。在一實施例中,一組處理器核心730可以屬于不同的CPU 720。
實際上,通過分布式和/或離散的容器或者經(jīng)過云管理層的VM,提供該分區(qū)的硬件資源。可以作為固件的一部分或與遠程模塊通信的固件的延伸執(zhí)行該云管理層。在一實施例中,該遠程模塊為編排元件(例如,編排元件570)。該遠程模塊可以耦合至使用增強的固件技術(shù)的一個或多個云計算架構(gòu)。
無論是否具有OS層,計算機子系統(tǒng)750和795的應用層770和790都分別在vBIOS層760和780上直接運行。在應用層770和790上運行的應用程序可以是任一計算機程序。例如,該應用程序可以是在VM或軟件容器上運行的應用程序。
圖8是網(wǎng)元(network element,簡稱NE)設備800的示意圖。該NE設備800適用于實現(xiàn)本發(fā)明的實施例,包括:編排元件410、570和650;節(jié)點430、520、530、540和550中的任一個;平臺660;和/或架構(gòu)700。該NE設備800包括:用于接收數(shù)據(jù)的入端口810和接收器單元(receiver unit,簡稱Rx)820;用于處理數(shù)據(jù)的處理器、邏輯單元或CPU 830;用于傳輸數(shù)據(jù)的發(fā)射器單元(transmitter unit,簡稱Tx)840和出端口850;以及用于存儲數(shù)據(jù)的存儲器860。該NE設備800也可包括:耦合至入端口810的光電(optical-to-electrical,簡稱OE)組件和電光(electrical-to-optical,簡稱EO)組件;接收器單元820;發(fā)射器單元840;以及用于光或電信號的導出或?qū)氲某龆丝?50。應當說明的是,入端口810和入端口810可以是雙向端口和/或在一些實施例中,可以合并到單一的雙向端口中。
處理器830可以通過硬件和軟件來實現(xiàn)。處理器830可以實現(xiàn)為一個或多個CPU芯片、核心(例如,作為一個多核處理器)、現(xiàn)場可編程門陣列(field-programming gate array,簡稱FPGA)、專用集成電路(application specific integrated circuit,簡稱ASIC),以及數(shù)字信號處理器(digital signal processor,簡稱DSP)。處理器830與入端口810、接收器單元820、發(fā)射器單元840、出端口850,以及存儲器860進行通信。處理器830包括vBIOS協(xié)議模塊835,其至少實現(xiàn)一些下面討論的方法,例如,方法900、1000、1100、1200和/或1300。在一可選實施例中,將vBIOS協(xié)議模塊835實現(xiàn)為存儲在存儲器860中的指令,其由處理器830執(zhí)行或在處理器830和存儲器860中得以部分實現(xiàn),例如,非瞬態(tài)存儲器中存儲的計算機程序產(chǎn)品,其中,該非瞬態(tài)存儲器包括處理器830所實現(xiàn)的指令。在另一可選實施例中,vBIOS協(xié)議模塊835在單獨的NE中實現(xiàn)。
存儲器860包括一個或多個磁盤、磁帶驅(qū)動器及固態(tài)驅(qū)動器,并可用作溢出數(shù)據(jù)存儲設備,以存儲選擇執(zhí)行這些程序時所用的程序,并存儲程序執(zhí)行時所讀取的指令與數(shù)據(jù)。存儲器860可以是易失性的和非易失性的,可以是只讀存儲器(read-only memory,簡稱ROM)、隨機訪問存儲器(random-access memory,簡稱RAM)、三態(tài)內(nèi)容尋址存儲器(ternary content-addressable memory,簡稱TCAM),以及靜態(tài)隨機訪問存儲器(static random-access memory,簡稱SRAM)。
圖9是本發(fā)明一實施例提供的云計算架構(gòu)中執(zhí)行應用程序的方法的圖900。在用戶請求各種應用程序的操作時,協(xié)議圖900可以在云計算架構(gòu)中實現(xiàn)(例如,云計算架構(gòu)500和/或700)。
在第一階段910中,由預先審核器915進行安全(security,簡稱SEC)檢查。該預先審核器915用于在打開云計算硬件時,對該云計算硬件進行一定的檢查,例如,檢查網(wǎng)絡連接和電池狀態(tài)。第一階段910有時也稱為“上電”階段。在第二階段920中,進行可擴展固件接口(extensible firmware interface,簡稱EFI)預初始化(pre EFI initialization,簡稱PEI)。啟動PEI核心922、芯片集PEI模塊(PEIM)924,以及板PEIM 926。PEI核心922與處理器核心340和730極其類似,并用于調(diào)度芯片集PEIM 924和板PEIM926。PEI核心922也為芯片集PEIM 924和板PEIM 926提供基本服務。芯片集PEIM 924和板PEIM 926為可執(zhí)行的二元模塊,其為PEI核心922所加載,以在芯片集和控制板上分別執(zhí)行各種任務和初始化。在初始化板PEIM926后,板PEIM 926通知驅(qū)動執(zhí)行環(huán)境(driver execution environment,簡稱DXE)調(diào)度器934。
在第三階段930中,建立一個DXE?;趤碜园錚EIM 926的信息,該DXE調(diào)度器934啟動設備、總線,或者服務驅(qū)動936。該DXE調(diào)度器934還用于提供啟動服務、運行時間服務,和DXE服務932,并在建立DXE后,通知啟動調(diào)度器942。第二階段920和第三階段930合稱為“平臺初始化”階段。
應當說明的是,在啟動過程中(例如,迭代地),第四階段940和第五階段950可以不止一次地出現(xiàn)以支持加載瞬態(tài)OS和永久OS(如果有),對此圖9中沒有清楚表明。第四階段940稱為“資源分區(qū)”階段。第五階段950可以稱為“OS啟動”階段。在第四階段940的第一迭代中,當啟動調(diào)度器定位和啟動瞬態(tài)OS加載器時,進行啟動設備選擇(boot device selection,簡稱BDS)。然后,該方法繼續(xù)在第五階段950進行,以進行瞬態(tài)系統(tǒng)加載(transient system load,簡稱TSL),其包括加載瞬態(tài)OS。瞬態(tài)OS啟動加載器952用于啟動該瞬態(tài)OS。接著,建立一個瞬態(tài)OS環(huán)境954并啟動OS缺席應用程序956以配置vBIOS接口944。
在第四階段940的第二迭代中,例如,基于來自諸如編排元件570等編排元件的指令,創(chuàng)建多個vBIOS接口944。每個vBIOS接口944與管理一個分區(qū)的硬件資源的vBIOS相關(guān)聯(lián)。啟動調(diào)度器942也將vBIOS接口944調(diào)度至多個OS加載器951。該多個OS加載器951按需加載OS(例如,永久OS)。針對不同的vBIOS接口944,在OS加載器951處加載的OS可以不同。
在第六階段960中,在運行時間(run time,簡稱RT),應用程序在OS上運行。例如,應用程序可以是VM 961。在第七階段970中,應用程序完成之后進行卸載,并釋放用于應用程序的硬件資源。然后,該方法900返回到請求啟動服務、運行時間服務,和/或DXE服務932的第三階段930。當應用程序為VM時,VM卸載器971卸載VM。這樣一來,第七階段970稱為“VM卸載器”階段。通過利用本方法900,可以將資源分配給各種vBIOS以運行OS、VM,和/或不利用OS或VM而運行的應用程序。應用程序一經(jīng)完成,其他應用程序可以不必重啟系統(tǒng)而釋放資源,以供使用。相應地,可以不需要附帶的OS和/或VM,將資源進行動態(tài)分配以運行應用程序,并且一經(jīng)完成,便將該資源釋放??梢圆恍枰狾S、虛擬機監(jiān)視器、VM、VMM,或其他虛擬系統(tǒng),通過多個節(jié)點(例如,節(jié)點430)將資源進行動態(tài)分配以支持分布式應用程序。
圖10是本發(fā)明一實施例提供的描述創(chuàng)建vBIOS的方法1000的流程圖。當用戶請求執(zhí)行各種應用程序時,該方法1000在云計算架構(gòu)(例如,云計算架構(gòu)500和/或700)中實現(xiàn)。例如,該方法1000可以由云環(huán)境中的網(wǎng)絡節(jié)點(例如,節(jié)點430)實現(xiàn)。在塊1010中,打開系統(tǒng)電源,以初始化所述節(jié)點。在塊1020中,啟動主BIOS。該主BIOS可以是pBIOS和/或其他固件(例如,固件740),并可以支持節(jié)點的啟動。在一些實施例中,系統(tǒng)啟動后,可以關(guān)掉該主BIOS。在塊1030中,發(fā)布瞬態(tài)OS環(huán)境。該瞬態(tài)OS環(huán)境可以作為與編排元件進行通信的一個平臺,并因此可以為節(jié)點提供編排支持。該瞬態(tài)OS環(huán)境用于短時間內(nèi)在臨時OS上進行一定的任務,例如,直到啟動完成后該瞬態(tài)OS環(huán)境方可使用,且可在硬件分區(qū)之前或之后將其關(guān)閉。
在塊1040中,例如,從諸如編排元件570等編排元件獲取云計算配置??梢酝ㄟ^接收器從遠程編排元件或通過控制板從本地編排元件接收該配置。在塊1050中,主BIOS發(fā)現(xiàn)硬件資源。可以將發(fā)現(xiàn)的可用硬件資源上報給編排元件,以支持編排。在塊1060中,方法1000判斷硬件是否足夠創(chuàng)建云固件,例如,以基于應用程序請求服務于分布式應用程序。如果硬件足夠創(chuàng)建云固件,則方法1000執(zhí)行至塊1070。否則,方法1000執(zhí)行至塊1080。在塊1070,由于硬件資源不足,因此拒絕待處理的請求。然后,該方法1000結(jié)束。
在塊1080中,在各個CPU上發(fā)布pBIOS以確定每個CPU可用的硬件資源。該pBIOS可以由主BIOS發(fā)布,或者可以在主BIOS中獨立運行。在塊1090中,該方法1000判斷是否需要一個或多個精細資源分區(qū)(例如,少于一個CPU的分區(qū))。具體地,如果不細分CPE資源也可將CPU進行分配以支持所有的請求,則不需要精細資源分區(qū)。如果需要一個或多個精細資源分區(qū),該方法1000執(zhí)行至塊1095。否則,該方法1000結(jié)束。在塊1095中,在pBIOS上創(chuàng)建并發(fā)布vBIOS。具體地,精細資源分區(qū)對至少一個CPU進行分區(qū),以使CPU核心為不止一個vBIOS所專用,從而允許多個應用程序維持單一CPU上的專用處理資源。然后,該方法1000結(jié)束。
圖11是本發(fā)明一實施例提供的描述通過發(fā)布vBIOS管理硬件資源的方法1100的流程圖。當用戶請求執(zhí)行各種應用程序時,該方法1100在云計算架構(gòu)(例如,云計算架構(gòu)500和/或700)中實現(xiàn)。方法1100可類似于方法1000,但是也可以支持在vBIOS分區(qū)上創(chuàng)建虛擬機。在塊1110中,以類似于步驟1020的方式啟動物理BIOS,例如,主BIOS。在塊1115中,以類似于步驟1030的方式發(fā)布瞬態(tài)OS環(huán)境。在塊1120中,例如,在該瞬態(tài)OS環(huán)境中發(fā)布VMM。該VMM可以用于管理多個VM。該VM可以獲取一個本地資源圖,其指示云計算架構(gòu)的硬件資源。
在塊1125中,將本地資源圖保存在,例如,在存儲設備中,針對第一(例如,初始的)vBIOS,控制板獲取分區(qū)配置。在啟動完成后,可以選擇該第一分區(qū)配置以支持用于運行VMM的第一vBIOS。在塊1130中,在第一分區(qū)(例如,分區(qū)0)上發(fā)布該第一vBIOS。在塊1135中,將VMM轉(zhuǎn)移至第一vBIOS,并將所有的本地資源信息轉(zhuǎn)發(fā)至第一vBIOS上的VMM。一旦VMM在第一vBIOS上完成初始化,可以關(guān)閉瞬態(tài)OS和/或主BIOS。在塊1140中,該方法1100判斷是否需要額外的分區(qū)以支持針對VM的額外vBIOS。如果不需要更多的分區(qū),則該方法1100結(jié)束。否則,該方法1100執(zhí)行至塊1145。在塊1145中,更新該資源圖以指示沒有分配給任何現(xiàn)有的分區(qū)的剩余可用資源。在塊1150中,獲取分區(qū)配置以支持新的VM。在塊1155中,通過從塊1145中確定的剩余可用資源中選擇資源,為新的VM創(chuàng)建一個分區(qū)。在塊1160中,發(fā)布新的vBIOS以支持新的VM。在塊1165中,將新的VM加載到新的vBIOS。然后,在第一vBIOS上運行的VMM可以控制新的VM,從而允許VM和/或VMM在CPU的不同專用核心上運行。在塊1170中,該方法1100判斷該新發(fā)布的vBIOS是否是最后一個vBIOS。如果該新發(fā)布的vBIOS是最后一個需要的以支持來自一個或多個分布式應用程序的資源請求的vBIOS,則該方法1100結(jié)束。否則,該方法1100返回到塊1145以創(chuàng)建支持更多的VM的更多的vBIOS分區(qū)。相應地,方法1100允許在無需運行VMM或VM的前提下進行VMM和VM的操作。
圖12是一種諸如編排元件570等編排元件管理硬件資源的方法的實施例的流程圖。當編排元件初始化時,可以開始方法1200。在步驟1201中,可以發(fā)布瞬態(tài)OS環(huán)境以確定需要服務于一個或多個分布式應用程序的初始云計算配置。在步驟1203中,該方法1200可以與云中諸如NE 430的多個NE進行通信以發(fā)現(xiàn)該云中可用的硬件資源。在步驟1205中,該方法1200可以與NE(例如,通過信令)進行通信,以使NE發(fā)布pBIOS,例如,固件740,以便每個pBIOS對本地可用的硬件資源進行管理以實現(xiàn)云計算配置。在步驟1207中,該方法1200可以與pBIOS進行通信以啟動vBIOS,例如vBIOS 760和/或780,從而管理對應資源分區(qū)中可用的硬件資源。例如,不需要使用OS、VM、VMM,或其他虛擬技術(shù),可以將vBIOS集中到一個特定的NE中或者分布在多個NE上以允許分布式vBIOS運行一個應用程序,其使用來自多個節(jié)點的資源。在步驟1209中,該方法1200可以與pBIOS進行通信以卸載至少一些vBIOS并將可用的資源按需進行重新分區(qū),以便不需要虛擬層而基于應用程序的需要動態(tài)地將資源以分散的方式進行重新分配。
圖13是一種諸如NE 430等NE基于來自諸如編排元件570等編排元件的配置管理硬件資源的方法的實施例的流程圖。當NE和/或云(例如,云440)初始化時,可以開始方法1300。在步驟1301中,可以從編排元件接收分區(qū)配置。在步驟1303中,可以根據(jù)分區(qū)配置對NE(例如,處理器核心、CPU、存儲設備、網(wǎng)絡通信設備等)上的本地可用硬件資源進行分區(qū)。在步驟1305中,可以針對每個分區(qū),啟動諸如vBIOS 760和/或780的vBIOS以管理分配給每個對應分區(qū)的硬件資源。然后,以本地或分散的方式(例如,通過與另一個NE上對應的vBIOS進行通信),每個vBIOS可以利用分配的資源以執(zhí)行應用程序。在步驟1307中,不需要重啟運行的vBIOS,可以基于來自編排元件的通信將硬件資源按需進行重新分區(qū)。相應地,不需要OS、虛擬機監(jiān)視器,或虛擬層,可以將特定的硬件資源動態(tài)地分配給每個應用程序。
雖然本發(fā)明中已提供若干實施例,但應理解,在不脫離本發(fā)明的精神或范圍的情況下,本發(fā)明所公開的系統(tǒng)和方法可以以許多其他特定形式來體現(xiàn)。本發(fā)明的實例應被視為說明性而非限制性的,且本發(fā)明并不限于本文本所給出的細節(jié)。例如,各種元件或部件可以在另一系統(tǒng)中組合或合并,或者某些特征可以省略或不實施。
此外,在不脫離本發(fā)明的范圍的情況下,各種實施例中描述和說明為離散或單獨的技術(shù)、系統(tǒng)、子系統(tǒng)和方法可以與其它系統(tǒng)、模塊、技術(shù)或方法進行組合或合并。展示或論述為彼此耦合或直接耦合或通信的其它項也可以采用電方式、機械方式或其它方式通過某一接口、設備或中間部件間接地耦合或通信。其他變化、替代和改變的示例可以由本領(lǐng)域的技術(shù)人員在不脫離本文精神和所公開的范圍的情況下確定。