對虛擬機池中的資源的分派的制作方法
【專利摘要】提供了用于分派和關聯云計算環境中的資源的系統和方法。可以將云計算環境中的虛擬機作為專用、備用或可搶占機器來分派,或者將其與對應于用戶的池相關聯。各種狀態向用戶提供預留期望水平的資源的能力,同時還允許云計算環境的運營者增加資源利用。
【專利說明】對虛擬機池中的資源的分派
[0001]背景
[0002]用于執行大規模計算作業的常規方法通常涉及用戶購買計算機硬件來用作計算平臺。這可導致各種低效,因為許多典型用戶具有峰值水平的計算需求,該計算需求不同于對計算資源的常規需求。購買足夠的硬件以滿足峰值資源需求可導致對計算資源的低使用率。或者,使硬件與常規使用水平匹配可使得一些期望計算變得不切實際。最近,在處理速度和網絡傳輸速度方面的改善已使得云計算環境變成本地計算平臺的可行替換。
[0003]概述
[0004]在各實施例中,提供了用于分派和關聯云計算環境中的資源的系統和方法。可以將云計算環境中的虛擬機作為專用、備用或可搶占機器來分派,或者將其與對應于用戶的池相關聯。各種狀態向用戶提供預留期望水平的資源的能力,同時還允許云計算環境的運營者增加資源利用。
[0005]提供本概述是為了以簡化的形式介紹將在以下【具體實施方式】中進一步描述的概念選擇。該概述不旨在標識所要求保護的主題的關鍵特征或本質特征,也不旨在獨立地用于幫助確定所要求保護的主題的范圍。
[0006]附圖簡述
[0007]下面將參考附圖詳細描述本發明,其中:
[0008]圖1示意性地示出適于在實現云計算環境時使用的系統或組件的示例。
[0009]圖2示意性地示出適于在實現云計算環境時使用的系統或組件的示例。
[0010]圖3示意性地示出適于在實現云計算環境時使用的系統或組件的示例。
[0011]圖4示意性地示出適于在實現云計算環境時使用的系統或組件的示例。
[0012]圖5-9示意性地示出根據本發明的一實施例的管理一個或多個虛擬機池的示例。
[0013]圖10示意性地示出適于執行本發明的各實施例的計算設備。
[0014]圖11-13示出根據本發明的過程流的示例。
[0015]詳細描述
[0016]概覽
[0017]由于通過網絡的數據傳輸速度的增加和其他網絡特征的改善,越來越有可能在其中計算資源分布在大型網絡上的環境中執行大規模計算任務。處于第一位置的用戶可向計算服務提交作業或計算任務,并且使該任務在該用戶不直接知曉的計算機群組上執行。用于執行用戶的任務的計算資源可分布在多個位置上。位于一個或多個位置中的第一計算資源群組可以存儲用于執行用戶的計算任務的數據和其他信息,而位于相同位置或者可能位于一組不同的一個或多個位置中的第二計算資源群組可被用于執行該計算任務。
[0018]對各種分布式計算資源的訪問允許用戶執行作業任務,而無需關心這些計算資源位于何處。分布式資源還為用戶提供了擴展(scale out)(或收縮(scale in))所使用的資源量以便滿足計算任務的目標(諸如用指定時間完成該計算任務)的機會。然而,為用戶提供這種靈活性對分布式計算資源的運營者(或擁有者)提出了許多挑戰。為了滿足需求,分布式資源網絡的運營者將優選地具有足夠多的可用資源來滿足在峰值需求時間的資源請求。
[0019]定義
[0020]“賬戶”是云計算環境內的全局唯一標識實體。在一實施例中,下面討論的所有資源和任務均在一賬戶范圍內。通常,用戶將在使用云計算系統的資源之前先創建賬戶。在創建賬戶之后,用戶可以使用該賬戶向該系統提交工作項并且基于這些工作項來管理用于執行作業的資源。
[0021]“工作項”是要在云計算環境中運行的作業的靜態表示。工作項可以指定作業的各個方面,包括作業二進制代碼、指向要處理的數據的指針、以及可任選的啟動用于執行該作業的任務的命令行。此外,工作項可以指定重現時間表、優先級和約束。例如,工作項可指定在每天下午5點啟動。
[0022]“作業”是工作項的運行實例。作業包含攜手執行分布式計算的任務集合。這些任務可在云計算環境中的一個或多個虛擬機上運行。
[0023]“任務”是作業的基礎執行單元。每個任務都在虛擬機上運行。用戶可以為每個任務指定給命令行的附加輸入以及到輸入數據的指針。在任務的執行過程期間,該任務可以在其在執行該任務的虛擬機上的工作目錄下創建文件的分層結構(hierarchy)。
[0024]“作業管理器任務”(JM任務)是作業中的特殊任務。作業管理器任務是可任選的,因此一些作業可在不使用JM任務的情況下執行。作業管理器任務為作業內的所有任務提供單一控制點,并且可被用作該作業的“主”任務。如果一作業具有JM任務,則該系統將該JM任務作為該作業中的第一個任務來啟動。該JM任務隨后可以向該作業提交更多任務,并且它可以監視這些任務的進程并且控制何時提交下一批次任務。以此方式,JM任務可以協調對作業中的所有任務的調度并且管理各任務之間的依賴關系。優選地,如果該作業管理器任務的節點或虛擬機發生故障,則可以自動在另一虛擬機上重啟該JM任務,以便該JM任務總是為該相應作業而運行。此外,用戶可以向該系統指定:一旦該JM任務完成,該系統就可以終止相應作業中的所有任務。
[0025]虛擬機池
[0026]虛擬機指的是處理能力的邏輯單元。虛擬機可與物理處理器具有一對一的對應關系,或者一虛擬機可對應于多個處理器,或者虛擬機可表示在一個或多個處理器上的處理時間的百分比。向池分派的虛擬機可在任何給定時間執行該池的一個或多個任務。
[0027]在各實施例中,可潛在地基于工作項來執行作業的各虛擬機在使用之前被分派給對應于該工作項的賬戶(即,用戶)的至少一個池。“池”是虛擬機的邏輯群組。工作項總是具有至少一個相關聯的池來運行與該工作項相對應的(諸)作業。每個賬戶可創建該賬戶獲得訪問權的一個或多個池,以供在執行與該賬戶相關聯的工作項時使用。通常,賬戶對與該賬戶相關聯的各池具有排他訪問權。可在用戶提交工作項時創建池,或者可以將工作項與現有的池相關聯。池可被系統自動創建以執行作業。例如,在每天的特定時間運行的重現工作項可通過使池被自動創建以在開始時間執行該作業來處理。每天在完成該重現工作項之后可刪除該池。可任選地,可關聯一池以供與單個工作項、單個作業、或與一賬戶相對應的工作項的另一子集一起使用。
[0028]當用戶提交一工作項時,可將該工作項與一個或多個虛擬機池相關聯。可以按照任何方便的方式將虛擬機組織在池內。例如,無論虛擬機的底層處理器的地理位置如何,都可以將所有虛擬機組織在單個池中或分派給單個池。另一選項是基于地理位置來組織虛擬機,使得池的所有虛擬機均處于給定地理位置。又一選項是按照不同于地理位置的基礎來組織虛擬機,諸如對其他變量(例如,存儲資源、網絡等待時間、用戶位置/偏好、安全性要求)的接近度。又一選項是在創建工作項或作業時自動創建池,并且隨后在該工作項或作業結束時拆卸該池。
[0029]虛擬機池表示一種用于組織虛擬機的方法。虛擬機的另一組織單元是虛擬機群集。虛擬機群集表示由云環境中的過程(例如任務承租者過程)一起管理的虛擬機組群。虛擬機群集中的虛擬機可對應于以方便的方式分組在一起的物理機。例如,虛擬機群集可對應于位于同一地理區(諸如,位于美國或美國東北部)的物理機群組;位于同一通用位置(諸如,位于像西雅圖或圣地亞哥郡等城市或大都市區域)的物理機群組;或位于同一特定位置(諸如位于形成計算或數據中心的一個或多個互連或鄰近建筑)的物理機群組。另一選項是基于具有有利數據傳輸速率的物理機群組用云環境中的特定存儲部分形成虛擬機群集。又一選項是基于處于給定位置的物理機來形成多個虛擬機群集。虛擬機池可跨越多個虛擬機群集。用于管理虛擬機群集(諸如任務承租者)的過程可分派和解除分派來自虛擬機池的各虛擬機。任務承租者(或用于管理虛擬機群集的其他過程)也可基于與群集內的虛擬機被分派給的池相對應的作業隊列來調度該虛擬機上的任務。當任務承租者需要附加的機器以便向虛擬機池分派足夠的數目時,該任務承租者可以從通用云計算環境獲得附加虛擬機。類似地,如果任務承租者具有多余的虛擬機,則該任務承租者向通用云計算環境返回這些多余的機器。
[0030]專用、備用、和可搶占(preemptible)機器
[0031]在將虛擬機分派給池時,可將該虛擬機作為兩個類型之一來分派。可將該虛擬機作為專用虛擬機或可搶占虛擬機分派給該池。當虛擬機處于池中時,該虛擬機作為專用還是可搶占的狀態也可以變化。
[0032]“專用”虛擬機是被分派給池的供被分派給該池的工作項/作業專門使用的機器。任選地,專用虛擬機可被分配以供一個或多個相關聯的工作項專門使用,而不是一般性地可用于被提交給池的任何作業。在虛擬機具有專用狀態時,該虛擬機被預留以供與該池相關聯的賬戶使用。專用機器不會被提供來自其他賬戶的資源,并且不會代表其他賬戶執行作業。
[0033]“可搶占”虛擬機是當前正代表賬戶執行池中的任務、但是不保證該虛擬機將持續被分派給那個池并對那個池可用的虛擬機。當可搶占虛擬機變得對池可用時,將該可搶占機器分派給那個池中。隨后可提供該可搶占機器,并使用該可搶占機器來執行該池的作業。該可搶占機器可通過任何方便的方法而變得對該池可用,諸如通過(代表相應帳戶)使該池在資源拍賣中贏得在該可搶占虛擬機上的處理時間。
[0034]分派專用和可搶占虛擬機的附加因素是對該虛擬機的請求是否包括對特定虛擬機群集的親和力。對虛擬機群集的親和力可基于各種理由。對虛擬機群集的親和力的請求的一個示例由具有以下虛擬機的期望和需要引起:該虛擬機具有對用于將在虛擬機上執行的作業的數據存儲的改善的訪問(例如,高數據傳輸速度)。對于這種類型的存儲親和力,該親和力請求可指定對一個或多個虛擬機群集中具有對數據所需訪問的虛擬機的分派。這可表示例如對應于具有到數據存儲中心的所需物理數據連接的物理機的虛擬機群組。另一類型的親和力是作業親和力。由虛擬機執行的一些類型的作業可涉及各虛擬機之間對相同或類似作業起作用的大量通信。在作業親和力場合中,使對某作業起作用的所有虛擬機都位于單個虛擬機群集(或其他虛擬機組織單元)中以便促成在這些虛擬機之間的消息傳遞可能是有利的。從單個虛擬機群集選擇虛擬機可對應于選擇與同一地理位置中的物理機相對應的虛擬機。
[0035]變得可用于作為可搶占虛擬機用于一賬戶的虛擬機通常將是云計算環境中具有另一目的的虛擬機。例如,可搶占虛擬機的一個來源是云計算環境所有者/運營者出于災難恢復目的而提供的虛擬機。為了提供穩定操作,云計算環境可包括被預留的一組或多組虛擬機。這些預留虛擬機可用于取代由于處理器故障、網絡故障、或導致云環境的一部分不再適于執行作業的任何其他種類的事件而失去的資源。當被分配給一池的一個或多個專用虛擬機由于一事件而被失去時,可使用預留的虛擬機來取代該失去的虛擬機。這改善了云計算環境中的資源的可用性。然而,由于期望故障事件是稀少的,因此預留災難恢復機器通常將意味著大量虛擬機空閑并等待被使用。可將這些虛擬機的被指定用于處理故障事件的(PU循環周期作為可搶占虛擬機分派給各池以運行工作項或作業,而不是浪費這些虛擬機的這些CPU循環周期。如果故障發生并且該系統需要撤走可搶占資源以滿足專用資源的要求,則在這種虛擬機上運行的可搶占作業在行得通時就將被停止(并且可能立即被停止),以便該可占用虛擬機可被用于其取代失去或故障資源的原始目的。
[0036]可搶占機器的另一來源是能力多余的虛擬機。通常,任何網絡的峰值負載將不同于平均負載。結果是,具有足夠資源來處理峰值負載情形的計算環境在其他時間通常將具有多余的資源可用。這些多余資源提供了資源緩沖。當用戶作出對附加專用虛擬機的請求時,多余的虛擬機可用于滿足用戶的請求。當云計算環境具有小于專用機器的峰值負載的負載時,一個或多個虛擬機將空閑。可在搶占基礎上將這些虛擬機的被指定用于提供空閑能力的CPU循環周期分派給用戶和池,而不是浪費這些虛擬機的這些CPU循環周期。隨著對專用虛擬機的請求的負載的增加,在這些多余虛擬機上運行的可搶占作業一行得通就將被停止(并且可能被立即停止)。這允許可搶占虛擬機被用于其在需要時提供附加專用資源的原始目的。附加地或替代地,專用機器的負載的一些增加將由所排定的對專用機器的請求引起。如果虛擬機將由于在經排定的時間被用作專用機器而變得不可用,則被分配給該虛擬機的可搶占作業可在該經排定的時間之前被停止以便允許從該可搶占作業到專用資源的有序轉變。
[0037]在一些情形中,用戶可能期望在某個將來時間具有對更大量的專用機器的訪問權。在該情形下,用戶可將一個或多個虛擬機作為備用虛擬機來預留。“備用”的虛擬機預留是與一池或賬戶相關聯的、供要分派給該池或賬戶的虛擬機在將來的某時使用的預留。提供虛擬機以供使用可能僅意味著在云計算環境中標識和/或預留足夠的虛擬機資源,使得虛擬機資源在被請求時將可用于轉換成專用虛擬機。任選地,提供備用機器還可包括向虛擬機提供數據、可執行的代碼或其組合。
[0038]備用虛擬機預留不是對虛擬機的分配或分派。相反,備用虛擬機預留會預留在將來使空閑或可搶占虛擬機轉換成向與該備用預留相關聯的用戶或池分派的專用虛擬機的權力。可搶占作業可以是與關聯于備用預留的池或賬戶、另一不同的池、或另一不同的賬戶相關聯的作業。當備用預留由池或賬戶作出時,不將來自虛擬機群集的虛擬機分派給該池或賬戶。相反,保持與該虛擬機群集相對應的備用預留的數目的計數,使得足夠數目的空閑或可搶占虛擬機可用于滿足與該虛擬機群集相對應的備用預留。
[0039]虛擬機備用預留可出于各種理由而與池相關聯。備用機器的一個用途是針對具有僅在特定時間幀期間發生的高優先級計算作業的用戶。例如,金融公司可能希望對一個或多個金融市場的日常活動(諸如股票交易或商品交易)執行分析。金融市場可能按預定時間表開市和閉市,諸如在上午9:30開市并在下午4:00閉市。金融公司想要在金融市場開市的時間聚集數據以用于執行分析或模擬。分析的目標是在下一天市場開始之前為他們的員工提供信息。這種分析可能需要大量的虛擬機,但是虛擬機僅在例如從下午6:00直到第二天早晨3:30的時間之間被需要。在此時間期間,金融公司期望保證虛擬機的可用性。在當天的其他時間,該金融公司不需要這些機器。將虛擬機預留與金融公司的賬戶關聯可以達到這一目標。作為支付預留價格的交換,向金融公司保證機器在所需時間期間的可用性。在所需時間窗口之外,這些虛擬機可用作該金融公司和/或其他用戶的可搶占機器。
[0040]備用預留可用于根據基于時間的標準或基于負載的標準將空閑或可搶占虛擬機轉換成向對應于用戶的池分派的專用機器。在某些情形下,備用預留可導致至少部分地基于預定的時間和/或日期將空閑或可搶占虛擬機轉換成專用虛擬機。在這樣的情形下,基于備用預留將可搶占虛擬機轉換成專用虛擬機可在排定的可用性事件之前按有序方式停止。這被定義成具有基于時間的標準的備用預留。基于時間的標準不同于基于負載的標準,基于負載的標準被用于定義基于負載的閾值。基于負載的閾值對應于基于一個或多個云資源的使用和/或性能的閾值。優選地,基于負載的閾值不包括對基于時間的標準的使用。除了基于時間的標準和基于負載的標準以外,用于將對應于備用預留的一個或多個虛擬機轉換成專用虛擬機的又一選項是基于來自用戶或系統管理員的請求。
[0041]備用預留的另一用途是允許在擴展作業時的改善的性能。例如,零售商店可以使用云計算資源來在假日之前處理購物季期間的附加在線流量,諸如用于瀏覽零售商的網站并下訂單的在線流量。基于過去的經驗,零售商期望一定水平的在線活動,并且預留相應數量的專用虛擬機。然而,在在線活動大于預期的情況下,零售商還經由備用預留來預留附加的機器。零售商隨后可以設置一個或多個閾值,該一個或多個閾值指示高于預期的活動水平。隨著這些閾值的出現,可使用備用預留來將空閑或可搶占虛擬機轉換成專用機器以允許零售商處理此附加在線流量,而無需使零售商的顧客經歷慢響應時間。在此情形中,備用預留可在不可預測的時間被轉換為專用機器,因為它可能不知道活動閾值何時將被滿足。當活動閾值被滿足時,空閑或可搶占虛擬機被轉換成向與備用預留相關聯的池分派的專用虛擬機。如果可搶占任務在轉換之前正在虛擬機上運行,則該可搶占任務在將該虛擬機轉換成專用機器之前被停止。可任選地,活動閾值不包括基于時間的標準。
[0042]分布式網絡環境中的計算資源的組織的示例
[0043]云計算環境的用戶通常希望使用云計算資源來執行作業。這些作業通常涉及對存儲在可經由云計算環境來訪問的各位置中的數據執行作業。供運營者提供云計算環境的一種方式是將該環境作為多個層來提供。圖1示意性地示出適于執行云計算環境中的任務的系統的示例。圖1中的系統包括任務運行時層110、第三方任務運行時層120、資源管理層130以及調度和執行層140。
[0044]在圖1中示出的實施例中,任務運行時層110負責為來自用戶105的任務設置執行環境以及安全上下文。任務運行時層110還可啟動任務并監視任務的狀態。任務運行時層110可采用在每個虛擬機上運行的系統代理的形式。該任務運行時層還可包括鏈接到用戶的任務可執行代碼的運行時庫。具有作為任務運行時層110的一部分的運行時庫可潛在地向由該系統代理執行的任務提供更豐富的能力。運行時庫的示例包括:用于允許任務間的快速通信的一個或多個高效通信庫;用于從其他虛擬機和/或其他任務讀取文件的高效遠程文件訪問庫支持;用于允許任務進行檢查點(例如,進入到二進制大對象中)和恢復的檢查點庫;日志記錄庫;以及用于提供跨虛擬機池內的執行給定任務的虛擬機使用的分布式文件系統的庫。
[0045]第三方運行時層120允許附加的運行時被構建在任務運行時層110之上并在任務運行時層110之上運行。第三方任務運行時層120還可提供用于協調作業的各任務的運行的附加能力。示例可包括屬于用于提供要跨執行虛擬機池內的給定任務的各虛擬機使用的分布式文件系統的庫的MapReduce (映射減少)運行時。這允許用戶按針對用戶的作業或任務定制的方式組織云計算環境。在一些實施例中,作業管理器任務可促成允許用戶使用第三方運行時層來運行和/或控制云計算資源。
[0046]資源管理層130涉及管理云計算環境中可用的計算資源。一個選項是使資源管理層130以三個不同的層級管理這些資源。在第一層級,資源管理層130管理與作業(S卩,工作項的執行)相關聯的虛擬機的分配和解除分配以及存儲在每個虛擬機上的與任務相關聯的文件。在第二層級,將與作業相關聯的虛擬機分組成各機器池。池可包含與一個或多個作業和/或工作項相關聯的虛擬機。取決于該實施例,單個池可跨越多個虛擬機群集,諸如一數據中心中的所有虛擬機群集、跨一地理區中的多個數據中心的多個虛擬機群集,或跨多個地理區中的各數據中心的多個虛擬機群集。單個池可包含大量虛擬機,諸如數百萬的虛擬機。所述虛擬機可被包含在大量的池中,諸如多達數十億個池中。在第三層級,資源管理層管理給定池群組中可用于與各作業或工作項關聯的虛擬機的量。這允許對基于系統的當前負載使用的計算資源的量進行動態調整。此外,未被當前池群組使用的虛擬機可被釋放回云計算環境以供并入其他池群組。
[0047]在圖1中示出的實施例中,調度和執行層140管理用戶正執行的工作項、作業和任務。調度和執行層140做出調度決策并且負責啟動作業和任務以及在故障時重試。這種調度和執行層140可包括用于以各個層級管理作業和/或任務的組件。
[0048]以上描述的層可以在多個地理位置處包括處理器的云計算環境中實現。圖2示意性地示出不同位置處的處理器可如何被集成在單個云計算架構中的示例。
[0049]在圖2中,一個或多個任務承租者215可被用來管理虛擬機池。任務承租者215可維持一組虛擬機。一個或多個用戶的作業可在任務承租者215內作為一個或多個虛擬機池的一部分的虛擬機上運行。一個或多個任務承租者215可在給定地理區域中使用。任務承租者215的責任可包括維護該組虛擬機并基于該任務承租者內的資源利用來動態增長或收縮該任務承租者。這允許任務承租者215增加任務承租者內的虛擬機的數量以便容納增加的顧客需求。這還允許任務承租者215釋放未使用的虛擬機以便所述虛擬機能夠被分配給數據中心中的處理其他顧客的服務的其他托管服務。任務承租者215的另一責任可以是實現池分配/解除分配/管理邏輯的一部分。這允許任務承租者215參與確定如何將虛擬機分派給與顧客的任務相關聯的池。任務承租者215還可負責在該任務承租者內的各虛擬機上調度和執行任務。
[0050]在圖2的實施例中,提供了控制多個任務承租者215的一個或多個任務位置服務225。此多個任務承租者可對應于給定地理區中的所有任務承租者、來自整個世界的各個任務承租者、或任務承租者的任何其他方便的分組。在圖2中,示出了服務于被標記為“美國北部”和“美國南部”的區域的任務位置服務225。任務位置服務225的責任可包括管理該給定地理區域的任務帳戶。任務位置服務225還可提供用于允許用戶與該云計算環境交互的應用編程接口(API)。這些API可包括與虛擬機池、池管理邏輯、以及跨越給定地理區域中的任務承租者的池管理邏輯的協調相關聯的處理API。這些API還可包括用于處理用戶所提交的任務、以及用于維護、調度以及終止與該用戶任務相關聯的工作項或作業的API。這些API可進一步包括用于對地理位置中的所有工作項、作業、任務和池進行統計數據收集、聚集和報告的API。此外,這些API可包括用于允許基于虛擬機的現貨市場短期地將可用虛擬機作為可搶占虛擬機向用戶拍賣的API。這些API還可包括用于計量使用并且提供計費支持的API。
[0051 ] 這些任務位置服務225可被全局位置服務235鏈接在一起。全局位置服務235可負責賬戶創建和賬戶管理,包括結合任務位置服務承租者225來管理任務賬戶。這包括在存在主要數據中心災難的情況下,負責災難恢復并負責工作項和作業的可用性。這可包括由于數據中心出于任何原因不可用而在不同的位置運行工作項或作業。這還可包括允許顧客將他們的工作項、作業和池從一個數據中心遷移到另一數據中心。通常,將僅存在一個活躍的全局位置服務235。該活躍全局位置服務235與各個任務位置服務225以及各用于管理數據存儲的服務組件(未示出)通信。全局位置服務可維護全局賬戶命名空間237。
[0052]作為圖2中的系統的操作的示例,假想的顧客或用戶217可經由全局位置服務235所提供的接口來創建任務賬戶。在此示例中,該假想的顧客被稱為Sally。創建任務賬戶的用戶請求可任選地指定需要在其中創建賬戶的地理區域。在該示例中,Sally請求與美國北部區域相關聯的賬戶。作為響應,全局位置服務235聯系與所請求的地理區域(例如,美國北部)相對應的任務位置服務225以便創建該賬戶。如果區域未被請求,則該任務賬戶可在用任何方便的方法選擇的區域(諸如基于與請求用戶相關聯的位置)中創建。全局位置服務235還聯系至少另一區域(諸如美國南部),使得該賬戶的災難恢復副本被創建。可任選地,Sally可請求美國南部用作災難恢復的故障轉移區域,或者美國南部可被該系統用任何方便的方法自動分派。任務位置服務225為處于其地理區域中的所有賬戶維護所有信息。當成功地將該賬戶創建在針對美國北部和美國南部的任務位置服務225中后,全局位置服務235為Sally的賬戶注冊指向針對美國北部的任務位置服務225的虛擬IP地址的任務服務端點。例如,域名服務(DNS)記錄可被創建以將諸如“sally, task.core, windows,net”等主機名映射到美國北部中的任務位置服務225的虛擬IP地址。這完成了對Sally的任務賬戶的創建。如果在將來的時間發生數據中心災難,則全局位置服務235可將該DNS記錄更新為指向美國南部。
[0053]在創建該賬戶之后,顧客Sally可以訪問該賬戶并且發送請求以訪問用于針對主機名“sally, task.core, windows, net”與云計算環境進行交互的API。例如,Sally可訪問API以發出創建新工作項或任務的請求。DNS服務器隨后可以解析該主機名,并且該請求將被路由到正確的任務位置服務承租者225。在此示例中,該請求被路由到針對美國北部的任務位置服務承租者225,該任務位置服務承租者處理該請求并創建所請求的工作項、作業或任務。
[0054]圖3示出了對任務位置服務的潛在配置。在圖3中示出的配置中,任務位置服務可包括一個或多個賬戶服務器321。該賬戶服務器處理針對給定地理區域中的帳戶的帳戶管理,包括創建、刪除、或屬性更新。帳戶前端322用作賬戶服務的前端節點。賬戶前端322在該圖中所示出的賬戶虛擬IP地址324后。帳戶前端322處理來自全局位置服務的帳戶API請求,諸如用于創建帳戶或刪除帳戶的API請求
[0055]圖3中的配置還包括一個或多個池服務器331。池服務器331處理針對給定地理區域中的虛擬機池的池管理和池事務。池服務器331處理池創建、刪除和屬性更新。池服務器331還管理跨多個任務承租者的高級虛擬機分配算法。虛擬機分配可將虛擬機與給定用戶的存儲的連接性納入考慮。池服務器還可執行與虛擬機的分配有關的其他任務。
[0056]圖3的配置還包括一個或多個工作項或作業調度器(WIJ) 336。WIJ調度器336處理對工作項和作業的創建、刪除和更新。此外,如果用戶請求了在工作項或作業開始或結束時對池的自動創建和/或破壞,則WIJ調度器336可發起對與這些工作項或作業相關聯的池的創建和刪除。WIJ調度器336還使用用于縮放的類屬劃分機制。在一實施例中,在每個任務位置服務中存在多個WIJ調度器336,并且每個WIJ調度器處理一定范圍的工作項。
[0057]池服務器331和WIJ調度器336經由任務位置服務前端338接收來自用戶的請求。任務位置服務前端338還負責調用相應的組件來處理來自用戶的請求。任務位置服務前端338在如該圖中所示出的賬戶虛擬IP地址334后。
[0058]圖3中的配置還包括任務位置服務主機342。在一實施例中,任務位置服務主機342具有兩個主要的責任。首先,任務位置服務主機325用作用于為任務位置服務225中的相應服務器實現劃分邏輯的主機系統。此外,任務位置服務主機342可負責在每一現貨時段的開始處為該任務位置服務的整個地理區域計算可搶占虛擬機的新市場價。可以從各池服務器和任務承租者處收集當前投標和資源可用性信息,并據此計算該新市場價。或者,任務位置服務主機可向現貨價格市場服務發送該投標和資源可用性信息。它還作出對池服務器的關于跨地理區域中的所有任務承租者的可搶占虛擬機的高級分配指南。
[0059]為了跟蹤計算環境的活動和行為,任務位置服務主機342可與一個或多個統計數據聚集服務器355通信。統計數據聚集服務器負責收集和聚集任務、作業、工作項和池的詳細統計數據。該系統中的其他組件發出任務和虛擬機的精細粒度的統計數據。統計聚集服務器將來自任務層或虛擬機層統計數據的這些精細粒度的統計數據聚集為工作項、帳戶層、和/或池層統計數據。所述統計數據可被披露以經由API使用。此外,統計數據聚集服務器可負責為每個帳戶生成每小時計量記錄以供計費使用。
[0060]圖4示出任務承租者的一實施例的示例高級架構,該架構包括任務承租者的各組件及相應的責任的示例。如上所述,任務承租者可幫助管理虛擬機池。在圖4中示出的實施例中,任務承租者包括一個或多個任務承租者前端422。該任務承租者前端422位于任務承租者虛擬IP地址424之后,該任務承租者虛擬IP地址424內部用于任務承租者和其相應的任務位置服務之間的通信,該通信包括在任務位置服務和任務承租者之間傳遞請求。
[0061]在圖4所示的實施例中,任務承租者還包括任務調度器436。任務調度器436可負責做出任務承租者內的局部任務調度決策。任務調度器436決定在它所控制的每個虛擬機上運行什么任務。例如,用戶所提交的工作項或作業可具有一組隊列,所述隊列包含要被調度的任務的列表。任務調度器436從該組隊列中取得任務,選擇與該作業相關聯的池中的一個或多個可用虛擬機,并且聯系(諸)虛擬機來調度這些任務。任務調度器436還可基于與作業相關聯的優先級值來做出調度決策。此外,任務調度器436跟蹤任務承租者內的虛擬機。任務調度器436與池服務器一起工作以將虛擬機分配給池/從池解除分配虛擬機。此外,任務調度器436與所有虛擬機保持心跳、經由心跳關于池成員與虛擬機同步,并且控制虛擬機的重啟/重新映像。任務調度器436的又一功能可以是跟蹤任務承租者的大小。基于任務承租者內的虛擬機的當前利用率,任務調度器可以增長或收縮該任務承租者,以便該任務承租者具有足夠數量的虛擬機來運行與該任務承租者相關聯的任務。類似地,如果該任務承租者中有太多虛擬機保持空閑,則可以釋放這些虛擬機以供該數據中心中的其他托管服務使用。
[0062]圖4還示出了與任務承租者相關聯的多個虛擬機。在圖4中示出的實施例中,每個虛擬機包括任務虛擬機代理450 (TVM)。在一實施例中,任務虛擬機代理450負責啟動虛擬機上的任務,以及設置任務的目錄結構和許可。在該虛擬機上還配置了僅允許同一池內的虛擬機之間的流量(如果該池需要內部通信的話)的操作系統防火墻。如早先討論的,任務調度器436經由任務虛擬機代理450與該虛擬機保持心跳。這允許任務調度器436監視虛擬機的健康以及為任務虛擬機代理同步池成員信息。
[0063]作業在云計算環境中的執行的示例
[0064]提供了以下解說云計算環境中的專用虛擬機、備用虛擬機和可搶占虛擬機的操作和交互的假想示例。在這些示例中,將討論較小數目的虛擬機,以便簡化該描述和附圖。然而,本領域的技術人員將認識到本文中所描述的概念可擴大到任何所需數目的虛擬機。
[0065]名為Abel的用戶具有用于在云計算環境中運行作業的賬號。這些作業可用于執行任何類型的計算,諸如執行針對業務的數據挖掘和管理、執行科學計算、或處理零售顧客流量。在初始請求中,Abel請求5個專用機器和3個備用機器。在該示例中,這些計算具有保持在存儲中的關聯數據,并且Abel指示對具有較高通信速度和/或與Abel的數據的存儲服務器有較佳連接性的機器的偏好。
[0066]圖5示出了分派和管理機器以滿足Able的請求的示例。在圖5中,示出了兩個不同任務承租者510和511內的虛擬機。任務承租者510具有較高的數據傳輸速率和/或對應于與用于存儲Abel的數據的存儲520有改善的連接性的另一特征。期望利用該改善的連接性的用戶(諸如Abel)可以提交具有對任務承租者510的親和力的請求。圖5示出了各自都處于任務承租者510和511內的九個虛擬機。圖5中示出的虛擬機是代表性的,并且任何方便數目的附加機器可以要么由任務承租者510要么由任務承租者511來管理。
[0067]在圖5中,可示出任務承租者內處于若干狀態的機器。向對應于用戶的池分派的虛擬機可要么是專用機器(由指定(?)D來指示)要么是可搶占機器(由(?)P來指示)。此外,任務承租者內的機器可以為空閑。每一任務承租者還包括跟蹤所請求的與任務承租者相關聯的備用預留的數目的計數。如果備用預留不是具有對特定任務承租者(或其他虛擬機群集)的親和力的請求的部分,則備用預留可以與任何方便的任務承租者相關聯。可任選地,全局計數和/或每用戶計數可用于跟蹤備用預留的數目。這種全局計數和/或每用戶計數可被改為用于跟蹤任務承租者的備用預留,或者這種全局計數和/或每用戶計數還可被用于跟蹤任務承租者的備用預留。對于具有對任務承租者的親和力的備用預留,偏好跟蹤與任務承租者相關聯的備用預留。
[0068]在圖5中,Abel所請求的5個專用虛擬機分派自任務承租者510中的可用虛擬機。這些專用機器由圖5中的參考標記531來指示,并包括表示Abel-專用的指定A(D)。虛擬機546是與用戶David相關聯的專用機器一D(D)。在圖5中示出的初始配置中,其余的三個虛擬機557是空閑的。這三個與用戶Abel相對應的池的備用預留也由備用計數517跟蹤。Abel的備用預留由于所請求的對任務承租者510的親和力而與該任務承租者相關聯。任務承租者511包括2個作為專用機器向一個或多個其他用戶分派的機器562。這些機器被記為R(D)。任務承租者511中的其余虛擬機558是空閑的。由于來自其他用戶的備用預留,任務承租者511的備用計數518為7。任務承租者511的備用計數可指示有對承租者511的親和力的備用預留,或者該備用計數可反映備用預留與任務承租者511的名義關聯,使得某個任務承租者有責任保持足夠數目的非專用機器以滿足所有當前備用預留。
[0069]在向Abel的賬戶分派了這些虛擬機后,由Abel提交的任何工作項都是在專用機器531上執行的。如果沒有工作項可用,則這些專用虛擬機保持空閑。
[0070]在一時間段后,用戶Baker和Oliver決定使用一些附加計算資源。使用這些附加資源的計時并不緊急,以便Baker和Oliver各自請求5個可搶占虛擬機。在下一分派時間段期間,提供自Oliver和Baker兩者的投標足以贏得對所請求的五個可搶占虛擬機的分派。在該示例中,提供自Oliver的投標高于提供自Baker的投標。這導致Oliver的可搶占虛擬機與Baker的可搶占虛擬機相比具有更高的優先級。圖6示出用戶Oliver現在具有任務承租者510和511中作為可搶占虛擬機-O(P)-來分派的虛擬機672和673。這些機器被分派給與Oliver相對應的池。類似地,承租者511中的虛擬機677被分派給對應于Baker的池,如由B(P)指定所指示的。
[0071]圖7示出了向Abel分派的虛擬機在Abel的將備用預留轉換成專用虛擬機的請求之后的配置的示例。虛擬機546是作為專用機器被分派給David的,因此不會受到來自Abel的對附加專用機器的請求的影響。相反,來自任務承租者510的向Oliver分派的三個可搶占虛擬機被轉換成向Abel分派的專用虛擬機733。由于Abel將所有備用預留轉換成專用虛擬機,并且沒有請求任何附加的備用預留,因此任務承租者510的備用計數減少成零。
[0072]在圖7中示出的示例中,任務承租者510中向Oliver分派的虛擬機由于Abel所請求的親和力而被選擇供搶占。然而,Oliver對可搶占虛擬機的投標大于Baker的投標,從而導致向Oliver分派的可搶占虛擬機有更高的優先級。為了恢復Oliver的更高優先級可搶占虛擬機,可將來自任務承租者511的三個虛擬機分派給Oliver。通常,在來自一個池的可搶占虛擬機向另一個池中的可搶占虛擬機的分派方面的改變發生在新分派時間段的開始處。然而,由于Oliver因Abel對專用虛擬機的請求的取代(displacement),可將任務承租者511中的可搶占機器重新分派給Oliver,而無需等待分派時間段的結束。這在圖8中由機器874作為可搶占虛擬機向Oliver的分派示出。在該示例中,重新分派給Oliver的虛擬機將通過選擇具有最低優先級的虛擬機來選擇。這可表示為空閑的虛擬機、對應于最低投標的可搶占虛擬機、或者處于另一原因而具有最低優先級的可搶占虛擬機。
[0073]在完成了多個所需計算作業后,Abel對計算資源的需求返回到初始級別。人工地或自動地,Abel請求到5個專用機器和3個備用機器的資源減少。該減少請求的結果在圖9中示意性地示出。Abel所請求的專用資源方面的減少導致可用虛擬機的數目的減少。這允許Baker對可搶占機器的請求的其余部分被履行,如虛擬機978所指示的。任務承租者510的備用計數也被再次增加到三,以反映Abel所請求的具有對承租者510的親和力的備
用預留。
[0074]附加實施例
[0075]在簡要描述了本發明的各實施例的概覽后,現在描述適于實現虛擬機的示例性操作環境。概括地參考附圖,并首先具體參考圖10,示出了用于實現本發明的各實施例的示例性操作環境,并將其概括地指定為計算設備1000。計算設備1000只是合適的計算環境的一個示例,并且不旨在對本發明的使用范圍或功能提出任何限制。也不應該將計算設備1000解釋為對所示出的任一組件或其組合有任何依賴性或要求。
[0076]本發明的各實施例可以在由計算機或諸如個人數據助理或其它手持式設備之類的其它機器執行的計算機代碼或機器可使用指令(包括諸如程序模塊之類的計算機可執行指令)的一般上下文中描述。一般而言,包括例程、程序、對象、組件、數據結構等的程序模塊指的是執行特定任務或實現特定抽象數據類型的代碼。本發明可以在各種系統配置中實施,這些系統配置包括手持式設備、消費電子產品、通用計算機、更專用計算設備等等。本發明也可以在其中任務由通過通信網絡鏈接的遠程處理設備執行的分布式計算環境中實踐。
[0077]繼續參考圖10,計算設備1000包括直接或間接耦合以下設備的總線1010:存儲器1012、一個或多個處理器1014、一個或多個可任選的呈現組件1016、輸入/輸出(I/O)端口1018、可任選的I/O組件1020、和說明性電源1022。總線1010表示可以是一條或多條總線(諸如地址總線、數據總線、或其組合)。雖然為了清楚起見利用線條示出了圖10的各框,但是實際上,各組件的輪廓并不是那樣清楚,并且比喻性地來說,線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示設備等呈現組件認為是I/O組件。另外,許多處理器具有存儲器。發明人關于此點認識到這是本領域的特性,并重申,圖10的圖示只是可以結合本發明的一個或多個實施例來使用的示例性計算設備的例示。諸如“工作站”、“服務器”、“膝上型計算機”、“手持式設備”等分類之間沒有區別,因此它們全部都被認為是在圖10的范圍之內的并且被稱為“計算設備”。
[0078]計算設備1000通常包括各種計算機可讀介質。計算機可讀介質可以是可由計算設備1000訪問的任何可用介質,而且包含易失性和非易失性介質、可移動和不可移動介質。作為示例而非限制,計算機可讀介質可包括計算機存儲介質和通信介質。計算機存儲介質包括以存儲諸如計算機可讀的指令、數據結構、程序模塊或其他數據之類的信息的任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不限于,隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它全息存儲器、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備或可用于編碼所需信息且可以由計算設備500訪問的任何其它介質。在一個實施例中,計算機存儲介質可以從有形計算機存儲介質中選擇。在另一實施例中,計算機存儲介質可以從非臨時性計算機存儲介質中選擇。
[0079]通信介質通常以諸如載波或其他傳輸機制等已調制數據信號來體現計算機可讀指令、數據結構、程序模塊或其他數據,且包含任何信息傳遞介質。術語“已調制數據信號”指其一個或多個特征以這樣的方式設置或改變以便在信號中對信息進行編碼的信號。作為示例而非限制,通信介質包括諸如有線網絡或直接線連接之類的有線介質,以及諸如聲學、RF、紅外及其他無線介質之類的無線介質。上述的任意組合也應包括在計算機可讀介質的范圍之內。
[0080]存儲器1012可包括易失性和/或非易失性存儲器形式的計算機存儲介質。存儲器可以是可移動的,不可移動的,或兩者的組合。示例性硬件設備包括固態存儲器、硬盤驅動器、光盤驅動器等。計算設備1000包括從諸如存儲器1012或I/O組件1020等各種實體讀取數據的一個或多個處理器。呈現組件1016向用戶或其他設備呈現數據指示。示例性呈現組件包括顯示設備、揚聲器、打印組件、振動組件等等。
[0081]I/O端口 1018可允許計算設備1000邏輯上耦合至包括I/O組件1020的其它設備,這些I/O組件中的一些可以是內置的。說明性組件可包括話筒、操縱桿、游戲墊、圓盤式衛星天線、掃描儀、打印機、無線設備等等。
[0082]參考具體實施例描述了本發明的實施例,具體實施例在所有方面都旨在是說明性的而非限制性的。不偏離本發明范圍的情況下,各替換實施例對于本發明所屬領域的技術人員將變得顯而易見。
[0083]圖11示出了根據本發明的方法的示例。在圖11中,接收1110對與對應于第一用戶的第一虛擬機池相關聯的虛擬機的一個或多個備用預留的請求。將一個或多個可搶占虛擬機分派1120給對應于第二用戶的第二虛擬機池。在所分派的可搶占虛擬機上執行1130第二虛擬機池的一個或多個任務。隨后確定1140基于負載的閾值被滿足。基于負載的閾值對應于用于將備用預留轉換成分派給第一虛擬機池的專用機器的閾值。選擇1150分派給第二虛擬機池的至少一個可搶占虛擬機以供搶占。該選擇可基于例如所選虛擬機具有最低優先級,諸如與最低投標相關聯或已執行某任務達較短的時間長度。另選地或另外地,該選擇可基于第一虛擬機池對包含分派給第二虛擬機池的機器的虛擬機群集的親和力。該親和力可例如基于虛擬機群集與數據存儲位置的改善的連接性,或基于對使第一虛擬機池中的虛擬機處于同一(或幾個)虛擬機群集中的親和力。停止1160各任務在至少一個所選虛擬機上的執行。隨后將該至少一個所選虛擬機作為專用虛擬機分派1170給第一虛擬機池。
[0084]圖12示出了根據本發明的方法的另一示例。在圖12中,跟蹤1210與對應于用戶的虛擬機池相關聯的虛擬機的多個備用預留接收1220來自用戶的將專用虛擬機的數目增加第一數量,并將備用預留的數目增加第二數量的請求。可任選地,該請求可以處于來自用戶的多個通信和/或多個自動觸發的消息的形式。將一個或多個備用預留中的至少一個備用預留轉換1230成分派給該虛擬機池的專用虛擬機。將一個或多個附加備用預留與該虛擬機池關聯1240,所關聯的附加備用預留的數目足以達成所請求的第二數量的增加。使用至少一個經轉換的專用虛擬機來執行1250虛擬機池的一個或多個任務。
[0085]圖13示出了根據本發明的方法的又一示例。在圖13中,將來自第一虛擬機群集的第一虛擬機作為可搶占虛擬機分派1310給第一虛擬機池。該分派可在分派時間段內作出。在該分派時間段內將來自第二虛擬機群集的第二虛擬機作為可搶占虛擬機分派1320給第二虛擬機池。在第一可搶占虛擬機和第二可搶占虛擬機上執行1330 —個或多個任務。在第一可搶占虛擬機上的一個或多個任務比在第二可搶占虛擬機上的任務具有更大的優先級。隨后接收來自第三虛擬機池的對一個或多個專用虛擬機的請求。隨后將第一可搶占虛擬機轉換1350成向第三虛擬機池分派的專用虛擬機。從第二虛擬機池中移除1360對第二可搶占虛擬機的分派。隨后將第二可搶占虛擬機分派1370給第一虛擬機池。隨后在第二可搶占虛擬機上發起1380第一虛擬機池的至少一個任務。該至少一個任務是在分派時間段的結束之前發起的。
[0086]在一實施例中,提供一種用于提供云計算環境中的資源的方法。該方法包括:接收來自第一用戶的對與對應于第一用戶的第一虛擬機池相關聯的虛擬機的一個或多個備用預留的請求;將一個或多個可搶占虛擬機分派給對應于第二用戶的第二虛擬機池;使用所分派的可搶占虛擬機來執行該第二虛擬機池的一個或多個任務;確定用于轉換第一虛擬機池的至少一個備用預留的基于負載的閾值被滿足;基于與第二虛擬機池相關聯的投標價格和用于在可搶占虛擬機上執行任務的時間長度中的至少一者來選擇分派給第二虛擬機池的至少一個可搶占虛擬機以供搶占;停止任務在至少一個所選虛擬機上的執行;以及將至少一個所選虛擬機作為專用虛擬機分派給第一虛擬機池。
[0087]在另一實施例中,提供了一種用于提供云計算環境中的資源的方法。該方法包括:跟蹤與對應于用戶的虛擬機池相關聯的虛擬機的多個備用預留;接收來自該用戶的將分派給該虛擬機池的專用機器增加第一數量以及將與該虛擬機池相關聯的備用預留的數目增加第二數量的請求;將一個或多個備用預留中的至少一個備用預留轉換成分派給該虛擬機池的專用虛擬機;使一個或多個附加備用預留與該虛擬機池相關聯,附加備用預留的數目足以達成備用預留的數目的第二數量的增加;以及使用至少一個經轉換專用虛擬機來執行該虛擬機池的一個或多個任務。
[0088]在又一實施例中,提供了一種用于提供云計算環境中的資源的方法。該方法包括:將來自第一虛擬機群集的第一虛擬機作為可搶占虛擬機分派給第一虛擬機池達分派時間段;將來自第二虛擬機群集的第二虛擬機作為可搶占虛擬機分派給第二虛擬機池達該分派時間段;在第一可搶占虛擬機和第二可搶占虛擬機上執行一個或多個任務,在第一可搶占虛擬機上的一個或多個任務比在第二可搶占虛擬機上的一個或多個任務具有更大的優先級;接收來自第三虛擬機池的對一個或多個專用虛擬機的請求,該請求包括對第一虛擬機群集的親和力;將第一可搶占虛擬機轉換成分派給第三虛擬機池的專用虛擬機;從第二虛擬機池中移除對第二可搶占虛擬機的分派;將第二可搶占虛擬機分派給第一虛擬機池;以及在該分派時間段的結束之前在第二可搶占虛擬機上發起第一虛擬機池的至少一個任務。
[0089]從前面的描述可以看出,本發明很好地適用于實現上文所闡述的所有目的和目標,并且具有對于該結構是顯而易見且固有的其他優點。
[0090]可理解的是,某些特征和子組合是有用的,并且可以加以利用而無需參考其它特征和子組合。這由權利要求所構想的,并在權利要求的范圍內。
【權利要求】
1.一種用于提供云計算環境中的資源的方法,包括: 接收來自第一用戶的對與對應于所述第一用戶的第一虛擬機池相關聯的虛擬機的一個或多個備用預留的請求; 將一個或多個可搶占虛擬機分派給對應于第二用戶的第二虛擬機池; 使用所分派的可搶占虛擬機來執行所述第二虛擬機池的一個或多個任務; 確定用于轉換所述第一虛擬機池的至少一個備用預留的基于負載的閾值被滿足; 基于與所述第二虛擬機池相關聯的投標價格和用于在可搶占虛擬機上執行任務的時間長度中的至少一者來選擇分派給所述第二虛擬機池的至少一個可搶占虛擬機以供搶占; 停止任務在至少一個所選虛擬機上的執行;以及 將所述至少一個所選虛擬機作為專用虛擬機分派給所述第一虛擬機池。
2.如權利要求1所述的方法,其特征在于,還包括跟蹤與所述第一虛擬機池相關聯的虛擬機的備用保留的數目。
3.如以上權利要求中的任何一項所述的方法,其特征在于,對一個或多個備用預留的請求包括具有對一個或多個虛擬機群集的親和力的請求,對所述一個或多個虛擬機群集的親和力包括以下中的至少一者:基于與分派給所述第一虛擬機池的虛擬機的連接性的親和力或到存儲的連接性。
4.如以上權利要求中的任一項所述的方法,其特征在于,還包括響應于確定所述基于負載的閾值被滿足而將至少一個空閑虛擬機作為專用虛擬機分派給所述第一虛擬機池,分派所述至少一個空閑虛擬機發生在分派所選的至少一個虛擬機之前。
5.如以上權利要求中的任一項所述的方法,其特征在于,任務在所述至少一個所選虛擬機上的執行在分派時間段的結束之前被停止,所述方法還包括在所述分派時間段的結束之前在所述至少一個所選虛擬機上發起所述第一虛擬機池的至少一個任務。
6.如以上權利要求中的任一項所述的方法,其特征在于,所述至少一個所選虛擬機來自第一虛擬機群集,并且其中分派給所述第一虛擬機池的一個或多個機器來自不同于所述第一虛擬機群集的虛擬機群集。
7.一個或多個存儲計算機可使用指令的計算機存儲介質,當所述指令由計算設備執行時執行一種用于提供云計算環境中的資源的方法,所述方法包括: 跟蹤與對應于用戶的虛擬機池相關聯的虛擬機的多個備用預留; 接收來自所述用戶的將分派給所述虛擬機池的專用機器增加第一數量以及將與所述虛擬機池相關聯的備用預留的數目增加第二數量的請求; 將所述一個或多個備用預留中的至少一個備用預留轉換成分派給所述虛擬機池的專用虛擬機; 使一個或多個附加備用預留與所述虛擬機池相關聯,附加備用預留的數目足以達成備用預留的數目達所述第二數量的增加;以及 使用至少一個經轉換專用虛擬機來執行所述虛擬機池的一個或多個任務。
8.一種用于提供云計算環境中的資源的方法,包括: 將來自第一虛擬機群集的第一虛擬機作為可搶占虛擬機分派給第一虛擬機池達分派時間段;將來自第二虛擬機群集的第二虛擬機作為可搶占虛擬機分派給第二虛擬機池達所述分派時間段; 在所述第一可搶占虛擬機和所述第二可搶占虛擬機上執行一個或多個任務,在所述第一可搶占虛擬機上的一個或多個任務比在所述第二可搶占虛擬機上的一個或多個任務具有更大的優先級; 接收來自第三虛擬機池的對一個或多個專用虛擬機的請求,所述請求包括對所述第一虛擬機群集的親和力; 將所述第一可搶占虛擬機轉換成分派給所述第三虛擬機池的專用虛擬機; 從所述第二虛擬機池中移除對所述第二可搶占虛擬機的分派; 將所述第二可搶占虛擬機分派給所述第一虛擬機池;以及 在所述分派時間段的結束之前在所述第二可搶占虛擬機上發起所述第一虛擬機池的至少一個任務。
9.如權利要求8所述的方法,其特征在于,將所述第一可搶占虛擬機轉換成專用虛擬機包括: 從所述第一虛擬機池中移除對所述第一可搶占虛擬機的分派; 將所述第一虛擬機分派給所述第三虛擬機池;以及 在所述分派時間段的結束之前在所述第一虛擬機上發起所述第三虛擬機池的至少一個任務。
10.如權利要求8或9所述的方法,其特征在于,基于以下中的至少一者所述第一可搶占虛擬機上的一個或多個任務比所述第二可搶占虛擬機上的一個或多個任務具有更大的優先級:與所述第一虛擬機池和所述第二虛擬機池相關聯的投標,或用于在所述第一虛擬機和所述第二虛擬機上執行任務的時間長度。
【文檔編號】G06F9/50GK104040526SQ201380005099
【公開日】2014年9月10日 申請日期:2013年1月7日 優先權日:2012年1月9日
【發明者】B·G·卡爾德, J·王, V·貝德卡, S·桑卡蘭, M·米克尼特二世, P·K·貢達, Y·張, S·安東尼, K·曼尼瓦納, H·卡特里 申請人:微軟公司