本申請涉及服務(wù)實例的分配,尤其涉及云計算平臺內(nèi)的多優(yōu)先級服務(wù)實例分配。
背景技術(shù):
大規(guī)模聯(lián)網(wǎng)系統(tǒng)是在用于為業(yè)務(wù)和操作功能運行應(yīng)用和維護數(shù)據(jù)的多種設(shè)定中使用的常見平臺。例如,數(shù)據(jù)中心(例如物理云計算平臺)可以同時為多個顧客提供各種服務(wù)(例如web應(yīng)用、電子郵件服務(wù)、搜索引擎服務(wù)等等)。這些大規(guī)模聯(lián)網(wǎng)系統(tǒng)通常包括遍及該數(shù)據(jù)中心分布的大量資源,其中每個資源都類似物理機或在物理節(jié)點或主機上運行的虛擬機(VM)。在數(shù)據(jù)中心托管多個承租者(例如,顧客程序)時,這些資源最優(yōu)地可被分配給不同的承租者以改善云計算平臺的操作。
技術(shù)實現(xiàn)要素:
提供本發(fā)明內(nèi)容以便以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。該發(fā)明內(nèi)容不旨在標識所要求保護的主題的關(guān)鍵特征或本質(zhì)特征,也不旨在獨立地用于幫助確定所要求保護的主題的范圍。
本文中描述的各實施例涉及云計算環(huán)境中的高效多優(yōu)先級服務(wù)實例分配平臺。具體地,各服務(wù)實例是根據(jù)與相應(yīng)服務(wù)實例相關(guān)聯(lián)的優(yōu)先級水平被分配給或部署到各節(jié)點的,并且在一些情況下,服務(wù)實例的(諸)優(yōu)先級水平已經(jīng)被部署在(諸)節(jié)點上。在高層級時,在分配新服務(wù)實例時可考慮各種度量或因素,包括填裝質(zhì)量度量、收回成本度量和/或存活度量。使用這樣的度量,可實現(xiàn)對高優(yōu)先級服務(wù)實例以及低優(yōu)先級服務(wù)實例的近優(yōu)利用。
附圖說明
下面參考附圖詳細描述本發(fā)明,其中:
圖1A、1B和1C是根據(jù)本發(fā)明的各實施例的平衡各個度量以分配服務(wù)實例的示例的框圖;
圖2是其中本文中描述的各實施例可被采用的示例性操作環(huán)境的框圖;
圖3是根據(jù)本文中描述的各實施例的涉及確定存活度量的說明性示例;
圖4是根據(jù)本文中描述的各實施例的涉及確定存活度量的另一說明性示例;
圖5是根據(jù)本文中描述的各實施例的涉及確定存活度量的另一說明性示例;
圖6是示出根據(jù)本文中描述的各實施例的用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的示例性第一方法的流程圖;
圖7是示出根據(jù)本文中描述的各實施例的用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的示例性第二方法的流程圖;
圖8是示出根據(jù)本文中描述的各實施例的用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的示例性第三方法的流程圖;
圖9是示出根據(jù)本文中描述的各實施例的用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的示例性第四方法的流程圖;
圖10是示出根據(jù)本文中描述的各實施例的用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的示例性第五方法的流程圖;以及
圖11是適用于實現(xiàn)本文中描述的各實施例的示例性計算環(huán)境的框圖。
具體實施方式
本文中用細節(jié)來描述本發(fā)明各實施例的主題以滿足法定要求。然而,該描述本身并非旨在限制本專利的范圍。相反,發(fā)明人已設(shè)想所要求保護的主題還可結(jié)合其它當前或未來技術(shù)以其它方式來實施,以包括不同的步驟或類似于本文中所描述的步驟的步驟組合。此外,盡管術(shù)語“步驟“和/或“框”可在此處用于指示所采用的方法的不同元素,但除非而且僅當明確描述了各個步驟的順序時,該術(shù)語不應(yīng)被解釋為意味著此處公開的各個步驟之中或之間的任何特定順序。
出于本公開的目的,單詞“包括(including)”具有與單詞“包含(comprising)”一樣廣義的含義,并且單詞“訪問(accessing)”包括“接收(receiving)”、“參考(referencing)”或“檢索(retrieving)”。另外,諸如“一(a)”和“一(an)”包括復數(shù)以及單數(shù),除非另外相反地指明。這樣,例如,“一個特征”的限定滿 足存在一個或多個特征的情況。而且,術(shù)語“或(or)”包括連接的、分離的和這兩者(a或b包括要么a要么b,以及a和b)。
以下出于詳細討論的目的,參考各分布式計算設(shè)備和分配平臺的各組件來描述各實施例,該分配平臺支持對云計算環(huán)境中的各節(jié)點的多優(yōu)先級服務(wù)實例的最優(yōu)分配。各組件可被配置用于執(zhí)行新穎的實施例方面,其中被配置用于包括被編程為使用代碼來執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。構(gòu)想了本文中描述的方法可在具有本文中描述的功能組件的替換配置的不同類型的操作環(huán)境中執(zhí)行。由此,在此描述的各實施例僅僅是示例性的,并且構(gòu)想了各技術(shù)可被擴展到其它實現(xiàn)上下文。
作為背景,云計算平臺可在被一起管理的節(jié)點集合內(nèi)提供不同的云計算服務(wù)供應(yīng)。供應(yīng)可指代承租者或用戶可請求或選擇為其承租者基礎(chǔ)結(jié)構(gòu)運行的資源(例如,CPU、GPU、RAM、存儲等)的組合?;诠?yīng)來高效地提供云計算資源以滿足承租者服務(wù)請求可有利地改善云計算平臺的操作。當數(shù)據(jù)中心托管與相應(yīng)的承租者程序、應(yīng)用和服務(wù)相關(guān)聯(lián)的多個承租者時,各個資源可被最優(yōu)地分配給不同的承租者以改善云計算平臺的操作。
在云計算環(huán)境中,一般將服務(wù)實例分配給、部署到或提供給云基礎(chǔ)結(jié)構(gòu)內(nèi)的各節(jié)點。服務(wù)實例或?qū)嵗复摂M機(VM)、容器、如同物理機那樣的執(zhí)行程序的機器(例如,計算機)的其他軟件實現(xiàn)、或進程、線程、或任何其他軟件片段。節(jié)點指代服務(wù)實例被部署到的機器,諸如服務(wù)器或計算設(shè)備。雖然節(jié)點在本文中一般被稱為向其分配服務(wù)實例(例如,VM)并在其上執(zhí)行該服務(wù)實例的物理機,但本發(fā)明的各實施例并不旨在限于此。例如,節(jié)點還被構(gòu)想為包括其上可運行或執(zhí)行另一虛擬機(服務(wù)實例)的虛擬機。
為了分配服務(wù)實例,分配平臺(其也可被稱為調(diào)度器或放置組件)一般被用于確定特定服務(wù)實例應(yīng)在哪個(哪些)節(jié)點上運行。分配平臺是云基礎(chǔ)結(jié)構(gòu)中的重要組件,因為該平臺主要確定與該云相關(guān)聯(lián)的利用率并由此確定與該云相關(guān)聯(lián)的成本(出售的貨物的成本(COGS))和可靠性以及其他度量。
在常規(guī)云基礎(chǔ)結(jié)構(gòu)中,分配平臺一般用于分配各單優(yōu)先級水平的服務(wù)實例。就此,服務(wù)實例的分配或部署并不取決于與服務(wù)實例或其請求相關(guān)聯(lián)的優(yōu)先級水平(例如,高優(yōu)先級或低優(yōu)先級)。一旦將單優(yōu)先級水平服務(wù)實例分配 給或部署到節(jié)點后,除了在諸如主機OS更新、機器故障或由承租者終止之類的有限情形中之外,一般不將該服務(wù)實例從該節(jié)點移除。
為了優(yōu)化資源利用率,可使用多優(yōu)先級服務(wù)實例。多優(yōu)先級指代結(jié)合各服務(wù)實例請求和/或各服務(wù)實例的分配使用各種或不同優(yōu)先級水平的能力。由此,可使用多個優(yōu)先級水平來指定不同的資源優(yōu)先次序水平。低優(yōu)先級服務(wù)實例或可驅(qū)逐服務(wù)實例指代與低優(yōu)先級水平相關(guān)聯(lián)的服務(wù)實例,以使得該服務(wù)實例可從其被分配給或部署到的特定節(jié)點中驅(qū)逐。服務(wù)實例可出于任何數(shù)目的原因而被指定為低優(yōu)先級,例如低優(yōu)先級服務(wù)水平指定可被用于降低與特定服務(wù)實例(即,低優(yōu)先級服務(wù)實例)相關(guān)聯(lián)的承租者的成本。低優(yōu)先級服務(wù)的另一示例可包括批量作業(yè)(即,在何時運行各任務(wù)方面具有高靈活性的任務(wù))。高優(yōu)先級服務(wù)實例或不可驅(qū)逐服務(wù)實例指代與高優(yōu)先級水平相關(guān)聯(lián)的服務(wù)實例,以使得該服務(wù)實例不可從其被分配給或部署到的特定節(jié)點中驅(qū)逐。由此,高優(yōu)先級服務(wù)實例可先占,或在必要的情況下驅(qū)逐低優(yōu)先級服務(wù)實例。在一些情況下,高優(yōu)先級服務(wù)實例可以是向服務(wù)實例分配的或與該服務(wù)實例相關(guān)聯(lián)的默認優(yōu)先級水平,以使得該服務(wù)實例不可被驅(qū)逐以便為另一服務(wù)實例分配資源。雖然本文中一般描述了低和高優(yōu)先級服務(wù)水平或可驅(qū)逐和不可驅(qū)逐優(yōu)先級水平,但根據(jù)本發(fā)明的各實施例可采用任何數(shù)目或程度的服務(wù)水平。例如,各優(yōu)先級水平可用任何值(諸如數(shù)字值(例如1-10))來表示。
然而,利用多個優(yōu)先級水平會導致向節(jié)點或物理資源高效地分配服務(wù)實例方面的復雜度。一般來說,在單優(yōu)先級水平實現(xiàn)中,分配嘗試使給定數(shù)目的節(jié)點(例如,物理計算機)上的盡可能多的服務(wù)實例(通常被稱為填裝效率或填裝)最大化。隨著多個優(yōu)先級水平的出現(xiàn),服務(wù)實例的分配變得更有挑戰(zhàn)性,因為使高優(yōu)先級工作負載的填裝效率最大化可導致對低優(yōu)先級工作負載的不必要的驅(qū)逐。在另一方面,使驅(qū)逐的數(shù)目(或成本)最小化可能也不是最優(yōu)的,因為這樣的實現(xiàn)可導致碎片的增加、填裝質(zhì)量的顯著降級(即,更少的服務(wù)實例可在全體可用資源上運行)、更低的利用率、更高的故障復原率等等。
由此,本發(fā)明的各實施例涉及云計算環(huán)境中的高效多優(yōu)先級服務(wù)實例分配平臺。具體地,服務(wù)實例是根據(jù)與相應(yīng)服務(wù)實例相關(guān)聯(lián)的優(yōu)先級水平被分配給或部署到各節(jié)點的,并且在一些情況下,服務(wù)實例的(諸)優(yōu)先級水平已經(jīng)被 部署在(諸)節(jié)點上了。在高層級,分配平臺可采用以下算法:這些算法為每一新服務(wù)實例確定該實例應(yīng)當被部署到哪一物理節(jié)點以及在必要的情況下確定應(yīng)當驅(qū)逐哪一低優(yōu)先級實例以便為較高的優(yōu)先級服務(wù)實例釋放資源。
在本文中描述的各實現(xiàn)中,在分配新服務(wù)實例時可考慮各種度量或因素,包括填裝質(zhì)量度量、驅(qū)逐成本度量和/或存活度量。使用這樣的度量,可為高優(yōu)先級服務(wù)實例以及低優(yōu)先級服務(wù)實例實現(xiàn)近優(yōu)利用率。填裝質(zhì)量或填裝質(zhì)量度量一般指代服務(wù)實例與節(jié)點“適應(yīng)”(即在資源方面合適)的程度的度量、測量或指示。高填裝質(zhì)量指示更多的服務(wù)實例可在給定節(jié)點集上運行,由此降低了成本。在各實施例中,填裝質(zhì)量基于根據(jù)各資源需求(諸如CPU、存儲器等)的多維資源試探。多維最佳適應(yīng)可用于確定為新服務(wù)實例提供最佳或接近最佳填裝質(zhì)量的節(jié)點。
驅(qū)逐成本指代將服務(wù)實例從節(jié)點中驅(qū)逐以使得可將另一服務(wù)實例分配給那個節(jié)點的成本的指示。例如,假設(shè)將部署高優(yōu)先級服務(wù)實例。將服務(wù)實例分配給空的可用資源以使得不需要掛起或驅(qū)逐當前已部署的低優(yōu)先級服務(wù)實例可能是有利的并且具有最小的成本。一般來說,按使驅(qū)逐成本最小化(即,使被驅(qū)逐以適應(yīng)新服務(wù)實例的總實例的成本最小化)的這種方式來分配服務(wù)實例是優(yōu)選的。
存活指代服務(wù)實例在一些情況下在時間幀內(nèi)不將被驅(qū)逐或者服務(wù)實例在一些情況下將在節(jié)點上存活達一持續(xù)時間的可能性或程度。例如,在部署低優(yōu)先級實例時,將該服務(wù)實例部署在其中該服務(wù)實例具有高可能性不會在此后不久就被驅(qū)逐的節(jié)點上是合乎需要的。換言之,期望將服務(wù)實例部署在其中其預期存活時間(即,直到其驅(qū)逐/掛起的預期時間)被最大化的節(jié)點上。由此,期望將服務(wù)實例部署在其中它們對較高優(yōu)先級實例的后續(xù)部署具有最少負面影響的節(jié)點處。預期的未來壽命(直到實例被掛起的時間)在各節(jié)點之間可顯著不同。例如,以下考慮表1中的三個節(jié)點。如果低優(yōu)先級實例被部署在第三節(jié)點上,則它將能夠保持存活達比它被部署在第一節(jié)點上長三十倍的時間。第二節(jié)點提供比第一節(jié)點長十倍的存活時間。
表1
如可領(lǐng)會的,在一些情況下,平衡這些度量的組合以獲得最優(yōu)性能可能是個挑戰(zhàn)。例如并參考圖1A,假設(shè)高優(yōu)先級服務(wù)實例102A將被分配給第一節(jié)點104A或第二節(jié)點106A。如果高優(yōu)先級服務(wù)實例102A被分配給第一節(jié)點104A,則沒有較低優(yōu)先級工作負載必需被掛起(即,驅(qū)逐成本為零)。另一方面,如果高優(yōu)先級服務(wù)實例102A被分配給第二節(jié)點106A,則填裝質(zhì)量是最優(yōu)的(即,該新實例完美地適應(yīng)當前碎片間隙),但低優(yōu)先級服務(wù)實例108A當前處在必須被掛起的節(jié)點上,從而導致非零驅(qū)逐成本。
作為另一示例并參考圖1B,再次假設(shè)高優(yōu)先級服務(wù)實例102B將被分配給第一節(jié)點104B或第二節(jié)點106B。在這樣的情況下,在兩個節(jié)點上驅(qū)逐都將是必須的。驅(qū)逐成本表現(xiàn)為在第一節(jié)點104B上更少,但如果被分配給第二節(jié)點106B則將導致更強的填裝質(zhì)量。一方面,如果使驅(qū)逐成本最小化是用于分配高優(yōu)先級服務(wù)示例102的主要考慮而填裝質(zhì)量是次要考慮,則如果節(jié)點104B被選擇供分配則高優(yōu)先級工作負載的總填裝質(zhì)量可降級,從而導致對最高優(yōu)先級工作負載的較低利用率。另一方面,如果填裝質(zhì)量是主要考慮,使得高優(yōu)先級服務(wù)示例1028B被部署在節(jié)點106B上,則驅(qū)逐成本可顯著地增加。
作為又一示例并參考圖1C,假設(shè)低優(yōu)先級實例102C將被分配給第一節(jié)點104C、第二節(jié)點106C或第三節(jié)點108C。在這個情況下,將實例102C部署到這些節(jié)點中的任一者一般都將導致良好的填裝。然而,對向哪一者分配低優(yōu)先級服務(wù)實例102C的選擇可影響以良好的填裝質(zhì)量來部署新的高優(yōu)先級服務(wù)實例的后續(xù)能力。
由此,本發(fā)明的各實施例涉及利用分配度量(諸如,填裝質(zhì)量、驅(qū)逐成本 和/或存活)來高效分配多優(yōu)先級服務(wù)實例。利用這樣的度量可促成實現(xiàn)例如對高優(yōu)先級工作負載的高填裝質(zhì)量的期望、避免導致不必要的驅(qū)逐的期望和按不導致填裝質(zhì)量的降級的方式部署低優(yōu)先級工作負載的期望的最優(yōu)平衡。就此,各實施例用于組合填裝質(zhì)量的優(yōu)化、驅(qū)逐成本的最小化和/或存活的最大化。
轉(zhuǎn)向圖2,圖2示出了在其中本公開的實現(xiàn)可被采用的示例性分布式計算環(huán)境200。具體地,圖2示出了云計算環(huán)境200中的分配系統(tǒng)。應(yīng)當理解,此處所描述的這一和其他安排僅作為示例來闡明。作為所示的安排和元素的補充或替換,可使用其他安排和元素(例如機器、接口、功能、次序、以及功能聚集等),并且可完全省略某些元素。此外,本文所描述的許多元素是可以實現(xiàn)為分立或分布式組件或結(jié)合其他組件的、以及以任何合適的組合和在任何合適的位置的功能實體。此處被描述為由一個或多個實體執(zhí)行的各種功能可由硬件、固件和/或軟件來執(zhí)行。例如,各種功能可由執(zhí)行存儲在存儲器中的指令的處理器來執(zhí)行。
數(shù)據(jù)中心可支持分布式計算環(huán)境200,該分布式計算環(huán)境200包括云計算平臺210、機架220、節(jié)點230(例如,計算設(shè)備、處理單元或刀片)以及機架220中的分配平臺240。分配系統(tǒng)可用云計算平臺210來實現(xiàn),該云計算平臺210跨不同的數(shù)據(jù)中心和地理區(qū)域運行云服務(wù)。云計算平臺210可實現(xiàn)用于提供和管理資源分配、部署、升級和/或?qū)υ品?wù)的管理的分配平臺240。一般來說,云計算平臺210用于以分布式方式來存儲數(shù)據(jù)或運行服務(wù)應(yīng)用。數(shù)據(jù)中心中的云計算平臺210可被配置成托管和支持特定服務(wù)應(yīng)用的端點的操作。云計算平臺210還可以是公共云、私有云、混合云或?qū)S迷啤?/p>
分配平臺240一般將服務(wù)實例的資源提供或分配給節(jié)點,諸如節(jié)點230。節(jié)點230可被配置成執(zhí)行云計算平臺210內(nèi)的專用功能(例如,計算節(jié)點或存儲節(jié)點)。節(jié)點230被分配以運行承租者的服務(wù)應(yīng)用的一個或多個部分。承租者可指代利用云計算平臺210的資源的顧客。云計算平臺210的支持特定承租者的服務(wù)應(yīng)用組件可被稱為承租者基礎(chǔ)結(jié)構(gòu)或承租。術(shù)語服務(wù)應(yīng)用、應(yīng)用或服務(wù)在本文中可互換地被使用,并寬泛地指代在數(shù)據(jù)中心之上運行或訪問數(shù)據(jù)中心內(nèi)的存儲和計算設(shè)備位置的任何軟件或軟件部分。
當多于一個的服務(wù)應(yīng)用被節(jié)點230支持時,該節(jié)點可被劃分成虛擬機(例 如,虛擬機252和虛擬機254)和/或容器。物理機還可并發(fā)地運行各分開的服務(wù)應(yīng)用。虛擬機或物理機可被配置成云計算平臺210中的資源260(例如,硬件資源和軟件資源)所支持的個性化計算環(huán)境。構(gòu)想了資源可被配置用于特定服務(wù)應(yīng)用。此外,每個服務(wù)應(yīng)用可被劃分成功能部分,以使得每個功能部分能夠在分開的虛擬機上運行。在云計算平臺210中,多個服務(wù)器可被用于運行服務(wù)應(yīng)用并執(zhí)行群集中的數(shù)據(jù)存儲操作。具體而言,服務(wù)器可個別地執(zhí)行數(shù)據(jù)操作,但被展示為被稱為群集的單個設(shè)備。群集中的每個服務(wù)器可被實現(xiàn)成節(jié)點。
在操作中并在高層級處,客戶端設(shè)備280可被配置成生成并傳遞服務(wù)請求??蛻舳嗽O(shè)備280可被鏈接到云計算平臺210中的服務(wù)應(yīng)用。客戶端設(shè)備280可以是任何類型的計算設(shè)備,其可對應(yīng)于例如參考圖11描述的計算設(shè)備1100??蛻舳嗽O(shè)備280可被配置成向云計算平臺210發(fā)出命令。在各實施例中,客戶端設(shè)備280可通過虛擬因特網(wǎng)協(xié)議(IP)與各服務(wù)應(yīng)用通信以及與將通信請求定向到云計算平臺210中的指定端點的負載平衡器或其他裝置通信。云計算平臺210的組件可以經(jīng)由網(wǎng)絡(luò)(未示出)彼此通信,網(wǎng)絡(luò)可包括但不限于一個或多個局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)。
服務(wù)請求可作為服務(wù)請求282來傳遞。如可領(lǐng)會的,服務(wù)請求282可包括任何類型的信息或與其相關(guān)聯(lián)。例如,服務(wù)請求282可包括服務(wù)實例偏好、約束、或資源要求(諸如CPU核、主存儲器、網(wǎng)絡(luò)帶寬、硬盤等)或與其相關(guān)聯(lián)。在一些實施例中,服務(wù)請求282還可指示相應(yīng)服務(wù)實例的優(yōu)先級水平。
分配平臺240一般接收將與服務(wù)請求相關(guān)聯(lián)的服務(wù)實例分配給節(jié)點的指示。例如,分配平臺240可接收指示部署與其相關(guān)聯(lián)的服務(wù)實例的服務(wù)請求282。在一些情況下,分配平臺240可接收服務(wù)請求本身。在其他情況下,分配平臺240可接收基于服務(wù)請求(諸如服務(wù)請求282)來分配服務(wù)實例的指令。例如,雖然沒有示出,但在一些情況下,一個或多個級別的處理可在分配平臺240分配與服務(wù)請求相關(guān)聯(lián)的服務(wù)實例之前發(fā)生。僅作為示例,在一些情況下,作為各請求傳遞通過的前端(諸如,RDFE(紅狗前端))的API可接收服務(wù)請求,該服務(wù)請求隨后查詢與不同群集相關(guān)聯(lián)的各分配器平臺。在選擇特定分配平臺或群集之際,可隨后向其提供指令以部署服務(wù)實例。
在接收分配服務(wù)實例的指示之際,分配平臺240可利用與服務(wù)請求相對應(yīng) 的參數(shù)(例如,資源要求)來分配服務(wù)實例或?qū)⒎?wù)實例部署到節(jié)點上。就此,分配平臺240分配節(jié)點的資源作為服務(wù)實例(例如,虛擬機或容器)。如以下更詳細描述的,分配平臺240可使用各種度量來產(chǎn)生針對所請求的資源的近優(yōu)放置決策。這樣的度量可包括例如填裝質(zhì)量、驅(qū)逐成本和/或存活。
分配平臺240可識別與要部署的服務(wù)實例相關(guān)聯(lián)的服務(wù)水平。在一些情況下,服務(wù)請求(諸如服務(wù)請求282)可指示服務(wù)水平(例如,高或低優(yōu)先級水平)。在其他情況下,服務(wù)水平可例如基于服務(wù)請求中提供的數(shù)據(jù)來被訪問、引用或查找。例如,在接收對部署服務(wù)實例的服務(wù)請求之際,可(例如基于承租者的先前指定)查找以與該服務(wù)水平相關(guān)聯(lián)地應(yīng)用的優(yōu)先級水平。在一些情況下,與服務(wù)實例相關(guān)聯(lián)的服務(wù)水平可被用來選擇要將該服務(wù)實例部署到的節(jié)點。
如圖所示,分配平臺240包括用于將服務(wù)實例分配給各節(jié)點的各個組件,如由填裝質(zhì)量組件242、驅(qū)逐成本組件244、存活組件246和分配器248所示出的。在高層級處,填裝質(zhì)量組件242被配置成確定(諸)填裝質(zhì)量度量,驅(qū)逐成本組件244被配置成確定(諸)驅(qū)逐成本度量,且存活組件246被配置成確定(諸)存活度量。各度量可隨后被分配器248用來確定服務(wù)實例到節(jié)點的分配或部署。以下更詳細描述這些組件中的每一者。
雖然圖2示出了用于分配服務(wù)實例的四個分開的組件,但可領(lǐng)會,本文中參考這些組件描述的功能可被提供在任何數(shù)目的組件(諸如單個組件)中。在一些實現(xiàn)中,可省略所描繪的與這些組件中的一者或多者相關(guān)聯(lián)的功能。例如,雖然本文中描述的一些實施例指代利用填裝質(zhì)量、驅(qū)逐成本和存活度量,但在一些實現(xiàn)中,可使用這些度量的子集(例如,填裝質(zhì)量和驅(qū)逐成本)來分配服務(wù)實例。在這樣的情況下,僅需要實現(xiàn)期望組件的功能。此外,一組件(未示出)可用作供分配器考慮(例如,分配器248可考慮)的代理。例如,分配器可跨多個機架擴散實例以優(yōu)化可用性(可用性最大化組件)、執(zhí)行負載平衡(負載平衡組件)、或優(yōu)化協(xié)同定位要求(協(xié)同定位組件)。
填裝質(zhì)量組件242被配置成確定指示與要分配的服務(wù)實例相關(guān)聯(lián)的填裝質(zhì)量的(諸)度量。填裝質(zhì)量或填裝質(zhì)量度量一般指代服務(wù)實例與節(jié)點適應(yīng)的程度的度量、測量或指示。在各實施例中,填裝質(zhì)量基于根據(jù)各資源需求(諸如 CPU、存儲器等)的多維資源試探。多維最佳適應(yīng)可用于確定為新服務(wù)實例提供最佳填裝質(zhì)量的節(jié)點。填裝質(zhì)量度量可用任何數(shù)目的方式來表示。例如,填裝質(zhì)量度量可以是指示服務(wù)實例適應(yīng)節(jié)點的程度或等級的值(例如,數(shù)字值)、對要使用的優(yōu)選節(jié)點或節(jié)點集的指示、對不期望向其分配的節(jié)點或節(jié)點集的指示或提供各節(jié)點之間的度量或比較的另一指示(例如,節(jié)點A更好)。
填裝質(zhì)量度量可按任何數(shù)目的方式來生成,并且用于確定填裝質(zhì)量度量的方法并不旨在以任何方式構(gòu)成限制。作為用于確定填裝質(zhì)量度量的一個示例,不同的資源可根據(jù)其稀缺性來被加權(quán)。例如,在服務(wù)實例主要是高存儲器實例的情況下,存儲器可用性可能是主要的瓶頸,并且因此在決定填裝時,存儲器資源維度將被賦予更高的值。對填裝質(zhì)量的確定可被擴展到任何數(shù)目的資源維度。在一些實施例中,在計算某實例的節(jié)點填裝分數(shù)時,確定填裝質(zhì)量忽略較低優(yōu)先級實例。例如,這意味著要被分配的服務(wù)實例的填裝分數(shù)不考慮節(jié)點上的可驅(qū)逐或低優(yōu)先級實例。
以下在等式1中提供了用于計算每一候選節(jié)點的分數(shù)(score)的多維最佳適應(yīng)填裝算法的一個示例:
分數(shù)=∑dwd*rd 等式1
其中,d表示資源(例如,CPU、存儲器、SSD等),rd是在填裝了當前實例之后節(jié)點上的剩余資源d(例如,為百分比),且wd是指派給資源d的權(quán)重。每一資源的權(quán)重可以是那個資源的群集范圍利用率,其反映了那個資源的值。例如,CPU資源的權(quán)重是跨所有節(jié)點的總分配核的數(shù)目除以群集中的總健康核。實現(xiàn)這樣的算法可用于:避免對空節(jié)點的使用;嘗試將一些節(jié)點填裝成滿狀態(tài)或接近滿狀態(tài)(其中,沒有更多或更少的實例可被填裝);將具有高度浪費的滿狀態(tài)推進成具有低度浪費的滿狀態(tài)等等。
填裝質(zhì)量組件242可以以任何格式將填裝質(zhì)量度量輸出到分配器248。通過這種方式,如可領(lǐng)會的,從填裝質(zhì)量組件輸出的(諸)度量可以是(諸)分數(shù)(例如,指示較佳填裝的最小分數(shù))或?qū)哂凶钚?諸)分數(shù)的(諸)節(jié)點的指示。例如,在一些情況中,可為每一候選節(jié)點生成一填裝質(zhì)量分數(shù),并可將每一個這樣的分數(shù)提供給分配器248以供在分配服務(wù)實例時使用。在另一示例中,在為每一候選節(jié)點生成填裝質(zhì)量分數(shù)之際,具有最小分數(shù)(或在彼此的 閾值內(nèi))的(諸)節(jié)點可被選擇并被提供給分配器248以供在分配服務(wù)實例時使用。如先前所描述的,填裝質(zhì)量度量可用任何數(shù)目的方式來表示,諸如用指示服務(wù)實例適應(yīng)節(jié)點的程度或等級的值(例如,數(shù)字值)、對要使用的優(yōu)選節(jié)點或節(jié)點集的指示、對不期望向其分配的節(jié)點或節(jié)點集的指示、或提供各節(jié)點之間的度量或比較的另一指示(例如,節(jié)點A更好)來表示。用于向分配器248提供填裝質(zhì)量度量的特定方式或格式可取決于分配器248所使用的分配算法,其中的一些在以下更詳細地描述。
驅(qū)逐成本組件244被配置成確定驅(qū)逐成本度量。驅(qū)逐成本度量指代對將服務(wù)實例從節(jié)點中驅(qū)逐以使得可將另一服務(wù)實例分配給那個節(jié)點的成本的指示。驅(qū)逐成本度量可用任何數(shù)目的方式來表示,諸如例如用與成本相關(guān)聯(lián)的值或量或?qū)︱?qū)逐成本比較(例如,對具有最少驅(qū)逐成本的特定節(jié)點或節(jié)點集的偏好)的指示來表示。例如,假設(shè)高優(yōu)先級服務(wù)實例要被部署在節(jié)點A或節(jié)點B上。驅(qū)逐成本組件244可確定與向節(jié)點A分配服務(wù)實例相關(guān)聯(lián)的驅(qū)逐成本以及與向節(jié)點B分配服務(wù)節(jié)點相關(guān)聯(lián)的驅(qū)逐成本。在一些實現(xiàn)中,驅(qū)逐成本度量可以是與候選節(jié)點(例如,節(jié)點A、節(jié)點B)相關(guān)聯(lián)的(諸)驅(qū)逐成本。在其他實現(xiàn)中,驅(qū)逐成本度量可以是例如基于計算出的驅(qū)逐成本的對節(jié)點A或節(jié)點B的偏好。
確定驅(qū)逐成本度量可按任何數(shù)目的方式發(fā)生。例如,驅(qū)逐成本度量可以是基于對將被驅(qū)逐的所分配服務(wù)實例(例如VM)的數(shù)目的計數(shù),當前服務(wù)實例應(yīng)當被放置在特定節(jié)點處。僅作為示例,假設(shè)節(jié)點A已具有正在該節(jié)點上運行的三個服務(wù)實例。在這樣的情況下,與節(jié)點A相關(guān)聯(lián)的驅(qū)逐成本度量可以是為3的成本,因為如果新服務(wù)實例被部署在節(jié)點A上,則已經(jīng)在節(jié)點A上運行的三個服務(wù)實例將被驅(qū)逐。用于確定驅(qū)逐成本度量的另一方法可基于優(yōu)先級水平。在這樣的情況下,可作出以下假設(shè):較高優(yōu)先級服務(wù)實例與較低優(yōu)先級服務(wù)實例相比具有更多的成本(例如,無窮更多的成本)。由此,如果在驅(qū)逐節(jié)點A上的較低優(yōu)先級水平的十個虛擬機或驅(qū)逐節(jié)點B上的較高優(yōu)先級水平的一個虛擬機之間選擇,則驅(qū)逐成本度量可按某種方式指示對分配給節(jié)點B和/或驅(qū)逐節(jié)點A上的較低優(yōu)先級的十個虛擬機的偏好。如可領(lǐng)會的,在沒有服務(wù)實例被驅(qū)逐的情況下,驅(qū)逐成本可以是零。
用于確定驅(qū)逐成本度量的另一方法可基于與正被驅(qū)逐的(諸)實例相關(guān)聯(lián)的服務(wù)的影響,諸如整個服務(wù)需要被驅(qū)逐的情況。例如,假設(shè)存在兩個服務(wù)A和B,但有10個服務(wù)實例要被部署。進一步假設(shè)服務(wù)A可靈活地放大/縮小(例如,如果其實例之一被驅(qū)逐,則該服務(wù)將繼續(xù)以9個實例運行),而服務(wù)B具有10個服務(wù)的下限限制(例如,如果其服務(wù)實例之一被驅(qū)逐,則整個服務(wù)都需要被驅(qū)逐)。在這樣的情況下,在給定選擇從服務(wù)A或服務(wù)B中驅(qū)逐實例的情況下,可能會選擇從服務(wù)A中驅(qū)逐實例。然而,用于確定驅(qū)逐成本的另一方法可以是使用服務(wù)的運行時來確定其驅(qū)逐成本或任何其他外部因素。
驅(qū)逐成本組件244可以以任何格式將驅(qū)逐成本度量輸出到分配器248。通過這種方式,如可領(lǐng)會的,從驅(qū)逐成本組件輸出的(諸)度量可以是(諸)成本或(諸)分數(shù)(例如,最小分數(shù))或者對具有特定(諸)成本或(諸)分數(shù)(例如,(諸)最小分數(shù))的(諸)節(jié)點的指示。例如,在一些情況下,可為每一候選節(jié)點生成驅(qū)逐成本,并且可將每一個這樣的成本提供給分配器248。在另一示例中,在為每一候選節(jié)點生成驅(qū)逐成本之際,具有最小分數(shù)(或在彼此的閾值內(nèi))的(諸)節(jié)點可被選擇并被提供給分配器248以供在分配服務(wù)實例時使用。如先前所描述的,驅(qū)逐成本度量可用任何數(shù)目的方式來表示,諸如用指示將服務(wù)實例從節(jié)點處驅(qū)逐以使得可將另一服務(wù)實例分配給該節(jié)點的成本的值(例如,數(shù)字值)、對要使用的優(yōu)選節(jié)點或節(jié)點集的指示、對不期望向其分配的節(jié)點或節(jié)點集的指示、或提供各節(jié)點之間的度量或比較的另一指示(例如,節(jié)點A更好)來表示。用于向分配器248提供填裝質(zhì)量度量的特定方式或格式可取決于分配器248所使用的特定分配算法,其中的一些在以下更詳細地描述。
存活組件246可被配置成確定存活度量。存活指代服務(wù)實例在一些情況下在時間幀內(nèi)將不被驅(qū)逐或服務(wù)實例在一些情況下將在節(jié)點上存活達持續(xù)時間的可能性或程度。通過這種方式,存活度量提供對服務(wù)實例(例如,VM)如果被部署到某節(jié)點(例如服務(wù)器)的情況下將存活多久的預測的指示。一般來說,在部署低優(yōu)先級服務(wù)實例時,將該服務(wù)實例部署在其中該服務(wù)實例具有高可能性不會在此后不久被驅(qū)逐的節(jié)點上是合乎需要的。即,期望將服務(wù)實例部署在其中其預期存活時間(即,直到其驅(qū)逐/掛起的預期時間)被最大化的節(jié)點 上。期望將服務(wù)實例部署到其中它們對較高優(yōu)先級實例的后續(xù)部署具有最少負面影響的節(jié)點上。預期的未來壽命(直到實例被掛起的時間)在各節(jié)點之間可顯著地不同。如可領(lǐng)會的,存活度量可被用于分配高優(yōu)先級水平服務(wù)實例和/或低優(yōu)先級水平服務(wù)。
存活度量可用任何數(shù)目的方式來表示。例如,存活度量可以是指示服務(wù)實例在一些情況下在時間幀內(nèi)將不被驅(qū)逐的可能性或程度的數(shù)字值;服務(wù)實例將在節(jié)點上存活(沒有被驅(qū)逐)的程度;對要使用的優(yōu)選節(jié)點或節(jié)點集的指示;對不期望向其分配的節(jié)點或節(jié)點集的指示;或提供節(jié)點之間的度量或比較的另一指示(例如,節(jié)點A更好)。僅作為示例,可作出針對每一服務(wù)實例和節(jié)點對的存活預測。存活預測可以是數(shù)字值(例如,15天)或相對值(例如,服務(wù)器1上的服務(wù)實例將比服務(wù)器2上的存活更久)。
作為另一示例,存活度量可由指示或估計服務(wù)實例在節(jié)點上的預期壽命的存活分數(shù)來表示。在一些實現(xiàn)中,如果服務(wù)實例在不久的將來被從特定節(jié)點處驅(qū)逐的概率小,則節(jié)點具有高存活分數(shù)。另一方面,如果該服務(wù)實例在不久的將來被從該節(jié)點驅(qū)逐的概率高,則節(jié)點一般具有低存活分數(shù)。
本文中提供了用于確定存活分數(shù)并由此確定存活度量的一個實現(xiàn)。一般來說,候選節(jié)點的存活分數(shù)被確定成該節(jié)點的危險概率的倒數(shù)。危險概率指代對在下一時間區(qū)間內(nèi)把新實例分配給候選節(jié)點v將導致某種類型的實例驅(qū)逐有多么可能的估計。由此,針對節(jié)點v的危險概率(v)的值可被標識出并被用于確定該節(jié)點v的存活分數(shù)(v)。如以下更詳細描述的,分配器可期望將新實例分配給具有高存活分數(shù)的節(jié)點以力圖確保防止驅(qū)逐達較長時間。
在一些情況下,可作出允許對危險概率(v)的高效計算的假設(shè)。例如,一個假設(shè)是在下一時間區(qū)間期間,當前部署在群集中的服務(wù)實例都不將離開。即,假設(shè)在計算危險概率時,當前的靜態(tài)群集快照在下一時間段內(nèi)都將保持穩(wěn)定??纱俪筛咝в嬎愕牧硪患僭O(shè)是每一實例類型首先被獨立地考慮,并在此后通過聯(lián)合邊界(union-bound)在所有實例類型上求和。這樣的假設(shè)使不同類型的實例之間復雜的內(nèi)部依賴性降級,但允許對危險概率的高效逼近。
在各實施例中并在高層級處,存活分數(shù)可通過首先針對每一節(jié)點v并針對每一實例類型t計算危險概率(v,t)來生成。實例類型可以是任何服務(wù)實例類型。 例如,實例類型可以和與服務(wù)實例相關(guān)聯(lián)的大小、資源、配置等有關(guān)。僅作為示例而非限制,第一實例類型可包括1核、0.75GB RAM和20GB盤大小;第二實例類型可包括1核、1.75GB RAM和40GB盤大??;第三實例類型可包括2核、3.5GB RAM和60GB盤大?。坏谒膶嵗愋涂砂?核、7GB RAM和120GB盤大小。
危險概率(v,t)表示將發(fā)生以下的可能性:在下一時間區(qū)間內(nèi),如果新實例被部署到節(jié)點v,并且如果僅類型t的新服務(wù)實例到達,則將該新實例部署在節(jié)點v上將導致驅(qū)逐某個已經(jīng)部署的服務(wù)實例。根據(jù)計算針對每一節(jié)點v和每一實例類型t的危險概率(v,t),節(jié)點v的危險概率(v)可通過將所有類型上的危險概率(v,t)相加,由此實質(zhì)上采用聯(lián)合邊界(union-bound argument)變元來確定。此后,節(jié)點v的存活分數(shù)(v)是危險概率(v)的倒數(shù)。高存活分數(shù)(v)一般可暗示對于長持續(xù)時間,將新實例部署到節(jié)點v不大可能導致任何驅(qū)逐。
在一些實現(xiàn)中,每一實例類型的到達率被用于生成存活分數(shù)。就此,每一實例類型的到達率的統(tǒng)計信息可被用來計算預期在給定區(qū)間內(nèi)(例如,在合適的持續(xù)時間內(nèi))每一實例類型有多少實例將到達。針對每一節(jié)點v以及每一實例類型t,安全距離(v,t)是根據(jù)到達率來計算的。安全距離(v,t)一般指代在類型t的實例被部署在節(jié)點v上的情況下,直到某個實例將由于這種新實例的后續(xù)部署而被驅(qū)逐的預期持續(xù)時間。換言之,對于每一節(jié)點,計算指示在假設(shè)在下一時間區(qū)間類型t的新實例將到達的情況下,新服務(wù)實例可在節(jié)點v上保持安全的預期持續(xù)時間。在一些這樣的計算中,可作出以下假設(shè):服務(wù)實例都沒有離開,較高優(yōu)先級的服務(wù)實例是依據(jù)多維填裝規(guī)則來分配的,并且關(guān)系被破壞以在可能的情況下避免驅(qū)逐低優(yōu)先級實例。在一些情況下,安全距離(v,t)的值可被高效地計算出,因為這些節(jié)點是根據(jù)多維填裝規(guī)則來排序的,并且此后針對這些節(jié)點的安全距離(v,t)的值被計算出。
對于每一節(jié)點v以及每一實例類型t,危險概率(v,t)被計算成安全距離(v,t)的倒數(shù)(即,1/安全(v,t))。如先前所描述的,危險概率(v,t)指代在類型t的實例被部署在節(jié)點v上的情況下,某一實例將由于該新實例的后續(xù)部署而被驅(qū)逐的概率。就此,在假設(shè)這些實例以指數(shù)分布隨機地到達的情況下,值1/安全(v,t)可被解釋成在某一后續(xù)時間區(qū)間內(nèi),將新實例部署到節(jié)點v不會導致任何驅(qū)逐 的概率。
與各種實例類型相關(guān)聯(lián)的危險概率(v,t)可被用于例如使用求和來計算危險概率(v)。例如,危險概率(v)=Σt(危險概率(v,t))。通過這種方式,不同的類型t是通過經(jīng)由聯(lián)合邊界逼近在不同的類型上求和被聚集成針對每一節(jié)點的單個危險概率(v)的。在確定每一節(jié)點v的危險概率之際,存活分數(shù)可使用例如存活分數(shù)(v)=1/危險概率(v)來計算。
作為具體示例并參考圖3,假設(shè)僅存在兩個實例類型(小型,大型)。如圖3所示,群集包括四個節(jié)點,即節(jié)點302、節(jié)點304、節(jié)點306和節(jié)點308。節(jié)點302是滿的,而節(jié)點308是完全空的。如圖所示,僅高優(yōu)先級實例當前被部署在該群集中。假設(shè)將部署低優(yōu)先級的新的小型實例320。為了為該新實例320計算針對每一節(jié)點的存活分數(shù),這些實例的預期到達率被計算。在此實例中,在給定時間區(qū)間內(nèi),假設(shè)大型實例類型的到達率等于1,而小型實例類型的到達率等于3,即在某一時間段內(nèi)到達的小型實例比大型實例多三倍。到達率的倒數(shù)被用來計算預期到達區(qū)間。在該示例中,預期到達區(qū)間為大型示例類型等于三,且小型實例類型等于1。
在獲得達到區(qū)間之際,為每一節(jié)點和每一實例類型計算安全距離(v,t)。具體地,安全距離(v,t)被計算成(必須直到某一驅(qū)逐發(fā)生的類型t的實例數(shù))*(類型t的到達區(qū)間)。具體參考節(jié)點304,可為節(jié)點304并為小型實例類型計算安全距離(節(jié)點304,小型實例類型)。假設(shè)新實例被部署在節(jié)點304上。如果兩個以上小型實例到達節(jié)點304,則將存在某一實例驅(qū)逐。由此,針對節(jié)點304的安全距離(節(jié)點302,小型實例類型)是小型實例的到達區(qū)間(即,1)的兩倍,由此為2*1=2,如圖3中的322處所示。
現(xiàn)在考慮圖3中的節(jié)點306。在假設(shè)給定多維填裝分配規(guī)則的情況下,任何新的小型實例都將首先被放在節(jié)點304上,因為該填裝是最優(yōu)的。在填充節(jié)點304之際,多維填裝分配規(guī)則將(諸)小型實例分配在節(jié)點306上。如果新實例被分配給節(jié)點306,則5個新的小型實例被需要,直到存在驅(qū)逐。由此,針對節(jié)點306的安全距離(節(jié)點306,小型實例類型)是小型實例的到達區(qū)間(即,1)的5倍,由此為5*1=5,如圖3中的324處所示。類似地,對于節(jié)點308,安全距離(節(jié)點308,小型實例類型)為9,因為新的小型實例必須在 驅(qū)逐發(fā)生之前首先整體地填充節(jié)點304、節(jié)點306和節(jié)點308。由此,針對節(jié)點308的安全距離(節(jié)點308,小型實例類型)是小型實例類型的到達區(qū)間(即,1)的九倍,由此為9*1=9,如圖3中的326處所示。
繼續(xù)該示例,參考大型示例類型t=大型,大型示例類型可僅被部署到節(jié)點308。在單個實例正被部署在已部署的節(jié)點308上之際,在該節(jié)點上存在驅(qū)逐。由此,導致驅(qū)逐所需的大型實例的數(shù)目為1,并且如先前所討論的,大型實例類型的到達區(qū)間為三。因此,針對節(jié)點308的安全距離(節(jié)點308,大型實例類型)是大型實例類型的到達區(qū)間的一倍(即,1*3=3),如328處所指示的。
各安全距離(v,t)可被轉(zhuǎn)換成時間,并且由此被解釋成危險概率(v,t)的倒數(shù)。圖3中的危險概率(v,t)340表示如果新的實例被分配在節(jié)點v上并且根據(jù)預期到達率隨后類型t的實例會到達,則在下一時間區(qū)間內(nèi)某個實例將被從節(jié)點v中驅(qū)逐的概率。
在標識針對節(jié)點的與每一實例類型相關(guān)聯(lián)的危險概率(即,危險概率(v,t)340)之際,針對每一節(jié)點的所有類型t上的概率可被求和以計算危險概率(v)342,其是存活分數(shù)的倒數(shù)(v)。一般來說,具有最低危險概率(v)的節(jié)點是要向其分配新實例的最安全的節(jié)點。由此,在該示例中,節(jié)點306被標識為與安全度量有關(guān)的要向其分配新實例的最安全的節(jié)點。為了解說有效性,假設(shè)新實例320被分配給節(jié)點304,在這樣的情況下,存在很高可能性該新實例將由于將首先被部署到節(jié)點304的隨后部署的小型高優(yōu)先級實例而被驅(qū)逐。另一方面,由于高優(yōu)先級大型實例很快會到達,該大型實例將可能被部署到節(jié)點308,由此從節(jié)點308驅(qū)逐任何低優(yōu)先級實例。由此,未被選擇的節(jié)點(即,節(jié)點302、304、308)相對于被選擇的節(jié)點306而言并非同樣安全。
在一些實現(xiàn)中,存活組件246可在沒有人工干預的情況下自動地適應(yīng)特定群集狀態(tài)以生成(諸)存活度量。作為示例并參考圖4,圖4包括節(jié)點402、404、406、408、410和412。節(jié)點402-408一般與圖3中的節(jié)點302-308相同。由此,節(jié)點410和412被添加到群集,這兩個節(jié)點都是空節(jié)點。存活組件426可自動地重新估計節(jié)點408的安全性,如安全距離(節(jié)點408,小型實例類型)426和安全距離(節(jié)點408,大型實例類型)428所表示的。這樣的重新估計可 出于任何數(shù)目的理由而被觸發(fā),諸如在一時間流逝之際、在群集狀態(tài)方面的足夠改變之際,在群集方面的每一改變之際等等。
為了標識針對新的低優(yōu)先級實例420的最安全的節(jié)點,作出關(guān)于以下的估計:該新的低優(yōu)先級實例420如果被部署在諸如節(jié)點408的節(jié)點上有多么可能將可能由于將來的高優(yōu)先級實例而被驅(qū)逐。作為示例并參考該新的低優(yōu)先級實例420被潛在地部署到節(jié)點408,假設(shè)多維填裝質(zhì)量將不會把新的(將來的)大型高優(yōu)先級實例分配在節(jié)點408上。相反,該新的實例將被部署在大型節(jié)點之一上,由此避免了將該低優(yōu)先級實例驅(qū)逐掉。因此,將用三個大型高優(yōu)先級實例來驅(qū)逐新部署的低優(yōu)先級實例420。假設(shè)大型實例的到達區(qū)間為三。由此,安全距離(節(jié)點408,大型)現(xiàn)在為3*3=9,如428處所指示的。由于危險概率(節(jié)點408,大型)現(xiàn)在為1/9(而不是1/3),節(jié)點408的總危險概率(節(jié)點408)與所提供的與圖3相關(guān)聯(lián)的示例相比要小的多。即,許多空節(jié)點的添加已顯著地增加了節(jié)點408的安全性。類似的計算可對節(jié)點上的新的(將來的)小型高優(yōu)先級實例執(zhí)行,即如果所有將來的高優(yōu)先級實例都是小型實例,則在分配了多少高優(yōu)先級實例后,該新的低優(yōu)先級實例420(如果被部署到諸如節(jié)點408的節(jié)點上的話)將被驅(qū)逐。在計算針對各節(jié)點的危險概率之際,節(jié)點408可被標識成最安全的節(jié)點。如所描述的,該算法已通過據(jù)此重新估計安全分數(shù)而自動地適應(yīng)于群集狀態(tài)方面的改變。
在一些情況下,存活組件246在生成(諸)存活度量時可納入對當前被部署在群集中的現(xiàn)有低優(yōu)先級實例的知曉。作為示例并參考圖5,圖5包括節(jié)點502、504、506、508、510和512。與圖4相較,節(jié)點508現(xiàn)在完全與大型優(yōu)先級實例聯(lián)用。由此,與圖4相比,存在少一個的其中可部署大型高優(yōu)先級實例而沒有驅(qū)逐的空“緩存器節(jié)點”。結(jié)果,安全距離(節(jié)點508,大型實例類型)528從9(在圖4中)降低到6(在圖5中)。由此,節(jié)點508的危險概率增加了(并且具有相同節(jié)點狀態(tài)(空狀態(tài))的節(jié)點510和512被類似地增加),其將節(jié)點506渲染成最安全的節(jié)點。如可領(lǐng)會的,可不針對每一節(jié)點來計算危險概率,而針對每一節(jié)點狀態(tài)來計算危險概率。節(jié)點狀態(tài)可用一程度或?qū)嵗?例如,高優(yōu)先級實例)所消耗的資源來指定。例如,在圖5中,節(jié)點502可表示滿狀態(tài),節(jié)點504可表示半滿狀態(tài),節(jié)點506可表示四分之一滿狀態(tài),且節(jié)點 508、510和512可表示空狀態(tài)。
繼續(xù)圖2,存活組件246可按任何格式將存活度量輸出到分配器218。通過這種方式,如可領(lǐng)會的,從存活組件輸出的(諸)度量可以是(諸)危險概率(例如,最低概率)或(諸)存活分數(shù)(例如,最大分數(shù))或?qū)哂?諸)特定概率或(諸)分數(shù)的節(jié)點的指示。例如,在一些情況下,存活分數(shù)可針對每一候選節(jié)點生成,并且每一個這樣的分數(shù)可被提供給分配器248。在另一示例中,在生成針對每一候選節(jié)點的存活分數(shù)之際,具有最大分數(shù)(或在彼此的閾值內(nèi))的(諸)節(jié)點可被選擇并被提供給分配器248。如先前所描述的,存活度量可按任何數(shù)目的方式來表示,諸如指示服務(wù)實例在一些情況下在時間幀內(nèi)將不會被驅(qū)逐的可能性或程度的數(shù)字值;服務(wù)實例將在節(jié)點上存活(沒有被驅(qū)逐)的程度;對要使用的優(yōu)選節(jié)點或節(jié)點集的指示;對不期望向其分配的節(jié)點或節(jié)點組的指示;或提供各節(jié)點之間的度量或比較的另一指示(例如,節(jié)點A更好)。用于向分配器248提供填裝質(zhì)量度量的特定方式或格式可取決于分配器248所使用的分配算法,其一些方面在以下描述。
分配器248一般被配置成將服務(wù)實例(例如VM)分配給節(jié)點。在各實施例中,分配器248可訪問一個或多個度量,諸如填裝質(zhì)量度量、驅(qū)逐成本度量和/或存活度量,以選擇要向其分配特定服務(wù)實例的節(jié)點。在一些情況下,分配器248可分層或一個接一個地訪問這些度量中的每一個。就此,對于服務(wù)實例,第一度量可被訪問以減少潛在候選節(jié)點,第二度量可隨后被訪問以進一步減少候選節(jié)點,并且第三度量可隨后被訪問以進一步減少候選節(jié)點。訪問這些度量的次序可按任何方式發(fā)生。在其他情況下,分配器248可例如使用包括針對這些度量中的每一者的權(quán)重的算法來同時地評估這些度量中的每一者。
作為示例,在一個實施例中,可從候選節(jié)點的整體中選擇與超過(或沒有超過)某閾值或排名的填裝質(zhì)量相關(guān)聯(lián)的候選節(jié)點。利用填裝質(zhì)量知曉確保允許相當高效的填裝(即相當高的填裝分數(shù))的節(jié)點被考慮。例如,具有最大填裝質(zhì)量的所有候選節(jié)點都可被選擇。作為另一示例,超過填裝質(zhì)量閾值的候選節(jié)點可被選擇。就此,在一些情況下,分配器248可接收針對每一候選節(jié)點的填裝分數(shù)(例如,多維最佳適應(yīng)填裝分數(shù))、依據(jù)填裝分數(shù)遞增的方式來對候選節(jié)點進行排序(例如,越小的分數(shù)等于越好的填裝)并選擇經(jīng)排序節(jié)點中的 前X%。就此,分配器248可從填裝質(zhì)量組件中接收前X%的節(jié)點(或指示(諸)節(jié)點選擇的其他填裝質(zhì)量度量),并此后使用該數(shù)據(jù)來分配服務(wù)實例。
繼續(xù)該示例,在基于填裝質(zhì)量減少了候選節(jié)點之際,與剩余候選節(jié)點相關(guān)聯(lián)的驅(qū)逐成本可被用來濾除具有較差驅(qū)逐成本的候選節(jié)點(例如,具有高驅(qū)逐成本的那些候選節(jié)點)或選擇具有最少驅(qū)逐成本的節(jié)點。如通過填裝質(zhì)量度量,超過閾值或達到某排名(例如,最佳的或前X%)的候選節(jié)點可被從減少的候選節(jié)點集中選出。該分析的這方面確保對驅(qū)逐成本的知曉。通過這種方式,可區(qū)分驅(qū)逐成本為0或超出其他節(jié)點盡可能低的各節(jié)點的優(yōu)先級。
在基于驅(qū)逐成本減少候選節(jié)點之際,可隨后基于存活度量來估計減少的候選節(jié)點集。該存活知曉可確保到其中新部署的實例不大可能由于更高優(yōu)先級實例的隨后到達而被驅(qū)逐的節(jié)點的分配。在一些情況下,可選擇將可能存活最長的候選節(jié)點或可能存活例如超過閾值的候選節(jié)點集。如可領(lǐng)會的,在一些情況下,仍可存在多個候選節(jié)點(例如,具有相等存活分數(shù)的多個候選節(jié)點)。在這樣的情況下,任何數(shù)目的規(guī)則都可被應(yīng)用來選擇特定節(jié)點。例如,可選擇具有最大填裝質(zhì)量分數(shù)的候選節(jié)點。
雖然一個實施例被描述為利用三個度量中的每一個來標識或確定要向其分配服務(wù)實例的候選節(jié)點,如可領(lǐng)會的,可應(yīng)用任何數(shù)目的度量和/或次序。例如,在一些情況下,可按任何次序僅使用填裝質(zhì)量和驅(qū)逐成本來選擇候選節(jié)點。僅使用填裝質(zhì)量和驅(qū)逐成本可被實現(xiàn)為用于對候選節(jié)點的每一選擇(例如,存活度量沒有被確定并使用)。
如發(fā)明人所構(gòu)想的,各種算法可與不同的優(yōu)先級水平聯(lián)用。在高層級,例如使用第一和第二度量的第一算法可在將被部署的服務(wù)實例被標識為低優(yōu)先級水平時被使用,并且使用第二和第三度量的第二算法可在將被部署的服務(wù)實例被標識為高優(yōu)先級水平時被使用。作為一個示例,在評估要向哪個節(jié)點部署高優(yōu)先級服務(wù)實例時要使用的高優(yōu)先級分配算法可平衡填裝質(zhì)量與驅(qū)逐成本度量,而在評估要向哪個節(jié)點部署低優(yōu)先級服務(wù)實例時要使用的低優(yōu)先級分配算法可單獨地基于填裝質(zhì)量度量。作為另一示例,在評估要向哪個節(jié)點部署高優(yōu)先級服務(wù)實例時要使用的高優(yōu)先級分配算法可基于填裝質(zhì)量度量,而在評估要向哪個節(jié)點部署低優(yōu)先級服務(wù)實例時要使用的低優(yōu)先級分配算法可基于填 裝質(zhì)量和存活度量的平衡。作為又一示例,在評估要向哪個節(jié)點部署高優(yōu)先級服務(wù)實例時要使用的高優(yōu)先級分配算法可基于與驅(qū)逐成本度量平衡的填裝質(zhì)量,而在評估要向哪個節(jié)點部署低優(yōu)先級服務(wù)實例時要使用的低優(yōu)先級分配算法可基于填裝質(zhì)量和存活度量的平衡。這些僅僅是可用于不同水平的服務(wù)實例的不同分配算法的示例,而不意味著對本發(fā)明的實施例的范圍構(gòu)成限制。
現(xiàn)在參考圖6,提供了示出用于優(yōu)化多優(yōu)先級服務(wù)實例分配的方法600的流程圖。最初,在框610,針對要部署的服務(wù)實例,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量。在框612,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點的至少一部分相關(guān)聯(lián)的驅(qū)逐成本度量。在一些情況下,生成針對每一服務(wù)實例-候選節(jié)點對的驅(qū)逐成本。在其他情況下,生成針對基于對填裝質(zhì)量度量的評估而選擇的各服務(wù)實例-候選節(jié)點對(即,填裝質(zhì)量度量被用于減少潛在節(jié)點候選的集合)的驅(qū)逐成本。在框614,使用填裝質(zhì)量度量和驅(qū)逐成本度量中的至少一部分來選擇要向其分配該服務(wù)實例的節(jié)點。該服務(wù)實例可能是低優(yōu)先級服務(wù)實例或高優(yōu)先級服務(wù)實例。隨后,在框616,將該服務(wù)實例部署在所選的節(jié)點處。
現(xiàn)轉(zhuǎn)至圖7,提供了示出用于優(yōu)化多優(yōu)先級服務(wù)實例分配的方法700的流程圖。最初,在框710,針對要部署的服務(wù)實例,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量。在框712,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點的至少一部分相關(guān)聯(lián)的存活度量。在一些情況下,生成針對每一服務(wù)實例-候選節(jié)點對的存活度量。在其他情況下,生成針對基于對填裝質(zhì)量度量的評估而選擇的各服務(wù)實例-候選節(jié)點對(即,填裝質(zhì)量度量被用于減少潛在節(jié)點候選的集合)的存活度量。在框714,使用填裝質(zhì)量度量和存活度量中的至少一部分來選擇要向其分配該服務(wù)實例的節(jié)點。該服務(wù)實例可能是低優(yōu)先級服務(wù)實例或高優(yōu)先級服務(wù)實例。隨后,在框716,將該服務(wù)實例部署在所選的節(jié)點處。
現(xiàn)參考圖8,提供了示出用于優(yōu)化多優(yōu)先級服務(wù)實例分配的方法800的流程圖。最初,在框810,針對要部署的服務(wù)實例,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量。在框812,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點的至少一部分相關(guān)聯(lián)的驅(qū)逐成本度量。在一些情況 下,生成針對每一服務(wù)實例-候選節(jié)點對的驅(qū)逐成本。在其他情況下,生成針對基于對填裝質(zhì)量度量的評估而選擇的各服務(wù)實例-候選節(jié)點對(即,填裝質(zhì)量度量被用于減少潛在節(jié)點候選的集合)的驅(qū)逐成本。在框814,確定與可潛在地向其分配該服務(wù)實例的候選節(jié)點的至少一部分相關(guān)聯(lián)的存活度量。在一些情況下,生成針對每一對服務(wù)實例-候選節(jié)點對的存活度量。在其他情況下,生成針對基于對填裝質(zhì)量度量和/或驅(qū)逐成本度量的評估而選擇的各服務(wù)實例-候選節(jié)點對(即,填裝質(zhì)量度量和/或驅(qū)逐成本度量被用于減少潛在節(jié)點候選的集合)的存活度量。在框816,使用填裝質(zhì)量度量、驅(qū)逐成本度量和存活度量中的至少一部分來選擇要向其分配該服務(wù)實例的節(jié)點。該服務(wù)實例可能是低優(yōu)先級服務(wù)實例或高優(yōu)先級服務(wù)實例。在框818,將該服務(wù)實例部署在所選的節(jié)點處。
參考圖9,提供了示出用于優(yōu)化多優(yōu)先級服務(wù)實例分配的方法900的流程圖。最初,在框910,對于要被分配的服務(wù)實例,確定與候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量。在框912,選擇這些候選節(jié)點的子集作為用于分配該服務(wù)實例的第一潛在候選節(jié)點集合。在一些實施例中,可使用閾值來選擇最佳適應(yīng)節(jié)點的一部分。在框914,使用與第一潛在候選節(jié)點集合相關(guān)聯(lián)的驅(qū)逐成本度量來將第一潛在候選節(jié)點集減少成用于分配該服務(wù)實例的第二潛在候選節(jié)點集合。在一些實施例中,可選擇與至少驅(qū)逐成本相關(guān)聯(lián)的節(jié)點。在框916,使用與第二潛在候選節(jié)點集合相關(guān)聯(lián)的存活度量來將第二潛在候選節(jié)點集減少成用于分配該服務(wù)實例的第三潛在候選節(jié)點集合。在一些情況下,可選擇與針對所部署的服務(wù)實例的最長存活時間相關(guān)聯(lián)的節(jié)點。在框918,作出關(guān)于第三潛在候選節(jié)點集合是否包含單個節(jié)點的確定。如果如此,則選擇該節(jié)點來部署該服務(wù)實例,如框920處所指示的。如果并不如此,則在框922,使用與第三潛在候選節(jié)點集合中的候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量來選擇要向其分配給服務(wù)實例的最優(yōu)節(jié)點。將該服務(wù)實例分配給所選的節(jié)點,如框924處所指示的。
現(xiàn)轉(zhuǎn)至圖10,提供了示出用于優(yōu)化多優(yōu)先級服務(wù)實例分配的方法1000的流程圖。最初,在框1010,標識要被分配的服務(wù)實例是高優(yōu)先級服務(wù)實例還是低優(yōu)先級服務(wù)實例。如果確定服務(wù)實例是高優(yōu)先級服務(wù)實例,則使用填裝質(zhì)量度量、驅(qū)逐成本度量和存活度量中的一個或多個的第一集合來確定要向其分配該高優(yōu)先級服務(wù)實例的節(jié)點,如框1012處所指示的。在另一方面,如果確定 服務(wù)實例是低優(yōu)先級服務(wù)實例,則使用填裝質(zhì)量度量、驅(qū)逐成本度量和存活度量中的一個或多個的第二集合來確定要向其分配該低優(yōu)先級服務(wù)實例的節(jié)點,如框1014處所指示的。
在簡要描述了本發(fā)明各實施方式的概覽之后,以下描述其中可實現(xiàn)本發(fā)明的各實施方式的示例性操作環(huán)境,以便為本發(fā)明各方面提供通用上下文。首先具體參考圖11,示出了用于實現(xiàn)本發(fā)明的各實施例的示例性操作環(huán)境,并將其概括地指定為計算設(shè)備1100。計算設(shè)備1100只是合適的計算環(huán)境的一個示例,并且不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該將計算設(shè)備1100解釋為對所示出的任一組件或其組合有任何依賴性或要求。
本發(fā)明可以在由計算機或諸如個人數(shù)據(jù)助理或其他手持式設(shè)備之類的其他機器執(zhí)行的計算機代碼或機器可使用指令(包括諸如程序模塊之類的計算機可執(zhí)行指令)的一般上下文中描述。一般而言,包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等的程序模塊指的是執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的代碼。本發(fā)明可以在各種系統(tǒng)配置中實施,這些系統(tǒng)配置包括手持式設(shè)備、消費電子產(chǎn)品、通用計算機、專用計算設(shè)備等等。本發(fā)明也可以在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的分布式計算環(huán)境中實施。
參考圖11,計算設(shè)備1100包括直接或間接耦合以下設(shè)備的總線1110:存儲器1112、一個或多個處理器1114、一個或多個呈現(xiàn)組件1116、輸入/輸出端口1118、輸入/輸出組件1120、和說明性電源1122??偩€1110表示可以是一條或多條總線(諸如地址總線、數(shù)據(jù)總線、或其組合)。雖然為了清楚起見利用線條示出了圖11的各框,但是實際上,各組件的輪廓并不是那樣清楚,并且比喻性地來說,線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示設(shè)備等呈現(xiàn)組件認為是I/O組件。而且,處理器也具有存儲器。可以認識到,這是本領(lǐng)域的特性,并且重申,圖11的圖示只是例示可結(jié)合本發(fā)明的一個或多個實施方式來使用的示例性計算設(shè)備。諸如“工作站”、“服務(wù)器”、“膝上型計算機”、“手持式設(shè)備”等分類之間沒有區(qū)別,因此它們?nèi)慷急徽J為是在圖11的范圍之內(nèi)的并且被稱為“計算設(shè)備”。
計算設(shè)備1100通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計算設(shè)備1100訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可 移動和不可移動介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。
計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的任何方法或技術(shù)實現(xiàn)的易失性與非易失性、可移動與不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需信息且可以由計算設(shè)備訪問的任何其它介質(zhì)。計算機存儲介質(zhì)將信號本身排除在外。
通信介質(zhì)通常以諸如載波或其他傳輸機制之類的已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并且包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”是指使得以在信號中編碼信息的方式來設(shè)置或改變其一個或多個特性的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學、RF、紅外及其他無線介質(zhì)之類的無線介質(zhì)。上述的任意組合也應(yīng)包含在計算機可讀介質(zhì)的范圍內(nèi)。
存儲器1112包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì)。存儲器可以是可移動的,不可移動的,或兩者的組合。示例性硬件設(shè)備包括固態(tài)存儲器、硬盤驅(qū)動器、光盤驅(qū)動器等。計算設(shè)備1100包括從諸如存儲器1112或I/O組件1120等各種實體讀取數(shù)據(jù)的一個或多個處理器。呈現(xiàn)組件1116向用戶或其他設(shè)備呈現(xiàn)數(shù)據(jù)指示。示例性呈現(xiàn)組件包括顯示設(shè)備、揚聲器、打印組件、振動組件等等。
I/O端口1118允許計算設(shè)備1100邏輯上耦合至包括I/O組件1120的其他設(shè)備,其中某些設(shè)備可以是內(nèi)置的。說明性組件包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀、打印機、無線設(shè)備等等。
本文中描述的各實施例涉及優(yōu)化對多優(yōu)先級服務(wù)實例的分配。如可理解的,許多不同的安排和范圍被包括在各實施例的變型內(nèi),接著是它的一些示例。在一個實施例中,系統(tǒng)被配置用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配。該系統(tǒng)包括被配置用于標識與候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量的分配器組件,每一個填裝質(zhì)量度量都指示要被分配的服務(wù)實例利用節(jié)點內(nèi)的資源的程度。分配器組件還被配置用于基于填裝質(zhì)量度量來選擇候選節(jié)點的第一節(jié)點子集。分配器組件 還被配置用于基于與候選節(jié)點的至少第一部分相關(guān)聯(lián)的驅(qū)逐成本度量來選擇候選節(jié)點的第二節(jié)點子集,每一個驅(qū)逐成本度量都指示將服務(wù)實例從節(jié)點中驅(qū)逐使得可將另一服務(wù)實例分配到那個節(jié)點的成本。分配器組件還被配置用于基于與候選節(jié)點的至少第二部分相關(guān)聯(lián)的存活度量來選擇候選節(jié)點的一個或多個節(jié)點的第三子集,其中存活度量指示該服務(wù)實例在被部署到相應(yīng)節(jié)點的情況下不將被驅(qū)逐或?qū)⒋婊畹某潭?。分配器組件還被配置用于根據(jù)填裝質(zhì)量、驅(qū)逐成本和存活度量將服務(wù)實例分配給第一節(jié)點子集、第二節(jié)點子集或有一個或多個節(jié)點的第三子集中的一個節(jié)點。
在另一方面,提供了一種用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的計算機實現(xiàn)的方法。該方法包括確定與可向其分配服務(wù)實例的每一候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量。該方法還包括確定與可向其分配該服務(wù)實例的候選節(jié)點的至少一部分相關(guān)聯(lián)的驅(qū)逐成本,每一個驅(qū)逐成本都指示將服務(wù)實例從相應(yīng)的節(jié)點處驅(qū)逐以使得可將另一服務(wù)實例分配到那個節(jié)點的成本。該方法還包括利用填裝質(zhì)量度量和驅(qū)逐成本中的至少一部分來從候選節(jié)點中選擇要向其分配該服務(wù)實例的節(jié)點。
在又一方面,提供了具有包含在其上的計算機可執(zhí)行指令的一個或多個計算機存儲介質(zhì),該計算機可執(zhí)行指令在被一個或多個處理器執(zhí)行時,使得一個或多個處理器執(zhí)行一種用于優(yōu)化對多優(yōu)先級服務(wù)實例的分配的方法。該方法包括標識與可向其分配服務(wù)實例的每一候選節(jié)點相關(guān)聯(lián)的填裝質(zhì)量度量。該方法還包括標識與可向其分配該服務(wù)實例的候選節(jié)點的至少一部分相關(guān)聯(lián)的存活度量,每一個存活度量指示該服務(wù)實例在被部署到相應(yīng)節(jié)點的情況下不將被驅(qū)逐或?qū)⒋婊畹某潭?。該方法還包括利用填裝質(zhì)量度量和存活度量中的至少一部分來從候選節(jié)點中選擇要向其分配該服務(wù)實例的節(jié)點。
此處相對于各具體實施例描述了各實施例,各具體實施例在所有方面都旨在是說明性而非限制性的。不偏離本發(fā)明范圍的情況下,各替換實施例對于本發(fā)明所屬領(lǐng)域的技術(shù)人員將變得顯而易見。
從前面的描述可以看出,本發(fā)明很好地適用于實現(xiàn)上文所闡述的所有目的和目標,并且具有對于該結(jié)構(gòu)是顯而易見且固有的其他優(yōu)點。
可以理解,某些特征和子組合是有用的,并且可以在不參考其他特征或子 組合的情況下使用。這由權(quán)利要求所構(gòu)想的,并在權(quán)利要求的范圍內(nèi)。