提供 商202根據(jù)本文所描述的各種技術(shù)或其變型進行操作。
[0031] 如W上所指出,計算資源服務提供商202可向其客戶提供各種計算資源服務。例 如,在特定的說明性示例中,計算資源服務提供商202提供至少兩種類型的服務。在運個示 例中,由計算資源服務提供商提供的服務包括虛擬計算機系統(tǒng)服務208、數(shù)據(jù)存儲服務210 和一個或多個其他服務212,盡管不是本公開的所有實施方案都將包括所有此類服務,但是 除本文明確描述的服務之外或作為替代本文明確描述的服務,可提供另外的服務。
[0032] 虛擬計算機系統(tǒng)服務208可W是計算資源的集合,其被配置來代表計算資源服務 提供商202的客戶204將虛擬機實例實例化到虛擬計算機系統(tǒng)上。計算資源服務提供商202 的客戶204可與虛擬計算機系統(tǒng)服務208交互,W便提供和操作在由計算資源服務提供商 202托管(例如,物理主機)并操作的物理計算裝置上實例化的虛擬計算機系統(tǒng)。虛擬計算機 系統(tǒng)可用于各種目的,諸如W操作為支持網(wǎng)站的服務器。用于虛擬計算機系統(tǒng)的其他應用 可W用來支持數(shù)據(jù)庫應用、電子商務應用、業(yè)務應用和/或其他應用。
[0033] 當客戶204與虛擬計算機系統(tǒng)服務208交互并且提供虛擬機實例時,客戶204可獲 得對多種資源的訪問。例如,取決于客戶的需要,虛擬機實例可提供操作系統(tǒng)和各種應用。 如W上所指出,可在可由計算資源服務提供商202操作的物理主機上實例化虛擬機實例。因 此,物理主機可能需要包括若干硬件組件,所述硬件組件可被配置來共同地用來提供操作 和支持虛擬機實例所需的計算資源。因此,虛擬計算機系統(tǒng)服務208可默認在包括用W支持 特定實例所需的資源的物理主機上實例化虛擬機實例。
[0034] 在一些實施方案中,客戶204可請求將虛擬機實例在包括特定的硬件規(guī)范集合的 物理主機中實例化。雖然所述硬件規(guī)范可默認不被虛擬計算機系統(tǒng)服務208選擇,但是客戶 204可能需要運些規(guī)范來支持其需要。如W上所指出,客戶204可開發(fā)和測試需要廣泛的資 源操作的虛擬機實例上的軟件。因此,由虛擬計算機系統(tǒng)服務208提供的默認的硬件規(guī)范可 能不適用于運些目的。如果客戶204已經(jīng)指定包括特定的硬件規(guī)范集合的物理主機應該被 分配用于虛擬機實例,那么虛擬計算機系統(tǒng)服務208可確定任何可用的物理主機當前是否 包括運些規(guī)范。如果不存在具有在客戶請求中指定的至少該特定的硬件規(guī)范集合的可用物 理主機,并且客戶硬件請求就是偏好,那么虛擬計算機系統(tǒng)服務208可在包括用W實例化所 述虛擬機實例并且保存在實例元數(shù)據(jù)中的最小硬件規(guī)范的物理主機中實例化虛擬機實例, 一旦具有特定硬件組件的物理主機變得可用,可觸發(fā)W識別虛擬機實例應遷移至具有特定 硬件組件的物理主機的標志。然而,如果在用W創(chuàng)建新的虛擬機實例的所述請求中包括的 硬件規(guī)范請求是要求,那么虛擬計算機系統(tǒng)服務208可顯示錯誤消息并且如果沒有可滿足 硬件規(guī)范要求的物理主機可用,那么就拒絕所述請求。
[0035] 另外地,在一些實施方案中,客戶204可能夠提交向包括支持客戶204的需要可能 所必須的特定的硬件規(guī)范集合的物理主機遷移現(xiàn)有虛擬機實例的請求。如果當前不存在具 有提供用于所述請求的至少所述硬件規(guī)范的物理主機,那么虛擬計算機系統(tǒng)服務208可使 現(xiàn)有虛擬機實例保持在其被實例化的物理主機中,而無需將所述實例遷移至新的物理主 機。另外地,如果所請求的硬件規(guī)范需要支持所述實例,那么虛擬計算機系統(tǒng)服務208可顯 示錯誤消息并且授予客戶204某些選項。例如,可給予客戶204選項W重新配置嘗試將虛擬 機實例遷移至更緊密地匹配他的或她的要求的物理主機的請求。如果滿足客戶204硬件規(guī) 范的物理主機可用,那么虛擬計算機系統(tǒng)服務208可將虛擬機實例遷移至運個物理主機,因 此實現(xiàn)所述請求。
[0036] 如W上所指出,虛擬計算機系統(tǒng)服務208可保存可包括標志的實例元數(shù)據(jù),所述標 志在被觸發(fā)時,可指定客戶已經(jīng)選擇使虛擬機實例遷移至在可用時具有某些硬件規(guī)范的物 理主機。因此,在一些實施方案中,當一個或多個槽在物理主機中變得可用時,虛擬計算機 系統(tǒng)服務208可被配置來查詢用于每個虛擬機實例的元數(shù)據(jù)。如果虛擬計算機系統(tǒng)服務208 識別被遷移至物理主機的一個或多個虛擬機實例,那么虛擬計算機系統(tǒng)服務208可被配置 來將一組標準應用到一個或多個虛擬機實例,W確定遷移哪個實例。例如,所述標準可包括 在針對某些硬件規(guī)范的請求與現(xiàn)有查詢之間的持續(xù)時間。因此,虛擬計算機系統(tǒng)服務208可 進行將所選擇的虛擬機實例遷移至具有已請求的硬件規(guī)范的物理主機并且重新設置用于 該實例的元數(shù)據(jù)。
[0037] 數(shù)據(jù)存儲服務210可包括計算資源的集合,其共同地操作來存儲用于客戶204的數(shù) 據(jù)??蓪⒃跀?shù)據(jù)存儲服務210中存儲的數(shù)據(jù)組織到數(shù)據(jù)對象中。也許除了對大小進行某些限 制之外,數(shù)據(jù)對象可具有任意大小。因此,數(shù)據(jù)存儲服務210可存儲具有大小不一的眾多數(shù) 據(jù)對象。數(shù)據(jù)存儲服務210可操作為將數(shù)據(jù)對象與數(shù)據(jù)對象的標識符相關聯(lián)的鍵值存儲區(qū), 所述數(shù)據(jù)對象的標識符可由客戶204使用,W檢索或執(zhí)行與由數(shù)據(jù)存儲服務210存儲的數(shù)據(jù) 對象有關的其他操作。對數(shù)據(jù)存儲服務的訪問可W是通過適當?shù)匾雅渲玫膽镁幊探涌?(API)調(diào)用。
[0038] 計算資源服務提供商202另外地可基于其客戶204的需要來維護一個或多個其他 服務212。例如,計算資源服務提供商202可維護用于其客戶204的數(shù)據(jù)庫服務。數(shù)據(jù)庫服務 可W是計算資源的集合,其共同地操作W運行用于一個或多個客戶204的一個或多個數(shù)據(jù) 庫。計算資源服務提供商202的客戶204可通過利用對數(shù)據(jù)庫服務的適當?shù)匾雅渲玫腁PI調(diào) 用來操作并管理來自數(shù)據(jù)庫服務的數(shù)據(jù)庫。運進而可允許客戶204維護并潛在地縮放數(shù)據(jù) 庫中的操作。其他服務包括但不限于對象級數(shù)據(jù)存儲服務、對象級檔案庫數(shù)據(jù)存儲服務、管 理其他服務的服務和/或其他服務。
[0039] 如W上所指出,虛擬計算機系統(tǒng)服務可由一個或多個客戶使用W提供用于各種用 途的虛擬機實例。虛擬機實例可容許客戶訪問操作系統(tǒng)和多種應用,所述操作系統(tǒng)和多種 應用可使客戶能夠執(zhí)行某些功能(例如,維持一個或多個數(shù)據(jù)庫,存儲客戶端信息,開發(fā)網(wǎng) 頁應用等)。因此,圖3示出根據(jù)至少一個實施方案的包括虛擬計算機系統(tǒng)服務302的各種組 件的環(huán)境300的說明性示例。虛擬計算機系統(tǒng)服務302可向客戶提供客戶接口 304,所述客戶 接口 304可使客戶能夠訪問虛擬計算機系統(tǒng)服務302??蛻艨赏ㄟ^一個或多個通信網(wǎng)絡(諸 如互聯(lián)網(wǎng))利用客戶接口 304??蛻艚涌?304可包括某些安全保護W確??蛻粲惺跈?quán)訪問虛 擬計算機系統(tǒng)服務302。例如,為了訪問虛擬計算機系統(tǒng)服務302,客戶在使用客戶接口 304 時可能需要提供用戶名和對應的密碼或密鑰。另外地,提交給客戶接口 304的請求(例如, API調(diào)用)可能需要使用密鑰產(chǎn)生的電子簽名,W使得電子簽名可由虛擬計算機系統(tǒng)服務 302 (諸如由授權(quán)系統(tǒng)(未示出))驗證。
[0040] 一旦客戶通過客戶接口304已經(jīng)獲得對虛擬計算機系統(tǒng)服務302的訪問,虛擬計算 機系統(tǒng)服務302就可允許客戶通過客戶接口304與管理子系統(tǒng)306交互。例如,管理子系統(tǒng) 306可使客戶能夠遠程提供虛擬機實例??蛻艨墒褂每蛻艚涌?304和管理子系統(tǒng)306產(chǎn)生包 括適于客戶需要的操作系統(tǒng)和多種應用的虛擬機實例??蓪⑺霾僮飨到y(tǒng)和各種應用W機 器圖像308的形式維持在數(shù)據(jù)存儲裝置中。虛擬計算機系統(tǒng)服務302可基于如在管理子系統(tǒng) 306中指定的特定的客戶偏好來維持多種機器圖像308。當客戶提交針對通過管理子系統(tǒng) 306提供虛擬機實例的請求時,虛擬計算機系統(tǒng)服務302可識別客戶已經(jīng)請求的所述機器圖 像,并且分配所需的資源(例如,操作所述機器圖像的組件需要的處理器和隨機存取存儲器 (RAM) ),W處理所述機器圖像??稍诳沙洚斢糜谒鰧嵗奈锢碇鳈C312的一個或多個物理 存儲裝置(例如,一個或多個服務器或硬盤驅(qū)動器)上實例化所述機器圖像。
[0041] 作為對自動分配用W處理所述機器圖像所需資源的替代方案,客戶可利用客戶接 口 304和管理子系統(tǒng)306請求特定的資源集合W處理和支持所述機器圖像。例如,如果客戶 使用虛擬機實例創(chuàng)建、測試和管理資源密集的軟件或網(wǎng)頁應用,那么客戶可能需要除僅處 理所述機器圖像需要的資源之外的另外的資源。因此,管理子系統(tǒng)306可處理包括另外的硬 件規(guī)范W識別物理主機312的請求,所述物理主機312包括實例化虛擬機實例并且滿足客戶 請求需要的資源。如W上所指出,客戶可指定針對運些硬件規(guī)范的請求是用于創(chuàng)建實例的 偏好或要求。在前一種情況下,如果管理子系統(tǒng)306不能識別具有實現(xiàn)客戶請求所需的資源 的物理主機312,那么管理子系統(tǒng)306可被配置來在具有處理所述機器圖像需要的資源的物 理主機306中實例化虛擬機實例。因此,管理子系統(tǒng)306可被配置來觸發(fā)與虛擬機實例相關 聯(lián)的元數(shù)據(jù)標志,W使得當具有已請求的硬件規(guī)范的物理主機312變得可用時,管理子系統(tǒng) 306可將虛擬機實例遷移至運個物理主機。在后一種情況下(例如,在針對某一硬件規(guī)范集 合的請求是要求的情況下),管理子系統(tǒng)306可被配置來將可執(zhí)行指令傳輸至客戶接口 304, 所述指令在被客戶接口304執(zhí)行時,如果沒有具有已請求的硬件規(guī)范的物理主機312可用, 那么就致使客戶接口304顯示錯誤消息。此外,管理子系統(tǒng)306可W不在物理主機312中的任 一個中實例化虛擬機實例。
[0042] 如W上所指出,如果虛擬機實例已經(jīng)在不滿足某一硬件規(guī)范集合的客戶偏好的物 理主機312中實例化,那么管理子系統(tǒng)306可被配置來觸發(fā)與虛擬機實例相關聯(lián)的元數(shù)據(jù)標 志。盡管對客戶接口 304進行適當?shù)匾雅渲玫腁PI調(diào)用,但是客戶可觸發(fā)在虛擬機實例內(nèi)的 元數(shù)據(jù)標志,W指定虛擬機實例是否應被遷移至包括支持所述實例需要的資源的物理主機 312。另外地,如果管理子系統(tǒng)306不能立即滿足客戶偏好W在具有已請求的硬件規(guī)范的物 理主機312中實例化虛擬計算實例,那么就可觸發(fā)元數(shù)據(jù)標志。因此,虛擬計算機系統(tǒng)服務 302可維持用來管理信息的一個或多個元數(shù)據(jù)服務310,所述信息確定是否應將在物理主機 312中實例化的虛擬機實例遷移至可具有滿足客戶請求所需的資源的不同的物理主機312。 如關于圖8更加詳細地所述,管理子系統(tǒng)306可被配置來查詢元數(shù)據(jù)服務310, W確定現(xiàn)有虛 擬機實例中的哪個包括針對遷移至物理主機312中的新近可用的槽的客戶請求。
[0043] 如W上所指出,每個物理主機可包括可用來實例化虛擬機實例的多個槽。因此,圖 4是根據(jù)實施方案的環(huán)境400的說明性示例,所述環(huán)境400包括在管理子系統(tǒng)與可包括一個 或多個槽的多個物理主機之間的交互。在環(huán)境400中,客戶402通過提交一個或多個請求(諸 如,通過對虛擬計算機系統(tǒng)服務的適當?shù)匾雅渲玫腁PI調(diào)用、通過一個或多個通信網(wǎng)絡(諸 如互聯(lián)網(wǎng)404))與虛擬計算機系統(tǒng)服務406交互。如W上所指出,客戶402可利用由虛擬計算 機系統(tǒng)服務406提供的客戶接口和管理子系統(tǒng)408來產(chǎn)生包括適于客戶需要的操作系統(tǒng)和 多種應用的實例。
[0044] 如W上所指出,管理子系統(tǒng)408可與一個或多個物理主機410交互,W通過取決于 客戶402的請求而將機器圖像安裝到一個或多個物理主機410中來實例化虛擬機實例。每個 物理主機410可包括實例化虛擬機實例需要的資源集合。然而,基于包括于物理主機410中 的硬件組件,每個物理主機410可包括不同的資源集合。例如,每個物理主機410可包括實例 化一個或多個虛擬機實例需要的不同的處理忍片組、存儲裝置(例如,固態(tài)驅(qū)動器或磁盤驅(qū) 動器)或RAM。因此,某些虛擬機實例可在一些物理主機410中但不是在其他中實例化。
[0045] 每個物理主機410可包括用于分配虛擬機實例的一個或多個槽412。每個槽412可 表示對來自用于執(zhí)行支持虛擬機實例的一個或多個操作的物理主機410的資源集合的分 配。例如,槽可表示物理主機410的一半的處理容量。當客戶402請求創(chuàng)建虛擬機實例時,客 戶402可能夠指定虛擬機實例應該有多大。因此,由于大的實例可能需要另外的資源來實例 化和支持為虛擬機實例的一部分的機器圖像(例如,操作系統(tǒng)和相關聯(lián)的應用),因而虛擬 機實例越大,實例可在物理主機410中消耗的槽412越多。如果物理主機410包括更少的計算 資源(例如,使用較舊的技術(shù),諸如過時的或廢棄的處理器和/或存儲裝置),那么物理主機 410可能僅包括小數(shù)目的槽412W用于分配虛擬機實例??商娲兀碌奈锢碇鳈C410(具 有更大的計算資源)可能夠支持另外的槽412并且因此接納另外的虛擬機實例。
[0046] 因此,當客戶402將創(chuàng)建虛擬機實例的請求提交給虛擬計算機系統(tǒng)服務406時,管 理子系統(tǒng)408可被配置來確定