虛擬化環境中存儲優化選擇的製作方法
2023-09-21 08:41:40
專利名稱:虛擬化環境中存儲優化選擇的製作方法
技術領域:
本申請總的涉及虛擬機配置。本申請尤其涉及配置虛擬機中的虛擬磁碟。
背景技術:
虛擬機典型地可以訪問使用一個或多個存儲優化所配置的虛擬磁碟。配置虛擬磁碟以具有特定存儲優化通常要求了解虛擬磁碟的磁碟類型。當虛擬機被創建時,被包含在其內的虛擬磁碟的類型可能是不為所知的。在這些實例中,因為虛擬機創建器可能不了解虛擬磁碟的磁碟類型,所以虛擬機創建器不能夠選擇有效的存儲優化。在虛擬桌面架構環境中,虛擬磁碟可以是任何磁碟類型。例如,虛擬磁碟可以存儲作業系統映像,虛擬機可以從該作業系統映像啟動;或者虛擬磁碟可包括存放當虛擬機重啟時無效的和被損壞的數據的非持久性回寫高速緩存。在一些實例中,虛擬磁碟可以是被創建以傳遞用於在虛擬機啟動後定製虛擬機的數據和二進位數據的映像定製磁碟。不同的磁碟類型通常有不同的性能,因此這些不同磁碟類型通常映射到不同的磁碟存儲優化。虛擬化平臺通常不能識別被包含在特定虛擬機中的磁碟的類型。相反地,創建虛擬機的系統通常是了解特定虛擬機中虛擬磁碟的磁碟類型的唯一系統。因此為虛擬化平臺選擇存儲特定的優化可能是困難的,因為該平臺不了解被包含在特定虛擬機中的虛擬機磁碟是什麼類型。
發明內容
從最廣義的意義上,本發明描述了向虛擬化環境通知被包含在虛擬機中虛擬磁碟的磁碟類型的方法和系統。在多個實例中,虛擬化環境不了解虛擬機中虛擬磁碟的磁碟類型。因此虛擬化環境通常不能為虛擬機適當地選擇存儲特定的優化。通過向虛擬化環境通知虛擬機中虛擬磁碟的磁碟類型,那個虛擬化環境可為那個虛擬機選擇合適的存儲特定的優化。在一個方面,此處描述了使用指示磁碟的磁碟類型的元數據為虛擬化環境中的磁碟選擇存儲優化的方法。在計算設備上執行的虛擬桌面架構創建包括至少一個虛擬磁碟的虛擬機模板。接著,虛擬桌面架構響應於創建所述虛擬機模板修改所述至少一個虛擬磁碟以便與描述所述至少一個虛擬磁碟的磁碟類型的元數據相關聯或者包括描述所述至少一個虛擬磁碟的磁碟類型的元數據。虛擬化環境執行使用由虛擬桌面架構創建的虛擬機模板所創建的虛擬機。虛擬化環境的存儲子系統獲得所述至少一個虛擬磁碟的元數據,並且部分地基於所述元數據中所描述的磁碟類型為所述至少一個虛擬磁碟選擇存儲優化。在一些實施例中,該方法還包括複製虛擬機模板以創建包括包含描述磁碟類型的元數據的所述至少一個虛擬磁碟的第二虛擬機模板。在其他實施例中,該方法還包括根據所選擇的存儲優化附接經優化的存儲。仍在其他實施例中,存儲子系統部分地基於所述磁碟類型和指定的磁碟存儲類型選擇存儲優化。在一些實施例中,修改虛擬磁碟還包括修改所述虛擬磁碟以與描述作業系統映像磁碟類型的元數據的相關聯或包括描述作業系統映像磁碟類型的元數據。在這些實施例中,存儲子系統選擇包括創建虛擬磁碟的高速緩存的存儲優化。在一個實施例中,虛擬磁碟可以被修改以便與描述非持久性高速緩存磁碟類型的元數據相關聯或者包括描述非持久性高速緩存磁碟類型的元數據。在這個實施例中,存儲子系統可選擇包括重排序寫操作和提前的寫確認的任何一個的存儲優化。在又一個實施例中,虛擬磁碟可以被修改以便與描述映像定製磁碟類型的元數據相關聯或者包括描述映像定製磁碟類型的元數據。在這個實施例中,存儲子系統可選擇包括安全措施的存儲優化。在另一個方面,此處描述的是一種使用指示磁碟的磁碟類型的元數據為虛擬化環境中的磁碟選擇存儲優化的系統。所述系統包括在計算設備上執行以創建包括至少一個虛擬磁碟的虛擬機模板的虛擬桌面架構。該虛擬桌面架構接著響應於創建所述虛擬機模板,修改所述至少一個虛擬磁碟以便與描述所述至少一個虛擬磁碟的磁碟類型的元數據相關聯或包括描述所述至少一個虛擬磁碟的磁碟類型的元數據。該系統還包括在虛擬化環境中執行的虛擬機,其中所述虛擬機是使用由所述虛擬桌面架構創建的虛擬機模板創建的。該系統也包括在虛擬化環境中執行以獲得所述至少一個虛擬磁碟的元數據的存儲子系統。當獲得所述元數據時,存儲子系統部分地基於所述元數據中所描述的磁碟類型為所述至少一個虛擬磁碟選擇存儲優化。
在下面的附圖描述了此處描述的系統和方法的某些示意性實施例,其中相同的附圖標記涉及相同的元件。這些所描述的實施例應被理解所公開的方法和系統的示意性說明,而不是對於本申請的任何限制。圖IA描述了提供對可執行應用程式的計算設備的遠程訪問的網絡環境的實施例;圖IB和圖IC是描述計算設備的實施例的框圖;圖2A和圖2B是描述虛擬化環境的實施例的框圖;圖3是描述虛擬化環境和虛擬桌面架構環境的實施例的框圖;圖4A是描述用於修改虛擬磁碟的方法的實施例的流程圖;圖4B是描述用於選擇存儲優化的方法的實施例的流程圖。
具體實施例方式圖IA描述了計算環境101的一個實施例,該計算環境包括與一個或多個伺服器106A-106N(總的稱為「伺服器106」)通信的一個或多個客戶機102A_102N(總的稱為「客戶機102」)。網絡被安裝在客戶機102與伺服器106之間。在一個實施例中,計算環境101可包括安裝在伺服器106和客戶機102之間的設備。這個設備可管理客戶機/伺服器連接,並且在一些情況下可在多個後端伺服器之間負載平衡客戶機連接。客戶機102在一些實施例中可被認為是單個客戶機102或客戶機102的一個組,而伺服器106可被認為是單個伺服器106或伺服器106的一個組。在一個實施例中,單個客戶機102可與不只一個伺服器106通信,而在另一個實施例中,單個伺服器106可與不只一個客戶機102通信。仍在另一個實施例中,單個客戶機102與單個伺服器106通信。在一些實施例中,客戶機102可被稱為下面術語中的任何一個客戶機102、客戶端、客戶計算機、客戶設備、客戶計算設備、本地機器、遠程機器、客戶節點、端點、端節點或第二機器。在一些實施例中,伺服器106可被稱為下列術語中的任何一個伺服器、本地機器、伺服器群、主計算設備或第一機器。在一個實施例中,客戶機102可以是虛擬機102C。虛擬機102C可以是任何虛擬機,而在一些實施例中虛擬機102C可以是由XenSolution、CitrixSystems、IBM、VMware公司開發的虛擬機監控程序或任何其他虛擬機監控程序管理的任何虛擬機。在其他實施例中,虛擬機102C可以由任何虛擬機監控程序管理,而仍在其他實施例中,虛擬機102C可由在伺服器106上執行的虛擬機監控程序或在客戶機102上執行的虛擬機監控程序管理。在一些實施例中,客戶機102可以執行、操作或者以其它方式提供應用,該應用可為下列應用中的任何一個軟體、程序、可執行指令、虛擬機、虛擬機監控程序、web瀏覽器、基於web的客戶機、客戶機-伺服器應用、瘦客戶端計算客戶機、ActiveX控制項、Java小程序、與類似軟IP電話的網絡電話(VoIP)通信相關的軟體、流式傳輸視頻和/或音頻的應用、促進實時數據通信的應用、HTTP客戶機、FTP客戶機、Oscar客戶機、Telnet客戶機或可執行指令的任何其他集合。仍在其他實施例中包括顯示由在伺服器106或其他位於遠程的機器上遠程執行的應用所產生的應用輸出的客戶設備102。在這些實施例中,客戶設備102可以在應用窗口、瀏覽器或其他輸出窗口中顯示應用輸出。在一個實施例中,應用是桌面,而在其他實施例中,應用是產生桌面的應用。在一些實施例中,伺服器106執行遠程呈現客戶端或其他客戶端或程序,這些客戶端或程序使用瘦客戶端或遠程顯示協議來捕獲由在伺服器106上執行的應用產生的顯示輸出並且將應用顯示輸出傳輸到遠程客戶機102。瘦客戶端或遠程顯示協議可以是下列協議的任何一個由位於Ft. LauderdaleFlorida的Citrix Systems公司製造的獨立計算架構(ICA)協議;或由位於Washington,Redmond的Microsoft公司製造的遠程桌面(RDP)協議。計算環境101可包括不只一個伺服器106A-106N,這樣的伺服器106A-106N邏輯上一起聚合到伺服器群106中。伺服器群106可包括地理上分散並且邏輯上一起聚合到伺服器群106中的伺服器106,或者互相之間位置接近的並且邏輯上一起聚合到伺服器群106中的伺服器106。在一些實施例中,伺服器群106中地理上分散的伺服器106A-106N可使用WAN、MAN或LAN通信,其中不同地理區域可以被表徵為不同大陸、大陸的不同地區、不同國家、不同州、不同城市、不同校園、不同房間、或前述地理位置的任何組合。在一些實施例中,伺服器群106可以作為單個實體被管理,而在其它實施例中,伺服器群106可包括多個伺服器群106。在一些實施例中,伺服器群106可包括執行實質上類似的類型的作業系統平臺(例如,由 Washington,Redmond 的 Microsoft 公司製造的 WINDOWS NT,Unix,Linux 或 SNOWLEOPARD)。在其他實施例中,伺服器群106可包括執行第一類型作業系統平臺的第一組伺服器106和執行第二類型作業系統平臺的第二組伺服器106。在其他實施例中,伺服器群106可包括執行不同類型作業系統平臺的伺服器106。
在一些實施例中,伺服器106可為任何伺服器類型。在其他實施例中,伺服器106可以是下列伺服器類型的任何一個文件伺服器、應用伺服器、web伺服器、代理伺服器、設備、網絡設備、網關、應用網關、網關伺服器、虛擬化伺服器、部署伺服器、SSL VPN伺服器、防火牆、應用伺服器或主應用伺服器、執行活動目錄的伺服器106、或者執行提供防火牆功能、應用功能或負載平衡功能的應用加速程序的伺服器106。在一些實施例中,伺服器106可以是包含遠程認證撥入用戶服務的RADIUS伺服器。在伺服器106包括設備的實施例中,伺服器106可以是由下列製造商的任何一個製造的設備=Citrix應用網絡組、Silver PeakSystems 公司、Riverbed Thechnology 公司、F5 Networks 公司、或 Juniper NetWorks 公司。一些實施例中包括第一伺服器106A,其接收來自客戶機102的請求、轉發該請求到的第二伺服器106B,以及使用來自第二伺服器106B的響應來對客戶機102所產生的請求進行響應。第一伺服器106A可獲得對客戶機102可用的應用列表,以及與寄載應用列表中所識別的應用的應用伺服器106相關的地址信息。第一伺服器106A還可使用web接口對客戶機請求提供響應,並直接與客戶機102通信以向客戶機102提供對所識別應用的訪問。在一些實施例中,伺服器106可執行下列應用中的任何一個使用瘦客戶端協議傳輸應用顯示數據到客戶機的瘦客戶端應用、遠程顯示呈現應用、Citrix Systems公司的CITRIX ACCESS SUITE 的任何部分,諸如 METAFRAM 或者 CITRIX PRESENTATION SERVER ;Microsoft公司製造的MICROSOFT WINDOWS終端服務或由Citrix Systems公司開發的ICA客戶端。另一個實施例中包括是諸如下列應用伺服器的伺服器106 提供電子郵件服務的郵件伺服器,例如由Microsoft公司製造的MICROSOFT EXCHANGE ;web或hternet伺服器、桌面共享伺服器,協同伺服器或任何其他類型的應用伺服器。仍在其他實施例中伺服器106執行下列類型的所寄載的伺服器應用的任何一個Citrix Online Division公司提供的 G0T0MEETING、位於 California,SantaClara 的 WebEx 公司提供的 TOBEX,或者 Microsoft公司提供的 MicrosoftOffice LIVE MEETING。在一些實施例中,客戶機102可以是尋求訪問伺服器106提供的資源的客戶機節點。在其他實施例中,伺服器106可為客戶機102或客戶機節點提供對所寄載的資源的訪問。在一些實施例中,伺服器106作為主節點運行,這樣它可與一個或多個客戶機102或伺服器106通信。在一些實施例中,主節點可識別並且向一個或多個客戶機102或伺服器106提供與寄載所請求的應用的伺服器106相關的地址信息。仍在其他實施例中,主節點可以是伺服器群106、客戶機102、客戶機節點102的集群或設備。一個或多個客戶機102和/或一個或多個伺服器106可以在被安裝在計算環境中的機器和設備之間的網絡104上傳輸數據。網絡104可包括一個或多個子網,且可被安裝在客戶機102、伺服器106和被包含在計算環境101中的計算機器和設備的任何組合之間。在一些實施例中網絡104可以是區域網(LAN)、城域網(MAN)、廣域網(WAN),包括位於客戶機102和伺服器106之間的多個子網104的主網104、具有專用子網104的主公共網104、具有公共子網104的主專用網104或者具有專用子網104的主專用網104。仍在進一步的實施例中網絡104可以是任何的下列網絡類型點對點網絡、廣播網絡、電信網絡、數據通信網絡、計算機網絡、ATM(異步傳輸模式)網絡、SONET(同步光纖網絡)網絡、SDH(同步數字體系)網絡、無線網絡、有線網絡或包括諸如紅外信道或者衛星頻帶無線鏈路的網絡104。網絡104的拓撲在不同的實施例中可以不同,可能的網絡拓撲包括總線型網絡拓撲、星型網絡拓撲、環型網絡拓撲、基於中繼器的網絡拓撲或者分層星型網絡拓撲。其他的實施例中包括使用協議在行動裝置間通信的行動電話網絡的網絡104,其中,協議可以是下列協議的任何一個AMPS、TDMA, CDMA、GSM、GPRSUMTS或可在行動裝置間傳輸數據的其他任何協議。圖IB所示是計算設備100的實施例,其中如圖IA所示的客戶機102和伺服器106可以被部署為和/或被執行在此處所描述和圖示的計算設備100的任何實施例上。被包含在計算設備100中的系統總線150可以和下列組件通信中央處理單元121、主存儲器122、存儲裝置128、輸入輸出(I/O)控制器123、顯示設備124A-1MN、安裝設備116和網絡接口118。在一個實施例中存儲裝置1 包括作業系統、軟體程序和客戶機代理120。在一些實施例中,I/O控制器123還連接到鍵盤1 和定位設備127。其他實施例中可包括連接到不只一個輸入輸出設備130A-130N的I/O控制器123。圖IC描述了計算設備100的一個實施例,其中如圖IA所示的客戶機102和伺服器106可以被部署為和/或被執行在此處所描述和圖示的計算設備100的任何實施例上。被包含在計算設備100中的系統總線150可以和下列組件通信橋170和第一 I/O設備130A。在另一個實施例中,橋170還和主中央處理單元121通信,其中中央處理單元121可進一步與第二 I/O設備130B、主存儲器122和高速緩衝存儲器140通信。I/O埠、存儲器埠103和主處理器被包含在中央處理單元121中。在計算設備100的實施例中可包括被下列組件配置的任何一個表徵的中央處理單元121 響應並處理從主存儲器單元122取出的指令的邏輯電路;微處理器單元,諸如由htel公司製造的微處理器單元;由Motorola公司製造的微處理器單元;由Califirnia, Santa Clara的Transmeta公司製造的微處理器單元;諸如國際商業機器公司製造的RS/6000處理器;由Advanced Micro Devices公司製造的處理器;或邏輯電路的任何其他組合。仍在中央處理單元122的其他實施例可包括下列任何組合微處理器、微控制器、具有單處理核的中央處理單元、具有兩個處理核的中央處理單元或具有不只一個處理核的中央處理單元。儘管圖IC描述了包括單個中央處理單元121的計算設備,但在一些實施例中計算設備100可包括一個或多個處理單元121。在這些實施例中,計算設備100可存儲和執行固件或其他可執行指令,這些固件或指令在被執行時,指引一個或多個處理單元121來同時執行指令或同時在一個數據片上執行指令。在其他實施例中,計算設備100可存儲和執行固件或其他可執行指令,這些固件或指令在被執行時,指引一個或多個處理單元121各自執行一組指令的一部分。例如每個處理單元121可被指示執行程序的一部分或者程序中的特定模塊。在一些實施例中,處理單元121可包括一個或多個處理核。例如處理單元121可有兩個核、四個核、8個核等。在一個實施例中,處理單元121可包括一個或多個並行處理核。在一些實施例中處理單元121的處理核可訪問作為全局地址空間的可利用內存、或在其他實施例中,計算設備100的存儲器可被分段並分配到處理單元121的特定核。在一個實施例中,計算設備100中的一個或多個處理核或處理器可各自訪問本地存儲器。仍在又一個實施例中,計算設備100的存儲器可在一個或多個處理器或處理核之間共享,而其他存儲器可被特定處理器或處理器子集訪問。在計算設備100包括不只一個處理單元的實施例中,多個處理單元可被包含在單個集成電路(IC)中。在一些實施例中,這些多個處理器可通過內部高速總線連接在一起,該總線可被稱為元件互聯總線。在計算設備100包括一個或多個處理單元121,或處理單元121包括一個或多個處理核的實施例中,處理器可同時在多片數據上執行單個指令(SIMD),或在其他實施例中處理器可同時在多片數據上執行多個指令(MIMD)。在一些實施例中,計算設備100可包括任意數量的SIMD和MIMD處理器。在一些實施例中,計算設備100可包括圖像處理器或圖形處理單元(未示出)。圖形處理單元可包括軟體和硬體的任何組合,並且還可輸入圖形數據和圖形指令、從所輸入的數據和指令渲染圖形和輸出所渲染的圖形。在一些實施例中,圖形處理單元可被包含在處理單元121的內部。在其他實施例中,計算設備100可包括一個或多個處理單元121,其中至少一個處理單元121被專用於處理和渲染圖形。在計算設備100的一個實施例中包括通過也稱為背側總線的第二總線與高速緩衝存儲器140通信的中央處理單元,而在計算設備100的又一個實施例中包括使用系統總線150與高速緩衝存儲器140通信的中央處理單元121。在一些實施例中,本地系統總線150也被中央處理單元所使用來與多種類型的I/O設備130A-130N進行通信。在一些實施例中,本地系統總線150可以是下列類型總線的任何一個VESA VL總線、ISA總線、EISA總線、微通道體系結構(MCA)總線、PCI總線、PCI-X總線、PCI-Express總線或NuBus。計算設備100的其他實施例中包括是與中央處理單元121通信的視頻顯示器124的I/O設備130A-130N。仍在計算設備100的其他形式中包括通過下列連接的任何一個連接到I/O設備130A-130N的處理器121,這些連接如下。超傳輸(HyperTransport)、快速I/O或者InfiniBand.計算設備100的進一步的實施例包括處理器121,該處理器使用本地互連總線與一個I/O設備130A進行通信,並使用直接連接與第二 I/O設備130B進行通信。在一些實施例中,計算設備100包括主存儲器單元122和高速緩衝存儲器140。高速緩衝存儲器140可以是任何存儲器類型,且在一些實施例中可以是下列類型存儲器的任何一個SRAM、BSRAM或EDRAM。其他實施例中包括的高速緩衝存儲器140和主存儲器單元122,可以是下列類型存儲器的任何一個靜態隨機訪問存儲器(SRAM)、Burst (脈衝串)SRAM或SynchBurstSRAM(BSRAM)、動態隨機訪問存儲器DRAM、快速頁模式DRAM(FPM DRAM)、增強DRAM (EDRAM)、擴展數據輸出RAM (EDO RAM)、擴展數據輸出DRAM (ED0DRAM)、脈衝串擴展數據輸出 DRAM (BEDO DRAM)、增強型 DRAM (EDRAM)、同步 DRAM (SDRAM)、JEDEC SRAM、PC100SDRAM、雙數據傳輸率 SDRAM(DDRSDRAM)、增強 SRAM(ESDRAM)、同步鏈路 DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、鐵電RAM(FRAM)或任何其他類型的存儲器。進一步的實施例包括可通過下列方式訪問主存儲器122的中央處理單元121,這些方式包括系統總線150、存儲器埠 103、或允許處理器121訪問存儲器122的其他連接、總線或埠。計算設備100的一個實施例支持下列安裝設備116的任何一個⑶-ROM驅動器、⑶-R/RW驅動器、DVD-ROM驅動器、多種格式的磁帶驅動器、USB設備、可引導介質、可引導⑶、諸如ΚΝ0ΡΡΙΧ 的用於GNU/Linux分發的可引導⑶、硬碟驅動器或適於安裝應用或軟體的任意其它設備。在一些實施例中應用可包括客戶機代理120或客戶機代理120的任意部分。計算設備100還可以包括可以是一個或者多個硬碟驅動器或者獨立磁碟冗餘陣列的存儲設備128,這裡存儲設備被配置為存儲作業系統、軟體、程序應用、或者至少客戶機代理120的一部分。計算設備100的進一步實施例中包括用作存儲設備128的安裝設備116。
計算設備100還可包括網絡接口 118以通過多種連接,包括但不限於標準電話線路、LAN 或 WAN 鏈路(例如 802. 11,Tl,T3、56kb、X. 25、SNA、DECNET)、寬帶連接(如 ISDN、幀中繼、ATM、千兆乙太網、SONET上乙太網(Ethernet-over-SONET))、無線連接、或上述任意或全部的一些組合,來連接到區域網(LAN)、廣域網(WAN)或網際網路。使用多種通信協議(例如 TCP/IP、IPX、SPX、NetVIOS、Ehernet, ARCNET、SONET、SIDH、光纖分布數據接口 (FDDI)、RS232、RS485、IEEE802. 11、IEEE802. llaIEEE802. lib、IEEE802. llg、CDMA、GSM、WiMax 和直接異步連接)也可建立連接。計算設備100的一個形式包括可以通過任意類型和/或形式的網關或諸如安全套接字層(SSL)或傳輸層安全(TLS),或Citrix Systems公司製造的Gitrix網關協議的隧道協議來與其他計算設備100』通信的網絡接口 118。網絡接口 118的形式可以包括內置網絡適配器、網絡接口卡、PCMCIA網卡、卡總線網絡適配器、無線網絡適配器、USB網絡適配器、數據機或適用於將計算設備100連接到能夠通信並執行這裡所描述的方法和系統的網絡的任意其它設備中的任何一個。計算設備100的實施例包括下列I/O設備130A-130N的任何一個鍵盤126、定位設備127、滑鼠、觸控板、光筆、軌跡球、話筒、繪圖板、視頻顯示器、揚聲器、噴墨印表機、雷射印表機和熱升華印表機、或可執行此處描述的方法和系統的任何其他輸入/輸出設備。在一些實施例中I/O控制器123可連接多個I/O設備130A-130N以便控制一個或多個I/O設備。I/O設備130A-130N的一些實施例被配置為提供存儲或安裝介質116,而其他實施例可為接收諸如由Twintech Industry公司製造的設備的USB快閃記憶體驅動線的USB存儲設備提供通用串行總線(USB)。仍在其他實施例中I/O設備130可以是系統總線150和外部通信總線,如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire總線、FireWire800總線、乙太網總線、AppleTalk總線、千兆位乙太網總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖信道總線或串行SCSI總線之間的橋。在一些實施例中,計算設備100可以連接多個顯示設備124A-1MN,在其他實施例中計算設備100可以連接單個顯示設備124,而仍在其他實施例中計算設備100可以連接相同類型或形式的顯示設備1MA-124N或不同的類型或形式的顯示設備。顯示設備124A-124N的實施例可被如下方式支持和允許一個或多個I/O設備130A-130N、I/O控制器123、I/O設備130A-130N和I/O控制器123的組合、能支持顯示設備124A-1MN的硬體和軟體的任何組合、任意類型和/或形式的視頻適配器、視頻卡、驅動器和/或庫,以與顯示設備124A-1MN對接、通信、連接或使用顯示設備。在一些實施例中,計算設備100可被配置為使用一個或多個顯示設備124A-1MN,這些配置包括有多個連接器以與多個顯示設備124A-124N對接;多個視頻適配器且每個視頻適配器與顯示設備124A-1MN中的一個或多個連接;有作業系統被配置用於支持多個顯示設備124A-1MN ;使用被包含在計算設備100內部的電路和軟體來連接並使用多個顯示設備124A-1MN ;和在主計算設備100和多個次級計算設備上的執行軟體來使主計算設備100能使用次級計算設備的顯示設備作為用於主計算設備的顯示設備124A-1MN。仍在計算設備100的其它實施例中,可包括由多個次級計算設備提供的多個顯示設備124A-124N並通過網絡連接到主計算設備100。在一些實施例中,計算設備100可執行任意作業系統,而在其他實施例中,計算設備100可執行下列作業系統的任何一個諸如WINDOWS 3. X、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3. 51、WINDOWS NT 4. 0、WINDOWS CE、WINDOWS XP 禾口 WINDOWSVISTA的版本的MICROSOFT WINDOWS的作業系統;不同發行版本的Unix和Linux作業系統;由蘋果計算機出品的MAC OS的任意版本;由國際商業機器公司出品的OS/2 ;任意嵌入式作業系統;任意實時作業系統;任意開源作業系統;任意專有作業系統;任意用於移動計算設備的作業系統,或者任意其它作業系統。仍在其他實施例中,計算設備100可執行多個作業系統。例如計算設備100可執行PARALLELS或能執行或管理執行第一作業系統的虛擬機的又一個虛擬化平臺,而計算設備100執行不同於第一作業系統的第二作業系統。計算設備100可以體現為下列計算設備的任何一個計算工作站、桌面計算機、膝上型或筆記本計算機、伺服器、手持計算機、行動電話、便攜通信設備、媒體播放設備、遊戲系統、移動計算設備、筆記本、由蘋果計算機公司出品的IPOD系列設備、由索尼公司出品的PLAYSTATION系列設備的任何一個、由Nintendo公司出品的Nintendo系列設備的任何一個;由微軟公司出品的XBOX系列設備的任何一個或能夠通信並有足夠的處理器能力和存儲容量以執行此處所述的方法和系統的任意其它類型和/或形式的計算或者電信或媒體設備。在其它實施例中,計算設備100可以是諸如下列行動裝置的任何一個的行動裝置JAVA使能蜂窩電話或個人數據助理(PDA),諸如i55sr、i58sr,i85s,i88s,i90c, i95cl或imllOO,以上這些均由摩託羅拉公司製造;由Kyocera公司製造的6035或7135 ;由Samsung電子有限公司製造的 300或i330 ;由I^alm公司出品的Treol80、270、600、650、680、700p、700w或750智慧型電話;或能執行此處所述的方法和系統的任何其他移動計算設備。仍在其他實施例中,計算設備100可以是下列移動計算設備中的任何一個黑莓的任一系列,或由Research In Motion Limited公司出品的其他手持設備;由蘋果計算機公司出品的iPhone ;Palm Pre ;掌上電腦;掌上電腦電話或任何其他手持行動裝置。圖2A示出虛擬化環境的一個實施例。被包括在計算設備201中的硬體層可包括一個或多個物理磁碟204、一個或多個物理設備206、一個或多個物理處理器208和物理存儲器216。在一些實施例中,固件212可被存儲在物理存儲器216的存儲器元件中並且由一個或多個物理處理器208執行。計算設備210還可包括被存儲在物理存儲器216的存儲器元件中並且由一個或多個物理處理器208執行的作業系統214。仍進一步,虛擬機監控程序202可被儲在物理存儲器216的存儲器元件中並且由一個或多個物理處理器208執行。一個或多個虛擬機232A-C(總稱為23 在一個或多個物理處理器208上執行。每個虛擬機232可以有虛擬磁碟226A-C和虛擬處理器228A-C。在一些實施例中,第一虛擬機232A可在虛擬處理器228A上執行包括工具堆棧234的控制程序220。在其他實施例中,一個或多個虛擬機232B-C可在虛擬處理器228B-C上執行客戶作業系統230A-B。進一步參考圖2A,在一個實施例的更多細節中,所描述的虛擬化環境包括Type2虛擬機監控程序202,或執行在計算設備201上的作業系統214中的虛擬機監控程序。在一些實施例中,Type2虛擬機監控程序在作業系統214環境中執行並且虛擬機在虛擬機監控程序之上的層次執行。在許多實施例中,Type2虛擬機監控程序在用戶作業系統的上下文中執行,這樣Type2虛擬機監控程序與用戶作業系統進行交互。在一些實施例中,虛擬化計算環境包括計算設備201。計算設備201可以是任何計算設備,在一些實施例中計算設備201可以是此處描述的任何計算機、設備或計算機器。儘管圖2A示出了單個計算設備201,在一些實施例中由計算設備201存儲和執行的模塊、程序、虛擬機和命令可以被不只一個計算設備201執行。仍在其他實施例中,計算設備201可以是伺服器群。在一個實施例中,計算設備201可包括硬體層210,該硬體層包括與計算設備201通信的一個或多個硬體。在一些實施例中,硬體層210可包括一個或多個物理磁碟204、一個或多個物理設備206、一個或多個物理處理器208和存儲器216。在一些實施例中,硬體層210可包括一個或多個物理磁碟204。物理磁碟204可以是任何硬碟,而在一些實施例中物理磁碟204可以是此處描述的任何硬碟。在一些實施例中,硬體層210可包括一個物理磁碟204。在其他實施例中,硬體層210可包括不只一個物理磁碟204。在一些實施例中,計算設備201可與被包含在硬體層210中作為物理磁碟204的外部硬碟通信。在其他實施例中,硬體層210可包括處理器208。在一些實施例中,處理器208可以是任何處理器,而其他實施例中處理器208可以是此處描述的任何處理器。處理器208可包括一個或多個處理核。在其他實施例中計算設備201可包括一個或多個處理器208。在一些實施例中,計算設備201可包括一個或多個不同處理器,例如處理單元、圖形處理單元或物理引擎。在一些實施例中,物理設備206可以是被包含在計算設備201中的任何設備。在一些實施例中,物理設備206可以是在計算設備201中所包含的設備的任何組合。在一些實施例中,計算設備201可包括一個或多個物理設備206。物理設備206可以是下列設備中的任何一個網絡接口卡、視頻卡、鍵盤、滑鼠、輸入設備、顯示器、顯示設備、揚聲器、光碟機、存儲設備、通用串行總線連接、連接到計算設備201的任何設備、與計算設備201通信的任何設備、印表機、掃描儀或任何其他設備或此處所描述的任何設備。硬體層210還可包括可包含任何類型存儲器的物理存儲器216。在一些實施例中物理存儲器216可包括此處描述的任何存儲器類型。物理存儲器216可存儲數據,以及在一些實施例中可存儲一個或多個程序或可執行指令集。圖2A所示固件212被存儲在計算設備201的物理存儲器216中的。被存儲在物理存儲器216中的程序或可執行指令可由計算設備201上的一個或多個處理器208所執行。在一些實施例中,固件212可以是可執行指令和硬體的任一組合,其控制與計算設備201通信的硬體或被包含在計算設備201內的硬體。在一些實施例中,固件212可控制硬體層210內的一個或多個硬體。在多個實施例中,固件212可被計算設備201內的一個或多個處理器208所執行。在一些實施例中,固件212可以是諸如基本輸入/輸出系統(BIOS)的啟動固件。在計算設備201上執行的另外固件212可以與BIOS相接口。在一個實施例中,計算設備201可包括由一個或多個物理處理器208執行的作業系統214。在一些實施例中,作業系統214是能直接訪問硬體層210中硬體設備的用戶作業系統。作業系統214可以是任何作業系統並且在一些實施例中,作業系統214可以是此處所述的任何作業系統。圖2A示出了一個實施例,其中虛擬機監控程序202在計算設備201上執行的作業系統214的上下文中執行。在這個實施例中,作業系統214可被稱為宿主作業系統214,而其他作業系統可被稱為客戶作業系統。客戶作業系統可包括執行在虛擬機232上的客戶作業系統230A-B,和/或控制程序220。在一些實施例中,計算設備201可包括虛擬機監控程序202。在一些實施例中,虛擬機監控程序202可以是在計算設備201上由處理器208執行以便管理任一數量的虛擬機的程序。虛擬機監控程序202可以被稱為虛擬機監控器,或平臺虛擬化軟體。在一些實施例中,虛擬機監控程序202可以是監控執行在計算設備上的虛擬機的可執行指令和硬體的任何組合。儘管圖2A示出了包括Type2虛擬機監控程序202的虛擬化環境,計算設備201可執行任何其他類型的虛擬機監控程序。例如,計算設備201可以執行包括Typel虛擬機監控程序202的虛擬化環境。在一些實施例中,計算設備201可執行一個或多個虛擬機監控程序202。這些一個或多個虛擬機監控程序202可以是相同類型的虛擬機監控程序,或在其他實施例中可以是不同類型的虛擬機監控程序。在一些實施例中,虛擬機監控程序202可以以模擬直接訪問系統資源的作業系統230或控制程序220的任何方式向在虛擬機232上執行的作業系統230或控制程序220提供虛擬資源。系統資源可包括物理設備、物理磁碟、物理處理器、物理存儲器216和被包含在計算設備201硬體層210中的任何其他組件。在這些實施例中,虛擬機監控程序202可被用來仿真虛擬硬體、劃分物理硬體、虛擬化物理硬體和執行訪問計算環境的虛擬機。仍在其他實施例中,虛擬機監控程序202為在計算設備201上執行的虛擬機232控制處理器調度和存儲器分區。虛擬機監控程序202可包括由位於California,Palo Alto的VMWare公司製造的虛擬機監控程序;XEN虛擬機監控程序,其開發由開源Xen. org社區監督的開源產品;由微軟公司提供的HyperV、虛擬伺服器和虛擬PC虛擬機監控程序,或其他。在一些實施例中,計算設備201執行虛擬機監控程序202,該虛擬機監控程序創建客戶作業系統可在其上執行的虛擬機平臺。在這些實施例中,計算設備201可被稱為宿主伺服器。這樣的計算設備的例子是由位於FL,R)rt Lauderdale的Citrix Systems公司提供的XEN SERVER。在一個實施例中,虛擬機監控程序202創建作業系統230在其中執行的虛擬機232A-B(總的表示為23 。例如,在這些實施例的一個中,虛擬機監控程序202加載虛擬機映像以創建虛擬機232。在這些實施例的另一個中,虛擬機監控程序202在虛擬機232中執行作業系統230。仍在這些實施例的另一個中,虛擬機232執行作業系統230。在一個實施例中,虛擬機監控程序202控制至少一個虛擬機232的執行。在又一個實施例中,虛擬機監控程序202將由計算設備201提供的至少一個硬體資源的抽象提供給至少一個虛擬機232。這個抽象還可被稱為計算設備201上可利用的硬體、內存、處理器和其他系統資源的虛擬化或虛擬視圖。在一些實施例中,硬體或硬體資源可以是在硬體層210中可利用的任何硬體資源。在其他實施例中,虛擬機監控程序202控制虛擬機232訪問計算設備201中可利用的物理處理器208的方式。控制對物理處理器208的訪問可包括確定虛擬機232是否應該訪問處理器208以及物理處理器性能如何呈現給虛擬機232。在一些實施例中,計算設備201可寄載或執行一個或多個虛擬機232。虛擬機232可被稱為域、客戶和/或DOMAIN U。虛擬機232是一組可執行指令,當其被處理器208執行時,模擬物理計算機的操作,從而虛擬機232可類似物理計算設備執行程序或進程。儘管圖2A計算設備201寄載3個虛擬機232的實施例,在其他實施例中,計算設備201可寄載任何數量的虛擬機232。在一些實施例中,虛擬機監控程序202為每個虛擬機232提供物理硬體、內存、處理器和對該虛擬機可利用的其他系統資源的唯一的虛擬視圖。在一些實施例中,該唯一的虛擬視圖可以基於下列的任何一個虛擬機許可;向一個或多個虛擬機標識符應用的策略引擎;訪問虛擬機的用戶;在虛擬機上執行的應用;被虛擬機訪問的網絡;或任何其他類似標準。在其他實施例中,虛擬機監控程序202向每個虛擬機232提供物理硬體、存儲器、處理器和對該虛擬機可利用的其他系統資源的基本上類似的虛擬視圖。每個虛擬機232可包括虛擬磁碟226A-C (總稱為226)和虛擬處理器228A-C (總稱為228)。在一些實施例中,虛擬磁碟2 是計算設備201的一個或多個物理磁碟204的虛擬化視圖,或計算設備201的一個或多個物理磁碟204的一部分的虛擬化視圖。物理磁碟204的虛擬化視圖可由虛擬機監控程序202產生、提供和管理。在一些實施例中,虛擬機監控程序202可為每個虛擬機232提供物理磁碟204的唯一視圖。因此,在這些實施例中,當與其他虛擬磁碟2 相比較時,被包含在每個虛擬機232中的虛擬磁碟2 可以是唯一的。虛擬處理器2 可以是計算設備201的一個或多個物理處理器208的虛擬化視圖。在一些實施例中,物理處理器208的虛擬化視圖可由虛擬機監控程序202產生、提供和管理。在一些實施例中,虛擬處理器2 基本上具有至少一個物理處理器208的所有相同特徵。在其他實施例中,虛擬處理器2 提供物理處理器208的經修改的視圖,從而虛擬處理器228的至少一些特徵可以不同於相應的物理處理器208。控制程序220可執行至少一個應用來管理和配置在虛擬機232以及在一些實施例中計算設備上執行的客戶作業系統。在一些實施例中,控制程序220可被稱為控制作業系統、控制域、域0或dom 0。在一些實施例中,控制程序220可以是XEN虛擬機監控程序的DOMAIN 0或DOM 0。控制程序220可以執行管理應用或程序以進一步顯示管理員用來訪問每個虛擬機232的功能和/和管理虛擬機232的用戶接口。在一些實施例中,由管理程序產生的用戶接口可被用於終止虛擬機232的執行、為虛擬機232分配資源、為虛擬機232指派權限或者管理與虛擬機232相關的安全證書。在一些實施例中,控制程序220可啟動新的虛擬機232或終止正在執行的虛擬機232。在其他實施例中,控制程序220可直接訪問硬體層210內的硬體和/或資源。仍在又一個實施例中,控制程序220可與在計算設備210上且在虛擬機232的上下文之外執行的程序和應用相接口。類似地,控制程序220可與在虛擬機232的上下文內執行的程序和應用相接口。在一個實施例中,虛擬機監控程序202可執行虛擬機232內的控制程序220。虛擬機監控程序202可創建和啟動虛擬機232。在虛擬機監控程序202執行虛擬機232內的控制程序220的實施例中,該虛擬機232也可被稱為控制虛擬機232。仍在又一個實施例中,控制程序220執行在被授權直接訪問計算設備201上物理資源的虛擬機232中。在一些實施例中,在第一計算設備201A(未示出)上的控制程序220A(未示出)可與在第二計算設備201B(未示出)上的控制程序220B(未示出)交換數據。在這些實施例中,第一計算設備201A可遠離第二計算設備201B。控制程序220A-B可通過在第一計算設備20IA上執行的虛擬機監控程序202A (未示出)和在第二計算設備20IB上執行的虛擬機監控程序202B(未示出)之間的通信鏈路交換數據。通過這條通信鏈路,計算設備201A-B可交換關於處理器和資源池中其他可利用的物理資源的數據。而且通過虛擬機監控程序202A-B之間的連接,虛擬機監控程序202A-B可管理分布在一個或多個計算設備201A-B上的資源池,例如在第一計算設備201A和第二計算設備201B上的可利用資源。虛擬機監控程序202A-B還可虛擬化這些資源並使它們對於在計算設備201A-B上執行的虛擬機232成為可利用的。在本實施例的又一情況下,單個虛擬機監控程序202可管理和控制在計算設備20IA-B上執行的虛擬機232。
在一些實施例中,控制程序220與一個或多個客戶作業系統230A_B(總稱為230)交互。控制程序220可通過虛擬機監控程序202與客戶作業系統230通信。通過虛擬機監控程序202,客戶作業系統230可請求訪問物理磁碟204、物理處理器208、存儲器216、物理設備206和硬體層210中的任何其他組件。仍在其他實施例中,客戶作業系統230可通過由虛擬機監控程序202建立的通信信道與控制程序220通信,諸如,例如通過由虛擬機監控程序202使可利用的多個共享內存頁。在一些實施例中,控制程序220包括用於與計算設備201所提供的網絡硬體直接通信的網絡後端驅動程序。在這些實施例的一個,網絡後端驅動程序處理來自至少一個客戶作業系統230的至少一個虛擬機請求。在其他實施例中,控制程序220包括用於與計算設備201上存儲元件通信的塊後端驅動程序。在這些實施例的一個,塊後端驅動程序根據從客戶作業系統230接收到的至少一個請求從存儲元件中讀數據和寫數據。在又一個實施例中,控制程序220包括工具堆棧224。在又一個實施例中,工具堆棧2M提供用於與虛擬機監控程序202交互、與其他控制程序220(例如,在第二計算設備201B上)通信或管理計算設備201上的虛擬機232的功能。在又一個實施例中,工具堆棧2M包括用於向虛擬機群的管理員提供改善的管理功能的經定製的應用。在一些實施例中,至少一個工具堆棧2M和控制程序220包括用於提供遠程配置和控制運行在計算設備201上的虛擬機的接口的管理API。在其他實施例中,控制程序220通過工具堆棧2M與虛擬機監控程序202通信。 在一個實施例中,虛擬機監控程序202在由虛擬機監控程序202創建的虛擬機232內執行客戶作業系統230。在又一個實施例中,客戶作業系統230向計算設備201的使用者提供對計算環境中的資源的訪問。仍在又一個實施例中,資源包括程序、應用、文檔、文件、多個應用、多個文件、可執行程序文件、桌面環境、計算環境和對計算設備201可利用的其他資源。仍在又一個實施例中,資源可以通過多種訪問方法傳送到計算設備201,這些訪問方法包括但不限於以下方法傳統直接在計算設備上安裝、通過應用流的方法傳送到計算設備201上、將第二計算設備201』上資源的執行所產生的輸出數據傳送到計算設備201且通過表示層協議與計算設備201通信、將通過在第二計算設備201』上執行的虛擬機執行資源所產生的輸出數據傳送到計算設備201,或者從連接到計算設備201上的諸如USB設備的可移動存儲設備上執行或通過在設備201上執行的虛擬機執行並且產生輸出數據。在一些實施例中,計算設備201傳輸由資源的執行所產生的輸出數據到另一個計算設備201』。在一個實施例中,客戶作業系統230與該客戶作業系統230在其上執行的虛擬機結合在一起,形成意識不到其是虛擬機的完全虛擬化的虛擬機;這樣的機器可被稱為"Domain U HVM(硬體虛擬機)虛擬機」。在又一個實施例中,完全虛擬化機包括模擬基本輸入/輸出系統(BIOS)的軟體以便在完全虛擬化機中執行作業系統。仍在又一個實施例中,完全虛擬化機可包括提供與虛擬機監控程序202通信的功能的驅動程序。在這樣的實施例中,驅動程序典型地意識到自己執行在虛擬化的環境中。在又一個實施例中,客戶作業系統230與該客戶作業系統230在其上所執行的虛擬機結合在一起,形成意識到其是虛擬機的超虛擬化(paravirtualized)的虛擬機;這樣的機器可被稱為「Domain U PV虛擬機」。在又一個實施例中,超虛擬化機包括完全虛擬化機中所不包含的另外的驅動程序。仍在又一個實施例中,超虛擬化機包括如上所述的被包含在控制程序220中的網絡後端驅動程序和塊驅動程序。圖2B中所示的是說明Typel虛擬機監控程序202的虛擬化環境的又一個實施例。在計算設備201上執行的虛擬機監控程序202可以直接訪問硬體層210中的硬體和資源。由虛擬機監控程序202管理的虛擬機232可以是不安全的虛擬機232B和/或安全虛擬機232C。儘管圖2A所描述的虛擬化環境中圖示了宿主作業系統214,圖2B中的虛擬化環境的實施例不執行宿主作業系統。進一步參考圖2B,更詳細地,虛擬化環境包括Typel虛擬機監控程序202。在一些實施例中Typel虛擬機監控程序202執行在「裸金屬」上,從而虛擬機監控程序202可以直接訪問計算設備201上執行的所有應用和進程、計算設備201上所有資源和計算設備201上所有硬體或與計算設備201通信的所有硬體。儘管Type2虛擬機監控程序202通過宿主作業系統214訪問系統資源,Typel虛擬機監控程序202可直接訪問所有系統資源。Typel虛擬機監控程序202可直接執行在計算設備201的一個或多個物理處理器上,並且可包括存儲在物理存儲器216中的程序數據。在採用Typel虛擬機監控程序202配置的虛擬化環境中,宿主作業系統可被一個或多個虛擬機232所執行。這樣計算設備201的使用者可以指派一個或多個虛擬機232作為該使用者的個人機器。這個虛擬機可通過允許用戶以與用戶通過宿主作業系統與計算設備201交互的基本上相同方式來與計算設備交互來模擬宿主作業系統。虛擬機232可以是不安全的虛擬機232B和安全的虛擬機232C。儘管圖2B示出了安全的虛擬機和不安全的虛擬機,有時它們也被稱為有特權的和無特權的虛擬機。在一些實施例中,可基於虛擬機與在相同虛擬化環境中執行的其他虛擬機的比較來確定虛擬機的安全。例如,要是第一虛擬機訪問資源池則第二虛擬機不訪問相同的資源池;當第一虛擬機被認為是安全虛擬機232A時第二虛擬機可被認為是不安全的虛擬機232B。在一些實施例中,虛擬機323訪問一個或多個系統資源的能力可使用由控制程序220或虛擬機監控程序202產生的配置接口來進行配置。在其他實施例中,虛擬機232可承受的訪問量可以回顧下列標準集的任意集的結果訪問虛擬機的用戶、在虛擬機上執行的一個或多個應用、虛擬機標識符、基於一個或多個因素指派給虛擬機的風險等級或任何其他類似標準。在一些實施例中,不安全虛擬機232B可被阻止訪問安全虛擬機232A可以訪問的資源、硬體、存儲器位置和應用。例如安全虛擬機232C可訪問一個或多個公司資源,而不安全虛擬機232B不能訪問任何公司資源。圖3所示的是包括在虛擬化環境302執行的計算設備201和執行虛擬桌面架構(VDI)平臺310的計算設備203以及性能監控系統316的系統的一個實施例。在計算設備201上執行的虛擬化環境302可包括此處所描述的任一虛擬化環境。圖示實施例描述了包括虛擬機監控程序202、控制虛擬機232A、一個或多個附加虛擬機232B的虛擬化環境302。控制虛擬機232A可包括與和元數據322相關聯的虛擬磁碟226A通信的控制程序220。控制程序220可進一步包括可存儲和虛擬化環境302的虛擬磁碟2 相關聯的元數據322的磁碟類型資料庫350。附加虛擬機232B可執行與和元數據322相關聯的虛擬磁碟226B通信的客戶作業系統230A。計算設備201可包括與虛擬機監控程序202相接口並且包括存儲子系統316的硬體層210。另一個計算設備203可包括VDI平臺310,該VDI平臺310包括一個或多個虛擬機模板323A-N(此處總稱為虛擬機模板32 的虛擬機模板池318和包含一個或多個用戶會話304A-N(此處總稱為用戶會話304)的一組VDI用戶會話314。另一個計算設備203還可執行虛擬機創建器330。進一步參考圖3,在一個實施例的更多細節中,每個計算設備201,203可以是此處所述的任何計算設備100。在一些實施例中,計算設備201,203可以是伺服器106或客戶機102。計算設備201,203可以被稱為第一計算機、第二計算機、第三計算機等。而且,計算設備201,203可在諸如此處所述的任何網絡104的網絡上互相通信。在一個實施例中,計算設備201可以是遠程計算機201,而另一個計算設備可以是本地計算機203。正如計算設備201,203可以是此處所述的任何計算機器100,硬體層210也可以是此處所描述的任何硬體層210並且可包括此處描述的任何計算機硬體。執行在計算設備201上的虛擬化環境302可以是此處所描述的任何虛擬化環境。尤其是,虛擬化環境302可包括任一虛擬機監控程序配置,或者圖2A所示的虛擬機監控程序配置或圖2B所示的虛擬機監控程序配置的任一個。在一個實施例中,被包含在虛擬化環境302中的虛擬機監控程序202可以是任何虛擬機監控程序202,或此處所描述的任何虛擬機監控程序202。圖3示出了包括虛擬化環境302的計算設備302,該虛擬化環境302包括諸如此處所描述的任一控制虛擬機232的控制虛擬機232。控制虛擬機232可執行諸如此處所述的任一控制程序220的控制程序220,並且可包括諸如此處所述的任一虛擬磁碟2 的虛擬磁碟226。儘管圖3圖示了包括控制虛擬機232A和另一個虛擬機232B的虛擬化環境302,在一些實施例中,虛擬化環境302可包括任何數量的虛擬機232。虛擬機232可執行諸如此處所描述的任一客戶作業系統230的客戶作業系統230,並且可包括諸如此處所述的任一虛擬磁碟226的虛擬磁碟226。在一些實施例中,硬體層210包括存儲子系統310。在一個實施例中,存儲子系統316可以是包括計算設備201的物理硬碟以及管理讀寫那些物理磁碟的管理程序的系統。仍在其他實施例中,存儲子系統316可包括計算設備的任何物理存儲倉庫,該物理存儲倉庫包括永久性存儲器存儲、暫時存儲器存儲、磁碟驅動器(例如,光碟、軟盤、磁帶),硬碟、外部硬驅動、快閃記憶體、網絡附加存儲、存儲區域網絡或計算設備201可訪問的任何其他存儲倉庫。當存儲子系統316根據被包含在虛擬機232中的虛擬磁碟2 優化存儲器特性時,可包括確定讀/寫計算設備201的物理磁碟的優化方式以便服務於訪問虛擬磁碟2 的請求。在一些實施例中,存儲子系統316可選擇存儲優化以優化物理存儲器資源的管理。在這些實施例中,虛擬化環境302不選擇存儲優化而是傳遞磁碟類型數據和虛擬盤2 信息到存儲子系統316以便於子系統316可以選擇存儲優化。取決於可利用存儲的類型和虛擬磁碟226的磁碟類型,存儲子系統316可具訪問不同的存儲優化。通過插件或其他模塊化應用可以利用這些優化。存儲子系統316可以使用關於虛擬磁碟2 磁碟類型和計算設備201的物理存儲的數量、類型及其上的限制的信息來選擇合適的存儲優化。在一個實施例中,被包含在每個虛擬機232中的虛擬磁碟2 還可存儲、包含元數據322或與之相關聯。元數據322可被存儲在控制程序220中的磁碟類型資料庫350中,或者被存儲在計算設備201的任何集中式存儲倉庫中。例如,元數據322可被存儲在控制虛擬機232的存儲倉庫中,或虛擬機監控程序202可訪問的存儲倉庫中,或任何其他類似存儲機制。在一些實施例中,元數據322可被直接存儲在虛擬磁碟2 上。元數據322可以是任意形式的元數據,例如電子信息、電子文件、標籤、圖像、文檔、文本文件、列表、或包含信息的電子數據的任何其他形式。元數據322可包含關於虛擬磁碟226的信息,例如磁碟類型、和磁碟相關聯的功能特性、用於磁碟的壓縮方案,或關於磁碟的任何其他信息。在一些實施例中,元數據322被存儲在控制程序220的上下文中所存儲的磁碟類型資料庫350中。在其他實施例中,磁碟類型資料庫350可被存儲在控制虛擬機232A中或者可被虛擬化環境302中的每個虛擬機232和控制程序220訪問的任何集中式存儲區域。磁碟類型資料庫350可以是任何資料庫,且在一些實施例中可以是任何存儲倉庫。被存儲在磁碟類型資料庫350中的元數據322可以是此處所描述的任何類型的元數據322,以及可以是和虛擬化環境302的虛擬磁碟2 相關聯的元數據322。儘管圖3描述了單臺物理機器201上的虛擬化環境302,在其他實施例中,存儲元數據322的資料庫350可作為磁碟類型資料庫350為不在同一物理機器201上執行的虛擬機232中的虛擬磁碟2 存儲元數據322。在其他實施例中,磁碟類型資料庫350可為多個虛擬化環境302中多個虛擬磁碟2 存儲元數據322,其中虛擬化環境可以在不同的和分開的物理計算機上執行。仍在其他實施例中,磁碟類型資料庫350可位於遠離計算設備201的計算機或存儲設備上。在一個實施例中,每個虛擬磁碟2 可有磁碟類型。磁碟類型是虛擬磁碟執行的功能的表徵。在一些實施例中,磁碟類型可以涉及虛擬磁碟226的基本用途。儘管磁碟類型可指示基本功能或目的,在一些實施例中虛擬磁碟2 可執行沒有列入被指派給虛擬磁碟226的磁碟類型的典型特性的範圍內的其他功能。下面的圖表說明了示例磁碟類型和用於該磁碟類型的典型的存儲優化。這個圖表不是決定每種可能的磁碟類型或存儲優化,而是描述磁碟類型和伴隨的存儲優化的實施例。
權利要求
1.一種使用指示磁碟的磁碟類型的元數據為虛擬化環境中磁碟選擇存儲優化的方法,所述方法包括由在計算設備上執行的虛擬桌面架構創建包括至少一個虛擬磁碟的虛擬機模板;由所述虛擬桌面架構響應於創建所述虛擬機模板修改所述至少一個虛擬磁碟以包括描述所述至少一個虛擬磁碟的磁碟類型的元數據;由虛擬化環境執行使用由所述虛擬桌面架構創建的所述虛擬機模板所創建的虛擬機;由所述虛擬化環境的存儲子系統獲得所述至少一個虛擬磁碟的元數據;以及;由所述存儲子系統部分地基於所述元數據中所描述的所述磁碟類型為所述至少一個虛擬磁碟選擇存儲優化。
2.根據權利要求1所述的方法,還包括複製所述虛擬機模板以創建包括包含描述磁碟類型的元數據的所述至少一個虛擬磁碟的第二虛擬機模板。
3.根據權利要求1所述的方法,還包括根據所述虛擬機附接經優化的存儲。
4.根據權利要求1所述的方法,其中選擇所述存儲優化還包括部分地基於所述磁碟類型和特定的磁碟存儲類型選擇存儲優化。
5.根據權利要求1所述的方法,其中修改所述虛擬磁碟以包括描述磁碟類型的元數據還包括修改所述虛擬磁碟以包括描述作業系統映像磁碟類型的元數據。
6.根據權利要求5所述的方法,其中選擇存儲優化還包括選擇包括創建虛擬磁碟的高速緩存的存儲優化。
7.根據權利要求1所述的方法,其中修改所述虛擬磁碟以包括描述磁碟類型的元數據還包括修改所述虛擬磁碟以包括描述非持久性高速緩存磁碟類型的元數據。
8.根據權利要求7所述的方法,其中選擇存儲優化還包括選擇包括重排序寫操作和提前的寫確認中的任何一個的存儲優化。
9.根據權利要求1所述的方法,其中修改所述虛擬磁碟以包括描述磁碟類型的元數據還包括修改所述虛擬磁碟以包括描述映像定製磁碟類型的元數據。
10.根據權利要求9所述的方法,其中選擇存儲優化還包括選擇包括安全措施的存儲優化。
11.一種使用指示磁碟的磁碟類型的元數據為虛擬化環境中磁碟選擇存儲優化的系統,所述系統包括在計算設備上執行的虛擬桌面架構,用於創建包括至少一個虛擬磁碟的虛擬機模板,響應於創建所述虛擬機模板,修改所述至少一個虛擬磁碟以包括描述所述至少一個虛擬磁碟的磁碟類型的元數據;以及在虛擬化環境中執行的虛擬機,所述虛擬機是使用由所述虛擬桌面架構創建的所述虛擬機模板創建的;以及所述虛擬化環境的存儲子系統,用於獲得所述至少一個虛擬磁碟的元數據;並且部分地基於所述元數據中所描述的所述磁碟類型為所述至少一個虛擬磁碟選擇存儲優化。
12.根據權利要求11所述的系統,其中所述虛擬桌面架構複製虛擬機模板以創建包括包含描述磁碟類型的元數據的所述至少一個虛擬磁碟的第二虛擬機模板。
13.根據權利要求11所述的系統,其中所述存儲子系統根據所選擇的存儲優化附接經優化的存儲。
14.根據權利要求11所述的系統,其中所述存儲子系統部分地基於所述磁碟類型和特定的磁碟存儲類型選擇所述存儲優化。
15.根據權利要求11所述的系統,其中所述元數據描述作業系統映像磁碟類型。
16.根據權利要求15所述的系統,其中所述存儲優化包括所述虛擬磁碟的高速緩存。
17.根據權利要求11所述的系統,其中所述元數據描述非持久性高速緩存磁碟類型。
18.根據權利要求17所述的系統,其中所述存儲優化包括重排序寫操作和提前的寫確認中的任何一個。
19.根據權利要求11所述的系統,其中所述元數據描述映像定製磁碟類型。
20.根據權利要求19所述的系統,其中所述存儲優化包括安全措施。
全文摘要
用於虛擬化環境的虛擬磁碟的存儲優化選擇,其中可部分地基於被包含在虛擬機中的虛擬磁碟的磁碟類型選擇存儲優化。由虛擬化環境向虛擬化環境中資料庫查詢與虛擬磁碟相關聯的元數據可發現虛擬磁碟的磁碟類型。當虛擬桌面架構創建虛擬磁碟和包括至少一個虛擬磁碟的虛擬機模板時元數據可被創建。虛擬磁碟可被修改以包括描述虛擬磁碟的磁碟類型的元數據或者與之相關聯。當執行包括經修改的虛擬磁碟的虛擬機時,虛擬化環境的存儲子系統可獲得虛擬磁碟的元數據以發現虛擬磁碟的磁碟類型。
文檔編號G06F3/06GK102368201SQ201110079379
公開日2012年3月7日 申請日期2011年3月30日 優先權日2010年3月30日
發明者D·斯科特, R·夏普 申請人:思傑系統有限公司