專利名稱:用于由管理程序控制對物理資源的訪問的系統和方法
技術領域:
本發(fā)明總的涉及用于控制對資源訪問的系統和方法。本發(fā)明尤其涉及用于由管理程序控制虛擬資源對物理資源的訪問的系統和方法。
背景技術:
在實現管理程序以在宿主計算裝置上執(zhí)行虛擬機的傳統計算環(huán)境中,管理程序通常向虛擬機提供對宿主計算裝置所提供的硬件資源的訪問。這樣的環(huán)境中,傳統的管理程序通常不提供用于防止由過度使用所分配的資源引起的錯誤影響虛擬機用戶的功能。例如,如果資源使用了超過其所分配的處理器時間或所分配的磁盤訪問,該資源可能引起與其他資源的沖突或導致該虛擬機或共享對物理盤訪問的其他虛擬機的不適宜的終止。傳統的管理程序可在事后接收已發(fā)生錯誤或沖突的指示,或者在虛擬機執(zhí)行之前確定可能會發(fā)生錯誤或沖突。然而,傳統的管理程序通常不提供靈活的選項用于在這些錯誤發(fā)生后繼續(xù)執(zhí)行虛擬機。
發(fā)明內容
一方面,用于在虛擬機執(zhí)行期間由管理程序控制對物理資源的訪問的方法包括由管理程序給虛擬機中虛擬盤分配對至少一個物理盤的訪問量。該方法包括由管理程序確定物理盤的利用程度超過閥值。該方法包括由管理程序響應于所述確定,限制虛擬盤對物理盤的訪問。一個實施例中,該方法包括對虛擬盤所請求的輸入/輸出(I/O)操作進行速度限制。又一個實施例中,該方法包括掛起虛擬機執(zhí)行的至少一個進程。又一個實施例中,該方法包括由管理程序確定已經達到至少一個物理盤的容量限制。又一個實施例中,該方法包括從虛擬機屏蔽物理盤的錯誤。又一方面,用于在虛擬機執(zhí)行期間由管理程序控制對物理資源的訪問的系統包括物理盤和管理程序。所述物理盤是由計算裝置提供的并且存儲虛擬機中虛擬盤的至少一部分。管理程序在計算裝置上執(zhí)行。管理程序給虛擬盤分配對物理盤的訪問量。管理程序確定在虛擬機內執(zhí)行的客戶操作系統對物理盤的利用程度超過所分配量的閥值。響應于所述確定,管理程序限制虛擬盤對物理盤的訪問。
本發(fā)明的前述和其它目的、方面、特征和優(yōu)點通過參考下述結合附圖的描述將會更加明顯并更易于理解,其中
圖IA是描述包括管理程序層、虛擬化層和硬件層的計算環(huán)境的實施例的框圖;圖IB和IC是描述有益于與此處所描述的方法和系統的相關的計算裝置的實施例的框圖;圖2是描述用于由管理程序控制對物理資源訪問的系統的實施例的框圖;以及圖3是描述用于由管理程序控制對物理資源訪問的方法的實施例的流程圖。
具體實施例方式現參考圖1A,框圖描述了虛擬化環(huán)境的一個實施例。簡而言之,計算裝置100包括管理程序層、虛擬化層和硬件層。管理程序層包括管理程序101 (也稱為虛擬化管理器), 其通過在虛擬化層中執(zhí)行的至少一個虛擬機來分配和管理對硬件層中的多個物理資源的訪問(例如處理器221和盤228)。虛擬化層包括至少一個操作系統110和分配給至少一個操作系統110的多個虛擬資源。虛擬資源可包括而不限于多個虛擬處理器13h、132b、 132c (總稱為13 和虛擬盤14加、142b、142c (總稱為142)、以及例如虛擬存儲器和虛擬網絡接口的虛擬資源。可將多個虛擬資源和操作系統110稱為虛擬機106。虛擬機106可包括控制操作系統105,該控制操作系統105與管理程序101通信,并用于執(zhí)行應用以管理并配置計算裝置100上的其他虛擬機。現參考圖1A,具體而言,管理程序101可以以模擬可訪問物理設備的操作系統的任何方式向操作系統提供虛擬資源。管理程序101可以向任一數量的客戶操作系統110a、 110b(總稱為110)提供虛擬資源。一些實施例中,計算裝置100執(zhí)行一種或多種管理程序。 這些實施例中,管理程序可用于模擬虛擬硬件、劃分物理硬件、虛擬化物理硬件并執(zhí)行提供對計算環(huán)境的訪問的虛擬機。管理程序可包括由位于美國加州的I^alo Alto的VMWare制造的這些程序、XEN管理程序(一種開源產品,其開發(fā)由開源Xen. org協會監(jiān)管)、由微軟公司提供的HyperV、VirtualServer或虛擬PC管理程序或其他。一些實施例中,計算裝置 100執(zhí)行創(chuàng)建客戶操作系統可在其上執(zhí)行的虛擬機平臺的管理程序,該計算裝置100被稱為宿主服務器。在一個這樣的實施例中,例如,計算裝置100是由位于美國佛羅里達州 Lauderdale 的 CitrixSystems 公司提供的 XEN SERVER。一些實施例中,管理程序101在計算裝置上執(zhí)行的操作系統之內執(zhí)行。一個這樣的實施例中,執(zhí)行操作系統和管理程序101的計算裝置可被視為具有宿主操作系統(在計算裝置上執(zhí)行的操作系統)和客戶操作系統(在由管理程序101提供的計算資源分區(qū)內執(zhí)行的操作系統)。其他實施例中,管理程序101和計算裝置上的硬件直接交互而不是在宿主操作系統上執(zhí)行。一個這樣的實施例中,管理程序101可被視為是在“裸金屬(bare metal),,上執(zhí)行,所述“裸金屬”指包括計算裝置的硬件。一些實施例中,管理程序101可以創(chuàng)建操作系統110在其中執(zhí)行的虛擬機 106a-c(總稱為106)。在一個這樣的實施例中,管理程序101加載虛擬機映像以創(chuàng)建虛擬機106。另一個這樣的實施例中,管理程序101在虛擬機106內執(zhí)行操作系統110。在又一個這樣的實施例中,虛擬機106執(zhí)行操作系統110。一些實施例中,管理程序101控制對在計算裝置100上執(zhí)行的虛擬機106的處理器調度和內存劃分。一個這樣的實施例中,管理程序101控制至少一個虛擬機106的執(zhí)行。 另一個這樣的實施例中,管理程序101向至少一個虛擬機106呈現對由計算裝置100提供的至少一個硬件資源的抽象。其他實施例中,管理程序101控制是否以及如何把物理處理器能力呈現給虛擬機106??刂撇僮飨到y105可以執(zhí)行用于管理和配置客戶操作系統的至少一個應用。一個實施例中,控制操作系統105可以執(zhí)行管理應用,如包括如下用戶接口的應用,該用戶接口為管理員提供對用于管理虛擬機執(zhí)行的功能的訪問,這些功能包括用于執(zhí)行虛擬機、中止虛擬機執(zhí)行或者識別要分配給虛擬機的物理資源類型的功能。另一個實施例中,管理程序 101在由管理程序101創(chuàng)建的虛擬機106內執(zhí)行控制操作系統105。在又一個實施例中,控制操作系統105在被授權直接訪問計算裝置100上的物理資源的虛擬機106上執(zhí)行。一些實施例中,計算裝置IOOa上的控制操作系統10 可經由管理程序IOla和管理程序IOlb 之間的通信與計算裝置IOOb上的控制操作系統10 交換數據。這樣,一個或多個計算裝置100可以與一個或多個其他計算裝置100交換關于資源池中可用的處理器和其他物理資源的數據。在這些實施例的一個中,該功能允許管理程序管理分布在多個物理計算裝置上的資源池。在這些實施例的又一個中,多個管理程序管理在其中一個計算裝置100上執(zhí)行的一個或多個客戶操作系統。一個實施例中,控制操作系統105在被授權與至少一個客戶操作系統110交互的虛擬機106上執(zhí)行。另一個實施例中,客戶操作系統110通過管理程序101與控制操作系統105通信,以請求訪問盤或網絡。在又一個實施例中,客戶操作系統110和控制操作系統 105可通過由管理程序101建立的通信信道通信,例如,通過由管理程序101提供的多個共享存儲器頁面通信。一些實施例中,控制操作系統105包括用于直接與由計算裝置100提供的網絡硬件通信的網絡后端驅動器。一個這樣的實施例中,網絡后端驅動器處理來自至少一個客戶操作系統110的至少一個虛擬機請求。其他實施例中,控制操作系統105包括用于與計算裝置100上的存儲單元通信的塊后端驅動器。一個這樣的實施例中,塊后端驅動器根據從客戶操作系統110接收的至少一個請求從存儲單元讀寫數據。 一個實施例,控制操作系統105包括工具堆棧104。其他實施例中,工具堆棧104提供如下功能和管理程序101交互、和其他控制操作系統105(例如位于第二計算裝置IOOb 上)通信,或者管理計算裝置100上的虛擬機106b、106c。另一個實施例中,工具堆棧104 包括自定義應用,其用于向虛擬機群的管理員提供改進的管理功能。一些實施例中,工具堆棧104和控制操作系統105中的至少一個包括管理API,其提供用于遠程配置并控制計算裝置100上運行的虛擬機106的接口。其他實施例中,控制操作系統105通過工具堆棧104 和管理程序101通信。 一個實施例中,管理程序101在由管理程序101創(chuàng)建的虛擬機106內執(zhí)行客戶操作系統110。另一個實施例中,客戶操作系統110為計算裝置100的用戶提供對計算環(huán)境中的資源的訪問。另一個實施例中,資源包括程序、應用、文檔、文件、多個應用、多個文件、 可執(zhí)行程序文件、桌面環(huán)境、計算環(huán)境或對計算裝置100的用戶可用的其他資源。另一個實施例中,可通過多個訪問方法將資源傳送給計算裝置100,這些方法包括但不限于常規(guī)的直接安裝在計算裝置100上、通過應用流的方法傳送給計算裝置100、將由在第二計算裝置 100'上執(zhí)行資源產生的并通過表示層協議傳送給計算裝置100的輸出數據傳送給計算裝置100、將由在第二計算裝置100'上執(zhí)行的虛擬機執(zhí)行資源所產生的輸出數據傳送給計算裝置100、或者從連接到計算裝置100的移動存儲裝置(例如USB設備)執(zhí)行或者通過在計算裝置100上執(zhí)行的虛擬機執(zhí)行并且產生輸出數據。一些實施例中,計算裝置100把執(zhí)行資源所產生的輸出數據傳輸給另一個計算裝置100'。一個實施例中,客戶操作系統110和該客戶操作系統110在其上執(zhí)行的虛擬機結合形成完全虛擬化虛擬機,該完全虛擬化虛擬機并不知道自己是虛擬機,這樣的機器可稱為“Domain U HVM(硬件虛擬機)虛擬機”。另一個實施例中,完全虛擬化機包括模擬基本輸入/輸出系統(BIOS)的軟件以便在完全虛擬化機中執(zhí)行操作系統。在另一個實施例中, 完全虛擬化機可包括驅動器,其通過和管理程序101通信提供功能。這樣的實施例中,驅動器通常意識到自己在虛擬化環(huán)境中執(zhí)行。另一個實施例中,客戶操作系統110和該客戶操作系統110在其上執(zhí)行的虛擬機結合形成超虛擬化虛擬機(paravirtualized),該超虛擬化虛擬機意識到自己是虛擬機,這樣的機器可稱為“Domain U PV虛擬機”。另一個實施例中,超虛擬化機包括完全虛擬化機不包括的額外驅動器。另一個實施例中,超虛擬化機包括如上所述的被包含在控制操作系統105中的網絡后端驅動器和塊后端驅動器。計算裝置100可以被部署為任意類型和形式的計算裝置和/或在其上執(zhí)行,例如能夠與任意類型和形式的網絡通信并且執(zhí)行此處所描述的操作的計算機、網絡裝置或設備。圖IB和IC描述了用于實施此處所描述的方法和系統的實施例的計算裝置100的框圖。 如圖IB和IC所示,計算裝置100包括中央處理單元121和主存儲器單元122。如圖IB所示,計算裝置100可包括存儲裝置128、安裝裝置116、網絡接口 118、I/O控制器123、顯示裝置12如-1對11、鍵盤1 和諸如鼠標的指示裝置127。存儲裝置1 可包括但不限于操作系統、軟件和客戶機代理120。如圖IC所示,每個計算裝置100也可包括另外的可選部件, 例如存儲器端口 103、橋170、一個或多個輸入/輸出裝置130a-130n(總的使用標號130表示)以及與中央處理單元121通信的高速緩存存儲器140。中央處理單元121是響應并處理從主存儲器單元122取出的指令的任意邏輯電路。在許多實施例中,中央處理單元121由微處理器單元提供,例如由位于美國加州 Mountain View的Intel公司制造的微處理器單元;由位于美國伊利諾伊州khaumburg的 Motorola公司制造的微處理器單元;由位于美國加州Santa Clara的Transmeta公司制造的微處理器單元;由位于美國紐約州White Plains的International Business Machines 公司制造的RS/6000處理器;或者由位于美國加州Sunnyvale的Advanced Micro Devices 公司制造的微處理器單元。計算裝置100可以基于這些處理器中的任意一種,或者能夠按照這里所說明的那樣運行的任意其它處理器。主存儲器單元122可以是能夠存儲數據并允許微處理器121直接訪問任意存儲位置的一個或多個存儲器芯片,例如靜態(tài)隨機存取存儲器(SRAM)、突發(fā)SRAM或同步突發(fā)SRAM (BSRAM)、動態(tài)隨機存取存儲器(DRAM)、快速頁模式DRAM (FPM DRAM)、增強DRAM (EDRAM)、擴展數據輸出DRAM (EDO DRAM)、突發(fā)擴展數據輸出DRAM (BED0 DRAM)、 同步 DRAM (SDRAM)、JEDEC SRAM、PCIOO SDRAM、雙倍數據速率 SDRAM (DDR SDRAM)、增強 SDRAM (ESDRAM)、同步鏈路 DRAM (SLDRAM)、直接 RambusDRAM(DRDRAM)或鐵電 RAM(FRAM)。主存儲器122可以基于上述存儲器芯片的任意一種,或者能夠像這里所說明的那樣運行的任意其它可用存儲器芯片。在圖IB所示的實施例中處理器121通過系統總線150 (在下面進行更詳細的描述)與主存儲器122進行通信。圖IC描述了在其中處理器通過存儲器端口 103直接與主存儲器122通信的計算裝置100的實施例。例如,在圖IC中主存儲器122可以是 DRDRAM。圖IC描述在其中主處理器121通過有時被稱為背側總線的次級總線直接與高速緩存存儲器140通信的實施例。其他實施例中,主處理器121使用系統總線150與高速緩存存儲器140通信。高速緩存存儲器140通常有比主存儲器122更快的響應時間,并且通常由SRAM、BSRAM或EDRAM提供。在圖IC所示的實施例中,處理器121通過本地系統總線 150與各種I/O裝置130進行通信??梢允褂酶鞣N不同的總線將中央處理單元121連接到任意I/O裝置130,包括VESA VL總線、ISA總線、EISA總線、微通道體系結構(MCA)總線、 PCI總線、PCI-X總線、PCI-Express總線或NuBus。對于I/O裝置是視頻顯示器124的實施例,處理器121可以使用高級圖形端口(AGP)與顯示裝置IM通信。圖IC描述了在其中主處理器121通過HYPERTRANSPORT、RAPIDI0、或INFINIBAND通信技術直接與I/O裝置130b 通信的計算機100的實施例。圖IC也描述了在其中本地總線和直接通信相混合的實施例 處理器121使用本地互連總線與I/O裝置130a通信同時直接與I/O裝置130b通信。各式各樣的I/O裝置130a-130n可以存在于計算裝置100中。輸入裝置包括鍵盤、 鼠標、觸控板、軌跡球、話筒、撥號盤和繪圖板。輸出裝置包括視頻顯示器、揚聲器、噴墨打印機、激光打印機和熱升華打印機。如圖IB所示,I/O裝置可以由I/O控制器123控制。I/O 控制器可以控制一個或多個I/O裝置,例如鍵盤1 和指示裝置127(如鼠標或光筆)。此外,I/O裝置還可以為計算裝置100提供存儲和/或安裝介質116。在其它實施例中,計算裝置100可以提供USB連接(未示出)以接收手持USB存儲裝置,例如由位于美國加州Los Alamitos的Twintech Industry公司生產的設備的USB閃存驅動線。再次參考圖1B,計算裝置100可以支持任意適當的安裝裝置116,例如用于接收像 3. 5英寸、5. 25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅動器、⑶-ROM驅動器、⑶-R/RW驅動器、DVD-ROM驅動器、閃存驅動器、多種格式的磁帶驅動器、USB設備、硬盤驅動器或適于安裝軟件和程序的任意其它設備。計算裝置100還可以包括存儲裝置,諸如一個或者多個硬盤驅動器或者獨立磁盤冗余陣列,用于存儲操作系統和其它相關軟件,以及用于存儲諸如涉及客戶機代理120的任意程序的應用軟件程序?;蛘?,可以使用安裝裝置116的任意一種作為存儲裝置。此外,操作系統和軟件可從可引導介質運行,可引導介質例如是可引導 CD,諸如ΚΝ0ΡΡΙΧ,其為一種用于GNU/Linux的可引導CD,可自knoppix. net作為GNU/Linux 分發(fā)獲得。此外,計算裝置100可以包括網絡接口 118以通過多種連接來與網絡104對接,所述連接包括但不限于標準電話線路、LAN或WAN鏈路(例如802. 11、Tl、Τ3、561Λ、 X. 25、SNA、DECNET)、寬帶連接(如ISDN、幀中繼、ATM、千兆以太網、SONET上以太網 (Ethernet-over-SONET))、無線連接、或上述任意或全部的某種組合。使用多種通信協議(例如 TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纖分布數據接口 (FDDI)、RS232、RS485、IEEE802. 11、IEEE802. 11a、IEEE802. lib、IEEE802. llg、CDMA、GSM、 WiMax和直接異步連接)可建立連接。在一個實施例中,計算裝置100可以通過任意類型和/或形式的網關或諸如安全套接字層(SSL)或傳輸層安全(TLS)協議,或由位于美國佛羅里達州Ft. Lauderdale的Citrix Systems公司制造的Citrix網關協議的隧道協議來與其他計算裝置100’通信。網絡接口 118可以包括內置網絡適配器、網絡接口卡、PCMCIA網絡卡、卡總線網絡適配器、無線網絡適配器、USB網絡適配器、調制解調器或適用于將計算裝置100對接到能夠通信并執(zhí)行這里所說明的操作的任意類型的網絡的任意其它設備。在一些實施例中,計算裝置100可以包括多個顯示裝置1對『12如或與其相連,這些顯示裝置各自可以是相同或不同的類型和/或形式。因而,任意一種I/O裝置130a-130n 和/或I/O控制器123可以包括任一類型和/或形式的適當的硬件、軟件或硬件和軟件的組合,以支持、允許或提供通過計算裝置100連接和使用多個顯示裝置12如-1對11。例如,計算裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅動器和/或庫,以與顯示裝置1^8-12 對接、通信、連接或以其他方式使用顯示裝置12如-1對11。在一個實施例中,視頻適配器可以包括多個連接器以與多個顯示裝置1對『12如對接。在其它實施例中, 計算裝置100可以包括多個視頻適配器,每個視頻適配器與顯示裝置中的一個或多個連接。在一些實施例中,計算裝置100的操作系統的任一部分都可以被配置用于使用多個顯示器12如-1對11。在其它實施例中,顯示裝置12如-12如中的一個或多個可以由一個或多個其它計算裝置提供,諸如(例如通過網絡)與計算裝置100連接的計算裝置IOOa 和100b。這些實施例可以包括被設計和構造的任一類型的軟件,以使用另一個計算機的顯示裝置作為計算裝置100的第二顯示裝置IMa。本領域的普通技術人員會認識和意識到可以將計算裝置100配置成擁有多個顯示裝置的各種方式和實施例。在進一步的實施例中,I/O裝置130可以是系統總線150和外部通信總線之間的橋,所述外部通信總線如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire 總線、FireffireSOO總線、以太網總線、AppleTalk總線、千兆位以太網總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、krialPlus總線、SCI/LAMP總線、光纖信道總線、串行 SCSI總線或HDMI總線。圖IB和IC中所描述類型的計算裝置100通常地在操作系統的控制下運行,操作系統控制任務的調度和對系統資源的訪問。計算裝置100可運行任一操作系統,諸如任一版本的MICROSOFT WINDOWS操作系統;不同發(fā)行版本的Unix和Linux操作系統;用于 Macintosh計算機的MAC OS的任意版本;任意嵌入式操作系統;任意實時操作系統;任意開源操作系統;任意專有操作系統;任意用于移動計算裝置的操作系統,或者能夠在計算裝置上運行且執(zhí)行此處所描述的操作的任意其它操作系統。典型的操作系統包括但不限于WINDOWS 3. χ、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3. 51、WINDOWS NT 4. 0,WINDOWS CE,WINDOWS MOBILE,WINDOWS XP 禾口 WINDOWS VISTA,所有這些均由位于美國華盛頓州Redmond的微軟公司出品;由位于美國加州Cupertino的蘋果計算機出品的Mac OS ;由位于美國紐約州Armonk的國際商業(yè)機器公司出品的OS/2 ;以及由位于美國猶他州 Salt Lake City的Caldera公司發(fā)布的可免費使用的Linux操作系統或者任意類型和/或形式的Unix操作系統,以及其它。計算機系統100可以是任意工作站、電話、臺式電腦、膝上型或筆記本電腦、服務器、掌上電腦、移動電話或其他便攜電信設備、媒體播放設備、游戲系統、移動計算裝置,或能夠通信的任意其它類型和/或形式的計算、電信或者媒體裝置。計算機系統100有足夠的處理器能力和存儲容量以執(zhí)行此處所述的操作。例如,計算機系統100可包括由位于美國加州Cupertino的蘋果計算機公司出品的IPOD系列設備、由位于日本東京的索尼公司出品的 PLAYSTATI0N2、PLAYSTATI0N3 或 PERSONAL PLAYSTATION PORTABLE (PSP)設備,由位于日本Kyoto 的Nintendo有限公司出品的NINTENDO DS,NINTENDO GAMEBOY,NINTENDO GAMEBOY ADVANCED或NINTENDO REVOLUTION設備,或者由位于美國華盛頓州Redmond的微軟公司出品的XBOX或XBOX 360設備。在一些實施例中,計算裝置100可以有不同的處理器、操作系統以及與該裝置一致的輸入設備。例如,在一個實施例中,計算裝置100是由I^lm公司出品的TRE0180、270、 600、650、680、700p、700w/wx、750、750p、800w、Centro、Pro 智能電話。在這些實施例的一些中,TERO智能電話是在I^lmOS操作系統的控制下操作并且包括筆輸入設備以及五向導航設備。在其他實施例中,計算裝置100是移動設備,例如,JAVA使能蜂窩電話或個人數字助理(PDA),諸如 i55sr、i58sr、i85s、i88s、i90c、i95cl、i335、i365、i570、1576、i580、 i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、 776 或 imllOO,以上這些均由位于美國伊利諾伊州khaumburg的摩托羅拉公司制造;由位于日本Kyoto的 Kyocera公司制造的6035或7135 ;或者由位于韓國首爾的Samsung電子有限公司制造的 300或i330。在一些實施例中,計算裝置100是由位于芬蘭的諾基亞公司制造或由位于瑞典 Lund 的 Sony Ericsson MobileCommunications AB 公司制造的移動設備。在其他實施例中,計算裝置100是黑莓(Bladcberry)手持或智能電話,諸如由 Research In Motion有限公司制造的設備,包括黑莓7100系列、8700系列、7700系列、 7200系列、黑莓7520或黑莓PERAL 8100,8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve 8900、黑莓Pearl Flip。在其他實施例中,計算裝置100是智能電話、Pocket PC、 Pocket PC電話,或支持Microsft Windows Mobile Software的其它手持移動設備。此外, 計算裝置100可以是任意工作站、臺式電腦、膝上型或筆記本電腦、服務器、掌上電腦、移動電話、任意其它計算機、或能夠通信并有足夠的處理器能力和存儲容量以執(zhí)行此處所述操作的其它形式的計算或者電信設備。在一些實施例中,計算裝置100是數字音頻播放器。在這些實施例的一個中,計算裝置100是諸如由位于美國加州Cupertino的蘋果計算機公司制造的Apple IPOD,IPOD Touch, IPOD ΝΑΝΟ和IPOD SHUFFLE系列設備的數字音頻播放器。在這些實施例的又一個中,數字音頻播放器可作為便攜媒體播放器和作為大容量存儲裝置來工作。在其他實施例中,計算裝置100是諸如由位于美國新澤西州Ridgefield Park的Samsung Electronics America公司制造的DigitalAudioPlayer Select MP3播放器,或由位于美國伊利諾伊州 Schaumburg的Motorola公司制造的Motorola m500或m25的數字音頻播放器。在其他實施例中,計算裝置100是便攜媒體播放器,諸如由CreativeTechnologies有限公司制造的 ZEN VISION W,ZEN VISION系列、ZEN PORTABLEMEDIA CENTER設備或MP3播放器的Digital MP3系列。仍在其他實施例中,計算裝置100是支持以下文件格式的便攜媒體播放器或數字音頻播放器,這些文件格式包括,但不限于MP3、WAV、M4A/AAC、WMA Protected AAC, AIFF, Audible 音頻書、Apple Lossless 音頻文件格式和.mov、. m4v 以及.mp4MPEG_4 (H. 264/ MPEG-4AVC)視頻文件格式。在一些實施例中,計算裝置100包括設備的組合,例如與數字音頻播放器或便攜媒體播放器相組合的移動電話。在這些實施例的一個中,計算裝置100是智能電話,例如由蘋果計算機公司制造的iPhone,或由Research InMotion有限公司制造的黑莓設備。又一個實施例中,計算裝置100是裝有web瀏覽器和麥克風與揚聲器系統(如電話耳機)的筆記本電腦或臺式電腦。在這樣的實施例中,計算裝置100是web使能的(web-enabled)的并且能接聽和啟動電話呼叫。在其他實施例中,計算裝置100是組合數字音頻播放器和移動電話的 Motorola RAZR 或 Motorola ROKR 系列。計算裝置100可以是文件服務器、應用服務器、web服務器、代理服務器、設備、網絡設備、網關、應用網關、網關服務器、虛擬化服務器、部署服務器、SSL VPN服務器或防火墻。在一些實施例中,計算裝置100提供遠程認證撥入用戶服務,并被稱為RADIUS服務器。 在其他實施例中,計算裝置100可以有作為應用服務器或者作為主應用服務器工作的能力。在其他實施例中,計算裝置100是刀片服務器。在一個實施例中,計算裝置100可包括活動目錄。計算裝置100可以是應用加速設備。對于其中計算裝置100是應用加速設備的實施例,計算裝置100可提供包括防火墻功能、應用防火墻功能,或負載平衡功能的功能。在一些實施例中,計算裝置100包括諸如由位于美國加州San Jose的Citrix應用網絡組、位于美國加州Mountain View的Silver Peak Systems公司、位于美國力口州San Francisco的Riverbed Technology公司、位于美國華盛頓州Seattle的F5 Networks公司或位于美國力口州Sunnyvale的JuniperNetworks公司制造的系列設備中的一個設備。在其他實施例中,計算裝置100可被稱為客戶機節(jié)點、客戶機器、端節(jié)點或端點。 在一些實施例中,客戶機100具有作為客戶機節(jié)點尋求訪問服務器所提供的資源的能力以及作為服務器節(jié)點為其它客戶機提供對所寄載的資源訪問的能力。在一些實施例中,第一客戶機計算裝置100a與第二服務器計算裝置100b通信。在一個實施例中,客戶機與服務器群中的計算裝置100之一進行通信。例如,通過網絡,客戶機可以請求執(zhí)行由服務器群中的計算裝置100所寄載的各種應用以及接收應用執(zhí)行結果的輸出數據以用于顯示。在一個實施例中,客戶機執(zhí)行程序鄰近應用(program neighborhood application)以與服務器群中的計算裝置100通信。計算裝置100可以執(zhí)行、操作或者以其它方式提供應用,該應用可以是任何類型和/或形式的軟件、程序或可執(zhí)行指令,諸如任何類型和/或形式的web瀏覽器、基于web 的客戶機、客戶機-服務器應用、瘦客戶端計算客戶機、ActiveX控件、或Java小程序,或者能夠在計算裝置100上執(zhí)行的任何其他類型和/或形式的可執(zhí)行指令。在一些實施例中,應用可以是由第二計算裝置代表第一計算裝置的用戶執(zhí)行的基于服務器的或者基于遠程的應用。在其他實施例中,第二計算裝置可使用任何瘦客戶端或遠程顯示協議向第一客戶計算裝置顯示輸出的數據,所述協議如由位于美國佛羅里達州Ft. Lauderdale的 Citrix Systems公司制造的獨立計算架構(ICA)協議;或由位于美國華盛頓州Redmond的 Microsoft公司制造的遠程桌面協議(RDP) ;Xll協議;由AT&T貝爾實驗室制造的虛擬網絡計算(VNC)協議;由位于美國加州Sunnyvale和以色列Raanana的Qumranet公司制造的 SPICE協議;由位于美國加州Milpitas的VESA公司制造的Net2Display協議;由位于加拿大不列顛哥倫比亞省Burnaby的Teradici公司制造的PC-over-IP協議;由位于美國加州 San Jose的Wyse Technology公司制造的TCX協議;由位于美國紐約州NewYork的紐約市哥倫比亞大學開發(fā)的THINC協議;或者由位于美國馬薩諸塞州Chelmsford的Desktone公司制造的Virtual-D協議。應用可以使用任何類型的協議,并且其可以是例如HTTP客戶機、 FTP客戶機、Oscar客戶機或Telnet客戶機。在其他實施例中,應用包括與諸如軟IP電話的網絡電話(VoIP)通信有關的任意類型的軟件。在進一步的實施例中,應用包括與實時數據通信有關的任何應用例如用于流式傳輸視頻和/或音頻的應用。一些實施例中,第一計算裝置IOOa代表客戶機計算裝置IOOb的用戶執(zhí)行應用。 其他實施例中,計算裝置IOOa執(zhí)行虛擬機,其提供執(zhí)行會話,在該會話中,代表用戶或客戶機計算裝置IOOb執(zhí)行應用。一個這樣的實施例中,執(zhí)行會話是寄載的桌面會話。另一個這樣的實施例中,計算裝置100執(zhí)行終端服務會話。終端服務會話可以提供寄載的桌面環(huán)境。 在另一個這樣的實施例中,執(zhí)行會話提供對計算環(huán)境的訪問,計算環(huán)境可包括以下的一個或多個應用、多個應用、桌面應用以及在其中可執(zhí)行一個或多個應用的桌面會話。現參考圖2,框圖描述了用于由管理程序控制對物理資源的訪問的系統的一個實施例??偟膩碚f,該系統包括虛擬機250、管理程序101和物理盤228。管理程序101在計算裝置100上執(zhí)行,該計算裝置100還提供物理盤228。虛擬機250包括客戶操作系統110 和虛擬盤142。物理盤2 存儲虛擬盤142的至少一部分。管理程序101在計算裝置100 上執(zhí)行;例如,管理程序可在和圖1A-1C有關的上文所描述的物理CPU221上執(zhí)行。管理程序101給虛擬盤142分配對物理盤228的訪問。管理程序101確定物理盤228的利用程度超過閥值。響應于所述確定,管理程序101限制虛擬盤142對物理盤228的訪問?,F參考圖2,更具體地,物理盤2 是由計算裝置100提供的并且存儲虛擬盤142 的至少一部分。一些實施例中,虛擬盤142與多個物理盤2 相關聯。在這些實施例的一個中,正如與圖1A-1C有關的上文所描述的,一個或多個計算裝置100可以與一個或多個其他計算裝置100交換關于資源池中可用的處理器和其他物理資源的數據,這允許管理程序管理分布在多個物理計算裝置上的資源池。這樣的實施例中,管理程序101可給虛擬盤142 分配對多個計算裝置100的每一個所提供的多個物理盤228的訪問。管理程序在計算裝置100的處理器上執(zhí)行。管理程序給虛擬盤分配對物理盤的訪問量。一個實施例中,管理程序101分配物理盤的一定量的空間。又一個實施例中,管理程序101分配物理盤的多個頁面。一些實施例中,管理程序101將虛擬盤142提供為初始化和執(zhí)行虛擬機250的進程的一部分。一個實施例中,管理程序101包括用于確定物理盤228的利用程度超過閥值的功能以及用于響應于所述確定來限制虛擬盤142對物理盤228的訪問的功能。一些實施例中,管理程序101可包括用于沿虛擬化的輸入/輸出(I/O)路徑攔截虛擬盤142對物理盤 228的調用的功能。在這些實施例的一個中,管理程序101包括攔截和轉換功能,其允許管理程序101攔截來自虛擬盤142的用于訪問物理盤2 的訪問請求(例如攔截讀或寫物理盤2 的請求)并且將來自虛擬盤142的請求中所包含的地址轉換成物理盤2 能夠處理的格式。在這些實施例的又一個中,修改攔截和轉換功能以便包括允許管理程序確定物理盤228的利用程度超過閥值的功能。在這些實施例的又一個中,管理程序101包括從物理盤2 接收錯誤消息并從該錯誤確定物理盤2 的利用程度超過閥值的組件。在這些實施例的又一個中,管理程序101包括用于響應于所述確定來限制虛擬盤142對物理盤228的訪問的功能。一些實施例中,攔截和轉換功能也被稱為塊抽頭模塊(block tap module) 0一個實施例中,管理程序101中的模塊接收指示物理盤228的利用程度已超過閥值的錯誤消息。又一個實施例中,管理程序101內的模塊確定是否以及如何限制虛擬盤142 對物理盤228的訪問。又一個實施例中,該模塊修改虛擬盤142的配置以限制訪問。仍在又一個實施例中,管理程序101內的模塊將要施加于虛擬盤142的限制的標識符傳輸到管理程序101內的第二模塊。又一個實施例中,管理程序101內的模塊是塊抽頭模塊。一個實施例中,控制操作系統105中的模塊從管理程序101接收指示物理盤2 的利用程度已超過閥值的錯誤消息。又一個實施例中,控制操作系統105中的模塊確定是否以及如何限制虛擬盤142對物理盤228的訪問。又一個實施例中,控制操作系統105中的模塊修改虛擬盤142的配置以限制訪問。又一個實施例中,控制操作系統105中的模塊將要施加于虛擬盤142的限制的標識符傳輸到管理程序101。現參考圖3,流程圖描述了用于由管理程序控制對物理資源的訪問的方法的一個實施例??偟膩碚f,該方法包括由管理程序給虛擬機中的虛擬盤分配對至少一個物理盤的訪問量(30 。該方法包括由管理程序確定至少一個物理盤的利用程度超過閥值(304)。該方法包括由管理程序響應于所述確定,限制虛擬盤對物理盤的訪問(306)?,F參考圖3,更具體地,管理程序給虛擬機中的虛擬盤分配對至少一個物理盤的訪問量(302)。一個實施例中,管理程序101在虛擬機的實例化期間分配訪問量。又一個實施例中,管理程序101檢索要分配的訪問量的標識符并在虛擬機的初始化期間分配訪問;例如,配置文件或虛擬機映像可指定要分配的訪問量的值。管理程序確定至少一個物理盤的利用程度超過閥值(304)。一個實施例中,管理程序101確定已經到達至少一個物理盤228的容量限制。又一個實施例中,管理程序101確定虛擬機訪問盤的速度已經超過預定的閥值。又一個實施例中,管理程序101確定物理盤上已發(fā)生錯誤。又一個實施例中,管理程序101從物理盤2 接收指示已超過閥值的錯誤消息。一個實施例中,管理程序101確定虛擬盤142已經超過所分配的對物理盤228的訪問量。又一個實施例中,管理程序101確定在計算裝置100上執(zhí)行的第二虛擬機106b已經超過所分配的對物理盤228的訪問量。又一個實施例中,管理程序101確定在第二計算設裝置IOOb上執(zhí)行的并且具有所分配的對計算裝置100上的物理盤228的訪問量的進程 (例如應用、操作系統或虛擬機)已經超過所分配的對物理盤2 的訪問量。一個實施例中,管理程序101響應于接收來自物理盤228的錯誤消息來做出已經超過閥值的確定。又一個實施例中,管理程序101將規(guī)則應用于來自物理盤228的錯誤消息以便確定是否已經超過閥值。又一個實施例中,管理程序101從控制操作系統105接收已超過閥值的指示。一些實施例中,在控制操作系統105中執(zhí)行的監(jiān)控代理將提供物理盤2 狀態(tài)的請求直接或經由管理程序101傳輸到物理盤228。在這些實施例的一個中,監(jiān)控代理接收來自物理盤2 的狀態(tài)的標識符;例如,物理盤2 可向監(jiān)控代理傳輸物理盤2 上可用的未被使用的盤空間量的標識符。在這些實施例的又一個中,監(jiān)控代理應用規(guī)則以確定物理盤228的狀態(tài)是否超過閥值。在這些實施例的又一個中,監(jiān)控代理向管理程序101傳輸已超過閥值的確定。在這些實施例的又一個中,監(jiān)控代理向管理程序101傳輸用于限制虛擬盤142對物理盤2 訪問的方法的標識符。一些實施例中,管理程序101對虛擬機250屏蔽物理盤228的錯誤。在這些實施例的一個中,該錯誤指示已經超過閥值或者已經達到物理盤228的容量限制。在這些實施例的又一個中,該錯誤包括物理盤2 的硬件故障。在這些實施例的又一個中,該錯誤包括報告故障的超時錯誤以便給一個時間段內的請求提供響應。在這些實施例的又一個中,該錯誤是不合適配置的結果,例如不合適的權限設置。響應于所述確定,管理程序限制虛擬盤對至少一個物理盤的訪問(306)。一個實施例中,管理程序101對虛擬盤142所請求的輸入/輸出(I/O)操作進行速度限制。又一個實施例中,管理程序101掛起虛擬機250到盤,例如物理盤2 或第二計算裝置100上的物理盤228b。又一個實施例中,管理程序101臨時停止虛擬機250的執(zhí)行(其也可以被稱為“暫?!碧摂M機250)。又一個實施例中,管理程序101掛起由虛擬機250執(zhí)行的至少一個進程。又一個實施例中,管理程序101降低虛擬機250執(zhí)行速度。一些實施例中,管理程序 101響應于來自控制操作系統105的指令來限制虛擬盤142對物理盤228的訪問。一些實施例中,管理程序101應用策略以確定是否以及如何限制虛擬機對物理盤的訪問。其他實施例中,管理程序101訪問配置文件以確定是否以及如何限制虛擬機對物理盤228的訪問。在這些實施例的一個中,例如,管理程序101訪問文件,所述文件識別所分配的訪問量,定義閥值以及指定對限制訪問所采取的行為。在這些實施例的又一個中,管理程序101訪問包含閥值和要施加的限制的類型之間映射的文件。通過示例但不限于,管理程序101可訪問包含如下映射的文件
權利要求
1.一種用于在虛擬機執(zhí)行期間由管理程序控制對物理資源的訪問的方法,所述方法包括由管理程序給虛擬機中的虛擬盤分配對至少一個物理盤的訪問量; 由管理程序確定所述至少一個物理盤的利用程度超過閥值;以及由管理程序響應于所述確定來限制虛擬盤對所述至少一個物理盤的訪問。
2.根據權利要求1所述的方法,其中確定還包括由管理程序確定已經達到所述至少一個物理盤的容量限制。
3.根據權利要求1所述的方法,其中確定還包括由管理程序確定虛擬盤訪問盤的速度已經超過閥值。
4.根據權利要求1所述的方法,其中確定還包括由管理程序確定物理盤已經發(fā)生錯誤。
5.根據權利要求4所述的方法,還包括從虛擬機屏蔽所述錯誤。
6.根據權利要求1所述的方法,其中限制還包括對虛擬盤所請求的輸入/輸出(I/O) 操作進行速度限制。
7.根據權利要求1所述的方法,還包括掛起虛擬機執(zhí)行的至少一個進程。
8.根據權利要求1所述的方法,還包括暫停虛擬機的執(zhí)行。
9.根據權利要求1所述的方法,還包括降低虛擬機的執(zhí)行速度。
10.一種用于在虛擬機執(zhí)行期間由管理程序控制對物理資源的訪問的系統,所述系統包括由計算裝置提供的物理盤,其存儲虛擬機中虛擬盤的至少一部分;以及在計算裝置上執(zhí)行的管理程序,所述管理程序用于i)給虛擬盤分配對物理盤的訪問量,ii)確定物理盤的利用程度超過閥值,以及iii)響應于所述確定來限制虛擬盤對物理盤的訪問。
11.根據權利要求10所述的系統,其中所述管理程序還包括用于對虛擬盤所請求的輸入/輸出(I/O)操作進行速度限制的裝置。
12.根據權利要求10所述的系統,其中所述管理程序還包括用于掛起虛擬機執(zhí)行的至少一個進程的裝置。
13.根據權利要求10所述的系統,其中所述管理程序還包括用于暫停虛擬機執(zhí)行的裝置。
14.根據權利要求10所述的系統,其中所述管理程序還包括用于降低虛擬機的執(zhí)行速度的裝置。
15.根據權利要求10所述的系統,其中所述管理程序還包括用于確定已經達到所述至少一個物理盤的容量限制的裝置。
16.根據權利要求10所述的系統,其中所述管理程序還包括用于確定虛擬盤訪問盤的速度已經超過閥值的裝置。
17.根據權利要求10所述的系統,其中所述管理程序還包括用于確定物理盤上已經發(fā)生錯誤的裝置。
18.根據權利要求17所述的系統,其中所述管理程序還包括用于從虛擬機屏蔽所述錯誤的裝置。
全文摘要
用于在虛擬機執(zhí)行期間由管理程序控制對物理資源的訪問的系統包括物理盤和管理程序。物理盤是由計算裝置提供的并且存儲虛擬盤的至少一部分。管理程序在計算裝置上執(zhí)行。管理程序給虛擬盤分配對物理盤的訪問量。管理程序確定物理盤的利用程度已超過閥值。管理程序響應于所述確定來限制虛擬盤對物理盤的訪問。
文檔編號G06F3/06GK102257481SQ200980151636
公開日2011年11月23日 申請日期2009年11月30日 優(yōu)先權日2008年12月23日
發(fā)明者A·K·沃菲爾德 申請人:思杰系統有限公司