專利名稱:將基于服務(wù)器的桌面虛擬機架構(gòu)擴展到客戶機上的制作方法
技術(shù)領(lǐng)域:
本申請主張2008年2月26日提交的美國臨時申請61/031,613的權(quán)益,該申請通 過參考全部并入本文。
背景技術(shù):
人們已經(jīng)意識到,計算機虛擬化的好處在于大大增加了計算硬件平臺的計算效率 和靈活性。例如,計算機虛擬化允許多個虛擬計算裝置(computing machine)運行在一個 通用計算硬件平臺上。與物理計算硬件平臺類似,虛擬計算裝置包括存儲介質(zhì),比如虛擬硬 盤,虛擬處理器以及與計算環(huán)境有關(guān)的其它系統(tǒng)元件。例如,虛擬硬盤可以存儲操作系統(tǒng)、 數(shù)據(jù)和用于虛擬機的應(yīng)用文件?;诜?wù)器的計算允許聯(lián)網(wǎng)客戶端系統(tǒng)(相對于服務(wù)器遠(yuǎn)程設(shè)置)訪問該服務(wù) 器上的計算資源。例如,客戶端可以使用遠(yuǎn)程桌面協(xié)議(比如RDP或VNC)遠(yuǎn)程訪問桌面 并將用戶輸入(比如鍵盤或鼠標(biāo)輸入)傳送到該遠(yuǎn)程系統(tǒng)?;诜?wù)器的計算有助于計 算資源的集中管理。然而,一個缺點是沒有最好的計算體驗。例如,圖形密集型(graphic intensive)應(yīng)用和本地設(shè)備(比如USB器件、打印機等)不能按照期望操作。而且,用戶必 須與該網(wǎng)絡(luò)保持連接以能夠訪問該服務(wù)器上存儲的用戶桌面。作為基于服務(wù)器的計算的替代方案,客戶端計算允許用戶遠(yuǎn)離企業(yè)網(wǎng)絡(luò)并處于脫 機方式,即,不連接到網(wǎng)絡(luò)或因特網(wǎng)。然而,從企業(yè)管理的立場來看,當(dāng)遇到比如更新操作系 統(tǒng)和應(yīng)用、增強安全性、符合許可、鎖定信息、強制遵循各種策略和數(shù)據(jù)備份這類任務(wù)時,客 戶端計算帶來不希望的低效。
發(fā)明內(nèi)容
通過將基于服務(wù)器的桌面虛擬機架構(gòu)擴展到客戶機可以解決上述挑戰(zhàn)。在一個實 施方式中,從客戶端系統(tǒng)遠(yuǎn)程訪問用戶桌面。該遠(yuǎn)程桌面是由在服務(wù)器系統(tǒng)上運行的第一 虛擬機產(chǎn)生的,該服務(wù)器系統(tǒng)可包含一個或多個服務(wù)器計算機。在該第一虛擬機的執(zhí)行過 程中,對相應(yīng)磁盤的寫被重定向到增量磁盤文件或重做日志。在該客戶端系統(tǒng)上創(chuàng)建該虛 擬磁盤的拷貝。當(dāng)用戶決定“登出”他或她的桌面時,該第一虛擬機被終止(如果它正在運 行的話)而在該客戶端系統(tǒng)上創(chuàng)建該增量磁盤的拷貝。一旦該增量磁盤在該客戶端系統(tǒng)上 存在,可以使用該虛擬磁盤和增量磁盤在該客戶端系統(tǒng)上啟動第二虛擬機以提供對該客戶 端系統(tǒng)處的用戶桌面的本地訪問。這使得用戶能夠在此時訪問他或她的桌面而不必連接到 網(wǎng)絡(luò)上。
圖1顯示了提供到中心管理的用戶桌面的訪問的簡單的示例性虛擬桌面構(gòu)造 (VDI)系統(tǒng)。圖2顯示了一種示例性的虛擬化計算機系統(tǒng)的邏輯表示。
圖3A、3B、3C和3D顯示了用實例方式描繪圖1的虛擬桌面構(gòu)造的操作的方框圖。圖4顯示了顯示用于在有自動后臺同步的情況下將用戶連接到遠(yuǎn)程桌面的示例 性程序的流程圖。圖5顯示了用實例方式表示用于實現(xiàn)桌面登出(check-out)程序的方法的流程 圖。
具體實施例方式圖1顯示了提供對中心管理的用戶桌面的訪問的簡單的示例性虛擬桌面構(gòu)造 (VDI)系統(tǒng)10。術(shù)語“桌面”指的是一種人機接口環(huán)境,用戶可以通過該人機接口環(huán)境啟動、 與其交互并管理該用戶的應(yīng)用、設(shè)置和數(shù)據(jù)。傳統(tǒng)上,桌面由操作系統(tǒng)呈現(xiàn)在視頻顯示器 上,而用戶使用鼠標(biāo)和鍵盤與該桌面進(jìn)行交互。所有的應(yīng)用、文件等等可以顯示在該桌面上 而用戶輸入通常由用戶可以在該顯示器上看到的應(yīng)用接收。人們還知道術(shù)語“桌面”被用 于指示可以被放置在用戶的書桌上或書桌附近的物理計算機系統(tǒng)或“物理桌面”,以與“膝 上型電腦”或“掌上式電腦”相區(qū)別,但是本文中使用的術(shù)語“桌面”本身唯一指示上述人機 接口環(huán)境,而不是物理計算機系統(tǒng)。使用計算機虛擬化,用戶的計算機系統(tǒng),包括操作系統(tǒng) 設(shè)置、應(yīng)用和應(yīng)用設(shè)置,以及數(shù)據(jù)可以作為虛擬機從一個物理計算機傳送或拷貝到另一個 物理計算機。當(dāng)用這種方式拷貝虛擬機時,用戶可以從包含原始虛擬機的物理計算機系統(tǒng) 或包含該拷貝的物理計算機系統(tǒng)訪問他或她的“桌面”。因此該“桌面”不再束縛于(tied to) 一個特定的物理計算機系統(tǒng)。VDI系統(tǒng)10包括VDI服務(wù)器系統(tǒng)11,VDI服務(wù)器系統(tǒng)11與若干個VDI客戶端系 統(tǒng)12、14和16通過網(wǎng)絡(luò)13數(shù)據(jù)通信。網(wǎng)絡(luò)13可以是任何架構(gòu),比如局域網(wǎng)(LAN),或可 私有或公開訪問的廣域網(wǎng),比如因特網(wǎng)。應(yīng)該意識到,圖1顯示了一種典型的VDI網(wǎng)絡(luò)服務(wù) 器系統(tǒng)11的簡化表示,該VDI網(wǎng)絡(luò)服務(wù)器系統(tǒng)11可包括其它組件比如防火墻、連接代理 (connection broker)和負(fù)載平衡器,以及后端存儲網(wǎng)絡(luò)、數(shù)據(jù)庫服務(wù)器等。每個客戶端系 統(tǒng)12、14、16可包括用戶界面40(只顯示了一個),通過該用戶界面40用戶可以與他或她的 桌面交互。圖2顯示了一種示例性的虛擬化計算機系統(tǒng)20的邏輯表示。如同下面會更詳細(xì) 地解釋的,VDI服務(wù)器系統(tǒng)11和VDI客戶端系統(tǒng)12、14和16可包括物理硬件平臺22、運 行在硬件平臺22上的虛擬化軟件80以及通過虛擬化軟件80運行在硬件平臺22上的一個 或多個虛擬機70。因此虛擬化軟件80在邏輯上介于硬件平臺22的物理硬件和在虛擬機 70 “內(nèi)”運行的來賓(guest)系統(tǒng)軟件72之間。硬件平臺22可以是一種具有一個或多個系統(tǒng)總線28的通用計算系統(tǒng),該系統(tǒng)總 線28使得各種硬件平臺組件彼此數(shù)據(jù)通信。例如,使用系統(tǒng)總線(一個或多個)28使一個 或多個處理器24與存儲器(memory) 26數(shù)據(jù)通信。存儲器26可包含一種多個存儲器的系 統(tǒng),其中存儲器包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、緩沖存儲器和各種寄存器 存儲器。非易失性數(shù)據(jù)存儲器30包括用于存儲軟件或數(shù)據(jù)的一個或多個磁盤驅(qū)動器或其 它機器可讀介質(zhì)或海量數(shù)據(jù)存儲系統(tǒng)。存儲器26和/或非易失性數(shù)據(jù)存儲器30可以存儲 虛擬化軟件80和在虛擬機70中運行的來賓系統(tǒng)軟件72??梢蕴峁┯脩艚缑?0,該用戶界 面40包括鍵盤控制器(未示)、鼠標(biāo)控制器(未示)、視頻控制器(未示)和音頻控制器(未示),其中每一個都連接到相應(yīng)的用戶裝置(未示)。對于服務(wù)器計算機系統(tǒng)通常來說,對 于VDI服務(wù)器系統(tǒng)11 (圖1)用戶界面和裝置可以被或不被包括或連接到硬件平臺22。相 反,用戶交互可以遠(yuǎn)程進(jìn)行,如同數(shù)據(jù)中心管理領(lǐng)域通常知道的那樣。網(wǎng)絡(luò)接口 50使得數(shù) 據(jù)通信能夠通過網(wǎng)絡(luò),比如網(wǎng)絡(luò)13(圖1),進(jìn)行。網(wǎng)絡(luò)接口 50可以協(xié)助使用網(wǎng)絡(luò)協(xié)議(比 如TCP/IP)進(jìn)行的通信。虛擬化軟件80是計算機虛擬化領(lǐng)域中熟知的。虛擬化軟件80執(zhí)行系統(tǒng)資源管理 和虛擬機仿真。虛擬機仿真可以由虛擬機監(jiān)控(VMM)組件執(zhí)行。在典型實現(xiàn)中,每個虛擬機 70(只顯示了一個)具有相應(yīng)的VMM實例(instance)。根據(jù)實現(xiàn),虛擬化軟件80可以是非 寄生的(imhosted)或寄生的(hosted)。非寄生的虛擬化軟件通常依賴專門的虛擬化內(nèi)核 以管理系統(tǒng)資源,而寄生的虛擬化軟件依賴商品操作系統(tǒng)_“主機操作系統(tǒng)”-比如Windows 或Linux來管理系統(tǒng)資源。在寄生的虛擬化系統(tǒng)中,該主機操作系統(tǒng)可以被認(rèn)為是虛擬化 軟件80的一部分。虛擬機70在概念上包含虛擬硬件裝置(如虛擬化軟件80所仿真的)的狀態(tài)和來 賓系統(tǒng)軟件72的內(nèi)容。如圖2中所示,來賓系統(tǒng)軟件72包括來賓操作系統(tǒng)74和來賓應(yīng)用 78。來賓操作系統(tǒng)74可以是一種商品操作系統(tǒng),比如Windows或GNU/Linux。虛擬化軟件 80負(fù)責(zé)管理到達(dá)和來自虛擬機70的輸入和輸出,包括將用戶界面輸出導(dǎo)向本地用戶接口 40或遠(yuǎn)程桌面客戶端。圖3A和3B顯示了可擴展的VDI系統(tǒng)100的簡化框圖,該可擴展的VDI系統(tǒng)100 具有對用戶桌面的遠(yuǎn)程(或中心化)訪問和本地訪問,允許單個用戶遠(yuǎn)程或本地訪問他或 她的桌面。可擴展的VDI系統(tǒng)100包括服務(wù)器系統(tǒng)110和客戶端系統(tǒng)120。VM 118在服務(wù) 器系統(tǒng)110上執(zhí)行并可以由用戶經(jīng)由客戶端系統(tǒng)120訪問。VM 118包含上面參考圖2所 述的所有的用戶應(yīng)用和數(shù)據(jù),并且使用虛擬化軟件117執(zhí)行。在一個實施方式中,虛擬化軟 件117包含非寄生虛擬化軟件。另外,盡管圖中顯示只有一個VM 118在服務(wù)器110中在執(zhí) 行,然而任意數(shù)量的VM可以在執(zhí)行,每個與一個或多個相應(yīng)用戶有關(guān)。虛擬化軟件117將用戶I/O導(dǎo)向遠(yuǎn)程桌面主機115。遠(yuǎn)程桌面主機115向遠(yuǎn)程桌 面客戶端125發(fā)送用戶的圖形和聲音。類似地,遠(yuǎn)程桌面客戶端125向遠(yuǎn)程桌面主機115 發(fā)送用戶的輸入,例如鍵盤和鼠標(biāo)輸入。遠(yuǎn)程桌面客戶端125通過用戶界面124向該用戶 呈現(xiàn)該用戶的桌面,用戶界面124可包含各種用戶I/O裝置。除了遠(yuǎn)程桌面客戶端125外,客戶端系統(tǒng)120還包括虛擬機128以及虛擬化軟件 127。虛擬機128可以訪問虛擬磁盤132,該虛擬磁盤132是作為一個或多個文件殘存在物 理磁盤130上的磁盤映像,其中物理磁盤130連接到客戶端系統(tǒng)120。虛擬磁盤132由虛 擬化軟件127維持。在一個實施方式中,虛擬化軟件127包含寄生的虛擬化軟件,如同前面 所述的,該寄生的虛擬化軟件與該客戶端的主機操作系統(tǒng)協(xié)同運行。虛擬磁盤132在開始 時可以是從虛擬磁盤142拷貝的(或者反過來)從而在一個特定狀態(tài)下,虛擬磁盤132和 142是完全相同的,或者在邏輯上等同而并非完全相同的。在邏輯上等同的意思是每個虛擬 磁盤包含相同的文件系統(tǒng)和數(shù)據(jù)文件,它們在邏輯上是在完全相同的文件系統(tǒng)架構(gòu)中相關(guān) 的,盡管實際的磁盤扇區(qū)可能不是以相同方式排列。兩個完全相同的磁盤也是邏輯上等同 的。服務(wù)器系統(tǒng)110包括物理磁盤140或與物理磁盤140通信,該物理磁盤140是服務(wù)器系統(tǒng)110能夠訪問的。物理磁盤40 (其被虛擬化軟件117用于存儲用戶的虛擬磁盤) 是用于相應(yīng)虛擬機的磁盤映像文件。當(dāng)該用戶在VM 118上工作時,它可以對虛擬磁盤142 進(jìn)行寫操作(issue writes),虛擬磁盤142作為一個或多個文件存在于物理磁盤140上。 然而,虛擬化軟件117可以被配置為將寫操作重定向到增量磁盤144而不是將改變直接寫 到虛擬磁盤142。增量磁盤144可包含重做日志(redo log)或其它的“差別”文件。實質(zhì) 上,增量磁盤144對虛擬磁盤142維持一個修改列表而實際上不對虛擬磁盤142進(jìn)行任何 改變。增量磁盤是虛擬化領(lǐng)域熟知的,并且在例如美國專利7,356,679中更詳細(xì)地描述過。 當(dāng)虛擬機118進(jìn)行讀操作時,虛擬化軟件117訪問增量磁盤144以確定數(shù)據(jù)是否在那里,如 果不是的話,它就訪問虛擬磁盤142,增量磁盤144的父磁盤映像。然后虛擬化軟件117將 該數(shù)據(jù)輸送到虛擬機118,就像發(fā)生過物理裝置的簡單的磁盤讀取一樣。當(dāng)用戶可能決定“登出”他的虛擬機從而它可以被離線(即,在不訪問服務(wù)器系統(tǒng) 110的情況下)訪問時,他或她可以向管理軟件(未示,下面會更詳細(xì)地描述)這種期望。 在這時候,虛擬機118被“關(guān)機(powered off) ”而增量磁盤144被拷貝到該用戶的物理磁 盤130以在該用戶的物理磁盤130上創(chuàng)建增量磁盤134。一旦這種下載完成并被驗證,形成 增量磁盤144的寫操作被合并到虛擬磁盤142且該增量磁盤134以類似方式被合并到虛擬 磁盤132,從而虛擬磁盤132和虛擬磁盤142被維持在邏輯上等同的狀態(tài),但是現(xiàn)在被更新 以反映用戶留下的最新的狀態(tài)。在一個實施方式中,該用戶可以簡單的掛起(suspend)而不是關(guān)掉虛擬機118,無 論在哪種情況下,VM狀態(tài)136也被從虛擬化軟件117下載下來,其維持了虛擬機118的狀態(tài)。圖3B顯示了可擴展的VDI系統(tǒng)100,其中該用戶正通過本地運行虛擬機128離線 訪問他或她的桌面。在這種情況下,虛擬化軟件127在客戶端系統(tǒng)120上運行虛擬機128 而不使用遠(yuǎn)程桌面客戶端125。因此,該用戶可以從任何網(wǎng)絡(luò)斷開并離線工作。虛擬化軟 件127不直接修改虛擬磁盤132。相反,它創(chuàng)建增量磁盤134,該增量磁盤134包含如同前 面參考圖3A中的增量磁盤144所述的該用戶對虛擬磁盤132執(zhí)行的所有改變。在某一點,該用戶可要求或被要求將他或她的桌面“登入(check in)”到服務(wù)器 系統(tǒng)110中。此時,虛擬機128被“關(guān)機(power down) ”而虛擬化軟件127連接到服務(wù)器 110并將增量磁盤134拷貝到服務(wù)器的數(shù)據(jù)存儲器140以創(chuàng)建增量磁盤144。在一個實施方 式中,該虛擬機可以被掛起而不是關(guān)機,而VM狀態(tài)146被上傳到服務(wù)器系統(tǒng)10。在拷貝增 量磁盤或該增量磁盤134加上狀態(tài)146后,增量磁盤134、144分別被合并到虛擬磁盤132、 142?!昂喜ⅰ钡囊馑际敲恳粋€增量磁盤中包含的磁盤寫操作分別被寫到虛擬磁盤文件132、 142。在這種登入程序后,每一個虛擬磁盤132、142是完全相同或者至少是在邏輯上等同的 從而用戶可以使用虛擬機118從他或她上次停止使用虛擬機128的地方開始計算。正如現(xiàn)在將會更詳細(xì)地描述的,可以對上面描述的登入、登出功能的基本操作做 出各種改進(jìn)和優(yōu)化。圖3C顯示了可擴展的VDI系統(tǒng)100的更詳細(xì)的視圖。用戶的桌面是由殘留在連 接到服務(wù)器系統(tǒng)110的物理磁盤140上的一個或多個文件141限定的。文件141包括用于 策略(policies) 149、虛擬磁盤142、增量磁盤144和VM狀態(tài)146的文件。策略可以使用數(shù) 據(jù)庫和/或通過作為元數(shù)據(jù)關(guān)聯(lián)或嵌入在虛擬磁盤142中的配置文件存儲??梢蕴峁╊~外的桌面文件148以限定可以由相應(yīng)的用戶或用戶組訪問的額外的桌面。如圖3C所示,客戶端系統(tǒng)120包括VDI客戶端122,VDI客戶端122與服務(wù)器系統(tǒng) 110上的管理服務(wù)器112通信。管理服務(wù)器112認(rèn)證客戶端120的用戶,處理訪問用戶桌 面的請求并實施策略149。策略149可限定特定的桌面對誰以及在什么情況下是可以獲得 的。例如,策略149可以是針對發(fā)出該請求的用戶的,盡管全局策略、基于用戶位置或組或 所請求的服務(wù)的策略也可能是適用(in place)的。在一個實施方式中,管理服務(wù)器112是安裝在單獨的物理計算機系統(tǒng)上的服務(wù)器 應(yīng)用程序,其通過網(wǎng)絡(luò)13與客戶端系統(tǒng)120及服務(wù)器系統(tǒng)110的其他組件通信,如同上面 所述,該服務(wù)器系統(tǒng)110可包含多個服務(wù)器裝置。在本實施例中,當(dāng)用戶與客戶端系統(tǒng)120 上的VDI客戶端125交互時,對與該用戶有關(guān)的桌面的請求通過網(wǎng)絡(luò)13被發(fā)送到服務(wù)器 110。如上所述,服務(wù)器系統(tǒng)110可包括多個VM(只顯示了一個),其中每一個對應(yīng)于一個或 多個用戶。管理服務(wù)器112接收用戶的請求,認(rèn)證該用戶和/或該請求,根據(jù)需要啟動或恢 復(fù)(resume) VM 118,并將VDI客戶端125與遠(yuǎn)程桌面服務(wù)器115連接。VDI客戶端122包括表示層124,表示層124提供了允許用戶與VDI客戶端122 (并 因此與服務(wù)器系統(tǒng)110)交互的圖形用戶界面。在一個實施方式中,VDI客戶端122在因特 網(wǎng)瀏覽器中執(zhí)行或協(xié)同因特網(wǎng)瀏覽器執(zhí)行。在某一點,如同上面參考3A和3B所述的,該用戶可能希望“登入”或“登出”他或 她的桌面。在這種情況下,該虛擬磁盤或增量磁盤被從客戶端系統(tǒng)120拷貝到服務(wù)器系統(tǒng) 110或反過來(根據(jù)該用戶是“登入”還是“登出”該桌面)。如果該用戶是登出該桌面到 一個沒有該虛擬磁盤的本地拷貝的計算機,那么增量磁盤144可以與服務(wù)器系統(tǒng)110上的 虛擬磁盤142和被拷貝到該用戶的本地客戶端系統(tǒng)120的整個虛擬磁盤合并。因為該虛擬 磁盤可能是非常大的,所以由于很大的數(shù)據(jù)量和可能有限的帶寬,這種初始的登出可能是 非常耗時的。根據(jù)用戶的活動,甚至在后續(xù)的登入和登出程序過程中傳輸?shù)脑隽看疟P也可 能變得相當(dāng)大,例如,可能安裝了一個新應(yīng)用或者現(xiàn)有應(yīng)用或操作系統(tǒng)組件可能大規(guī)模升 級過或打過補丁。在一個實施方式中,登入和登出用戶桌面所需的時間可以通過在后臺(也就是 說,當(dāng)用戶與虛擬機交互時,而不打擾用戶的活動或該虛擬機的操作)在客戶端系統(tǒng)120和 服務(wù)器系統(tǒng)110之間傳輸數(shù)據(jù)而減少。這可以被稱為后臺同步或后臺數(shù)據(jù)傳輸。后臺數(shù)據(jù) 傳輸可以響應(yīng)客戶端系統(tǒng)120的用戶自動進(jìn)行,其中該用戶是被授權(quán)訪問VM 118的。用這 種方式,虛擬磁盤142的準(zhǔn)確和更新后的表現(xiàn)可以被傳送到客戶端系統(tǒng)120并從客戶端系 統(tǒng)120傳輸而不會引人注意地使用戶從他的計算體驗中分散注意力。當(dāng)用戶從新的客戶端 系統(tǒng)110遠(yuǎn)程開始工作時,虛擬磁盤142可以在后臺傳輸直到獲得了作為客戶端系統(tǒng)120 上的虛擬磁盤132的完整的拷貝。然后,對虛擬磁盤142的改變在后臺被傳送到客戶端系 統(tǒng)120以開始建造增量磁盤132。當(dāng)用戶決定登出他或她的桌面時,對虛擬磁盤142的至 少大部分改變已經(jīng)被傳送到了 120。同樣地,當(dāng)用戶決定登入他或她的桌面時,對虛擬磁盤 132的至少大部分改變已經(jīng)被傳送到了服務(wù)器系統(tǒng)110。當(dāng)用戶決定注銷他們與他們的桌面的會話(session)時,增量磁盤144和增量磁 盤134之間任何的差別會通過傳輸最后的改變而解決。在完成客戶端系統(tǒng)120和服務(wù)器系 統(tǒng)110之間的通信后,增量磁盤144中表示的變化可以被寫到虛擬磁盤142。在一個實施方式中,這在VM 118的操作被終止以后會發(fā)生以確保VM 118的穩(wěn)定狀態(tài),同時更新虛擬磁盤 142。VM 118的操作的終止可包括關(guān)閉VM118或掛起VM 118的運轉(zhuǎn)。關(guān)閉VM通常涉及執(zhí) 行該VM中運行的來賓操作系統(tǒng)的關(guān)機程序。在這種程序中,處理被結(jié)束而當(dāng)前殘留在存儲 器中的任何瞬態(tài)的或緩存的數(shù)據(jù)被寫到磁盤。當(dāng)VM被關(guān)機時存在很少或沒有狀態(tài)信息,然 而掛起操作涉及停止執(zhí)行并通過寫入VM狀態(tài)文件146而保留該虛擬機的狀態(tài)。一旦增量磁盤144與虛擬磁盤142合并,增量磁盤144可以被擦除、標(biāo)記為刪除、 要么被識別為不再有效。使得虛擬磁盤132與虛擬磁盤142和對任一個虛擬磁盤進(jìn)行的改 變一致被稱為同步。當(dāng)VM128的本地執(zhí)行以與上面參考終止上述虛擬機118的操作描述的 同樣的方式終止后,該用戶的虛擬機可以以這種方式同步。管理服務(wù)器112可建立或?qū)嵤┮粋€策略,該策略阻止虛擬機118的操作直到可以 確定沒有對應(yīng)于虛擬機118的虛擬機128沒有與虛擬機118同步。也就是說,如果該用戶 已經(jīng)離線與他或她的桌面交互,由此導(dǎo)致增量磁盤134的創(chuàng)建的話,那么管理服務(wù)器112可 阻止VM 118的使用直到增量磁盤134所表示的變化被傳送到服務(wù)器系統(tǒng)110并與虛擬磁 盤142合并。維持對應(yīng)于該用戶的桌面的信息的同步可包括實現(xiàn)對該用戶桌面的策略管理。策 略149的實施例包括有關(guān)是否以及在什么條件下用戶的桌面的拷貝可以被傳送到客戶端 系統(tǒng)120、登出該桌面多久以后可以再登入回服務(wù)器系統(tǒng)110、對虛擬機128/118的使用的 限制等等。虛擬化軟件127和/或VDI客戶端122可以被配置為實施所建立的策略,例如 使用加密以阻止對存儲在虛擬磁盤132上的數(shù)據(jù)以及相關(guān)的增量磁盤的未授權(quán)訪問。在一個實施方式中,當(dāng)用戶啟動VDI客戶端122時,可以向他或她呈現(xiàn)請求認(rèn)證信 息的登錄屏幕。然后VDI客戶端將認(rèn)證信息傳送到服務(wù)器系統(tǒng)110,例如,傳送到遠(yuǎn)程桌面 服務(wù)器112。遠(yuǎn)程桌面服務(wù)器確認(rèn)該用戶的認(rèn)證并向管理服務(wù)器112發(fā)送對應(yīng)于該用戶的 認(rèn)證信息的現(xiàn)有桌面的請求。管理服務(wù)器112從遠(yuǎn)程桌面服務(wù)器115接收請求并將提供的 用戶標(biāo)識符與映射表114進(jìn)行比較,映射表114就愛功能該用戶標(biāo)識符關(guān)聯(lián)于服務(wù)器系統(tǒng) 110上的一個或多個虛擬機。在識別與該用戶標(biāo)識符有關(guān)的(一個或多個)虛擬機時,管理 服務(wù)器112提供連接信息,或者協(xié)助VDI客戶端110和遠(yuǎn)程桌面服務(wù)器115之間的連接以 使遠(yuǎn)程用戶訪問相應(yīng)的桌面。在另一個實施方式中,被傳送到服務(wù)器系統(tǒng)110的用戶請求可包括本地桌面狀態(tài) 信息。本地狀態(tài)信息還可以響應(yīng)來自遠(yuǎn)程桌面服務(wù)器115的查詢而從該請求單獨提供。本 地狀態(tài)信息可包括幫助鑒別該用戶的本地客戶端系統(tǒng)120和服務(wù)器系統(tǒng)110的狀態(tài)之間的 差別的信息。例如,本地狀態(tài)信息可包括該用戶是不是已經(jīng)離線訪問他或她的桌面,導(dǎo)致增 量磁盤134的創(chuàng)建。如果存在增量磁盤134的話,那么管理服務(wù)器112在允許訪問虛擬機 118之前會在后臺開始傳送該差別。如果該傳送時間被規(guī)劃為非常冗長的話,那么用戶可 以在后臺同步過程中立即連接到本地VM 128。如果沒有增量磁盤134,但是存在增量磁盤 144的話,那么可以允許到VM 118的連接,同時伴隨相應(yīng)的自動后臺同步。在一個實施方式中,后臺數(shù)據(jù)傳送可以響應(yīng)周期性查詢而進(jìn)行,當(dāng)客戶端系統(tǒng)120 訪問服務(wù)器系統(tǒng)110時該周期性查詢自動進(jìn)行。在另一個實施方式中,后臺數(shù)據(jù)傳送可以 僅僅應(yīng)客戶端系統(tǒng)120的用戶的請求而進(jìn)行。例如,該用戶可以請求本地客戶端系統(tǒng)110 與服務(wù)器系統(tǒng)110在考慮到離線的情況下同步。對于很少離線的用戶,這個特性的使用可能顯著減少網(wǎng)絡(luò)資源上的負(fù)載。策略149可要求,允許(即,讓用戶決定)或阻止連續(xù)的、 周期性的或由用戶啟動的同步。在用圖3D的實例表示的一個實施方式中,用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)被保持在單獨的 虛擬驅(qū)動器中。在這種實施方式中,要被傳送的數(shù)據(jù)量可以通過只將用戶數(shù)據(jù)寫到增量用 戶數(shù)據(jù)磁盤135或145而進(jìn)一步減少(取決于該用戶是本地還是遠(yuǎn)程訪問他或她的桌面)。 例如,用于用戶在服務(wù)器系統(tǒng)110上的桌面的信息可以被分類為存儲在系統(tǒng)盤152(其可以 作為物理磁盤150上的磁盤映像文件而存在)中的系統(tǒng)信息,以及存儲在虛擬用戶數(shù)據(jù)磁 盤(UDD) 143中的用戶數(shù)據(jù)。同樣地,對這兩個磁盤的改變可以被存儲在兩個單獨的增量磁 盤中增量系統(tǒng)磁盤144和增量UDD磁盤145。在一個實施方式中,系統(tǒng)信息包括應(yīng)用信息78和來賓系統(tǒng)軟件72(圖2)而用 戶數(shù)據(jù)包括文檔、設(shè)置、針對用戶的屬性等。大部分操作系統(tǒng),比如Windows、0SX: 和 Gnu-Linux,包括用于在分離的磁盤上保持系統(tǒng)和用戶數(shù)據(jù)的工具(facility)。通過使用虛 擬化以為系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)兩者制造單獨的增量映像,管理服務(wù)器112可以被配置為將 數(shù)據(jù)的傳送限制為只是存儲在虛擬UDD 143上的用戶信息。在這種情況下,對該系統(tǒng)所做 的任何改變(并因此被寫入到系統(tǒng)磁盤中的)將會被丟棄而系統(tǒng)磁盤152會因此被返回到 具有該用戶的桌面的每個登入和登出的已知有效狀態(tài),因為那個信息不被傳送。而且,在客 戶端系統(tǒng)112和服務(wù)器系統(tǒng)110之間傳送的信息的量可以被減少為只是用戶數(shù)據(jù)。在一個實施方式中,對系統(tǒng)磁盤152的改變(在該虛擬機的操作過程中被保持在 單獨的增量系統(tǒng)磁盤144中)可以經(jīng)受對該用戶適用的任何策略。也就是說,它們可以被 丟棄或合并回包含系統(tǒng)數(shù)據(jù)、操作系統(tǒng)和應(yīng)用的該虛擬磁盤上。如果增量系統(tǒng)磁盤144被 丟棄,那么系統(tǒng)磁盤152可以被認(rèn)為是“永久系統(tǒng)磁盤”,因為無論在任何特定的用戶會話 過程中該用戶對該系統(tǒng)做了什么改變它都會保持在一個已知的良好狀態(tài)。對系統(tǒng)磁盤的修改可以被封裝在補丁文件154中,例如,當(dāng)操作系統(tǒng)或應(yīng)用被更 新或制造商釋出新版本時。這些改變可以通過創(chuàng)建補丁文件154而應(yīng)用到系統(tǒng)磁盤152,其 中該補丁文件154限定了當(dāng)前系統(tǒng)磁盤和更新后的系統(tǒng)磁盤之間的差別。該補丁文件可以 被應(yīng)用到系統(tǒng)磁盤152以創(chuàng)建打過補丁的系統(tǒng)磁盤,并且還被傳輸?shù)娇蛻舳讼到y(tǒng)120,以高 效地對該客戶端系統(tǒng)上的系統(tǒng)磁盤132打補丁。在可以與本文描述的其它實施方式共存的另一個實施方式中,文件系統(tǒng)信息被 分析以鑒別與被刪除了的文件有關(guān)的扇區(qū)。然后在傳送該增量磁盤映像時這些扇區(qū)被省 略以進(jìn)一步減少被傳送的數(shù)據(jù)量。該分析和省略可以發(fā)生在增量磁盤傳送的時候,或者 可以作為一個單獨的步驟執(zhí)行,其中在該單獨的步驟中該增量磁盤在傳送之前被預(yù)處理 (pre-process)。在這種情況下,該虛擬磁盤的拷貝可能不完全相同,但是仍然是在邏輯上 等同的。圖4顯示了流程圖200,流程圖200顯示了用于在有自動后臺同步的情況下將用戶 連接到遠(yuǎn)程桌面的示例性程序。該程序開始于開始框202并流向操作204,在操作204中, 服務(wù)器系統(tǒng)120(圖3A-3D)接收到訪問對應(yīng)于客戶端系統(tǒng)120的該用戶的認(rèn)證信息的桌 面的請求。對接收到這種請求做出響應(yīng),該程序進(jìn)行到操作206,在操作206中服務(wù)器系統(tǒng) 110確認(rèn)用戶的認(rèn)證。如果該認(rèn)證是無效的,那么該程序進(jìn)行到操作208,在操作208中,訪 問被拒絕而該程序停止。如果認(rèn)證有效,那么該程序進(jìn)行到操作210,在操作210中該用戶被連接到與該用戶標(biāo)識符對應(yīng)的桌面。在將該用戶連接到在該服務(wù)器系統(tǒng)上執(zhí)行的該虛擬 機上的他或她的桌面后,該程序進(jìn)行到操作212,在操作212中服務(wù)器系統(tǒng)110確定客戶端 系統(tǒng)120是否具有對應(yīng)于該用戶桌面的虛擬磁盤的正確拷貝。如果不是的話,那么該程序 進(jìn)行到操作214,在操作214中虛擬磁盤142在后臺(也就是說,在用戶訪問并與該服務(wù)器 系統(tǒng)上的虛擬機118交互的同時)被傳送到客戶端系統(tǒng)120。這個操作繼續(xù),直到客戶端系 統(tǒng)120已經(jīng)具有了用于相應(yīng)桌面的虛擬磁盤的完整而正確的拷貝。如果,在操作212中,確定該客戶端系統(tǒng)具有該虛擬磁盤的正確拷貝,那么該程序 進(jìn)行到操作216。如同前面提到的,在用戶與該服務(wù)器系統(tǒng)上的該虛擬機的交互過程中,對 該虛擬磁盤的改變被寫到增量磁盤。在操作216中,服務(wù)器系統(tǒng)110確定該客戶端系統(tǒng)是否 有該增量磁盤映像的最新(up-to-date)拷貝。如果沒有的話,那么該程序進(jìn)行到操作218, 在操作218中該服務(wù)器系統(tǒng)上的該增量磁盤被拷貝到該用戶的客戶端系統(tǒng)。只要該用戶與 該虛擬機交互并且因此對該虛擬磁盤產(chǎn)生了改變,這個程序就會發(fā)生。在某一點,該用戶可 以注銷、關(guān)機或掛起正在該服務(wù)器系統(tǒng)上執(zhí)行的虛擬機,在那一點,任何剩余的改變都被拷 貝到該客戶端系統(tǒng)。然后該程序終止于完成框220。在一個實施方式中,后臺同步可以在客戶端系統(tǒng)120和服務(wù)器系統(tǒng)110之間的通 信會話過程中的任何時間啟動。該后臺同步可以自動發(fā)生(例如,根據(jù)由管理員設(shè)置的策 略)或根據(jù)用戶的請求發(fā)生。例如,該請求或策略可以指定該用戶的客戶端系統(tǒng)定期更新。在這種情況下,服 務(wù)器系統(tǒng)110確定從最近的更新以后是否已經(jīng)過去了特定長的時間。除了嚴(yán)格的時間測 量之外,確定更新時間的其它方式當(dāng)然也是可以實現(xiàn)的,例如,時鐘可以測量過去的時間的 量,或者該系統(tǒng)可以等待直到該用戶空閑,即,暫時不與該系統(tǒng)交互。如果該客戶端系統(tǒng)不 是最新的,并且根據(jù)服務(wù)器系統(tǒng)110中虛擬磁盤的當(dāng)前狀態(tài),即,是否存在增量磁盤144(圖 3A-3D),系統(tǒng)110,與客戶端系統(tǒng)120協(xié)同,開始傳送虛擬磁盤142和/或向虛擬磁盤142傳 送包含修改的增量磁盤144。在一個實施方式中,隨著VM 118的執(zhí)行,對增量磁盤144的新的改變被附加到增 量磁盤144,并定期傳送到用戶系統(tǒng)120。服務(wù)器系統(tǒng)110記住多少增量磁盤已經(jīng)被傳送到 了客戶端系統(tǒng)120,從而在每個更新間隔只有附加的部分被傳輸。在另一個實施方式中,在每個更新間隔當(dāng)前的增量磁盤被關(guān)閉而新的增量磁盤被 創(chuàng)建。當(dāng)前的增量磁盤(其包含對以前的增量磁盤中包含的信息的修改)被傳輸而新的改 變被寫到該新的增量磁盤。用這種方式,一系列的連鎖(chained)快照被創(chuàng)建并被傳送到 客戶端系統(tǒng)120,然后客戶端系統(tǒng)120重新組合或?qū)⑺鼈兒喜⒌絾我坏脑隽看疟P或者直接 合并到該虛擬磁盤。在一個實施方式中,每個增量磁盤在傳送到客戶端系統(tǒng)110之前被掃 描和/或清除掉惡意軟件(malware),比如病毒。該掃描可以以非打擾性的方式在后臺執(zhí) 行。圖5顯示了流程圖250,流程圖250用實例表示了用于實現(xiàn)桌面登出程序的方法。 該程序開始于開始框252并且繼續(xù)到操作254,在操作254中該服務(wù)器系統(tǒng)認(rèn)證請求訪問 的用戶。根據(jù)具體實現(xiàn),在這時候該用戶可以或可以不立即連接到他或她的遠(yuǎn)程桌面。然 后該程序進(jìn)行到操作256,在操作256中服務(wù)器系統(tǒng)接收由用戶發(fā)出的登出該桌面的請求。 然后該程序進(jìn)行到操作258,在操作258中該服務(wù)器系統(tǒng)確定該策略和用戶權(quán)限是否允許該用戶的桌面對該用戶的登出。如果不是的話,該程序進(jìn)行到操作260,在操作260中一個 消息被傳送到該客戶端系統(tǒng),其中該消息表明他或她有在當(dāng)前時間登出他或她的桌面的特 權(quán)。然后該程序終止于完成框274。如果,在操作258中,確定該用戶的確具有登出該桌面 的權(quán)限,那么該程序進(jìn)行到操作262以確定該用戶的桌面是否已經(jīng)登出,例如,登出到不同 的客戶端系統(tǒng),以及是否因為又登入回來所以看上去沒有。用戶桌面狀態(tài)可以被保持在例 如用戶數(shù)據(jù)庫或包含該虛擬磁盤映像的該文件中的或該文件的狀態(tài)字段、元數(shù)據(jù)字段或子 部分。如果該用戶的桌面當(dāng)前是登出的,那么該程序進(jìn)行到操作260而服務(wù)器系統(tǒng)120向 客戶端系統(tǒng)12發(fā)送登出訪問拒絕消息。這確保了每次只有一個該用戶的拷貝可以被登出。 在一個實施方式中,當(dāng)桌面在“登出”狀態(tài)時該用戶被阻止遠(yuǎn)程訪問他或她的桌面,在“登 出”狀態(tài)時遠(yuǎn)程訪問他或她的桌面可能導(dǎo)致該虛擬機的“分叉”以及同步的喪失。如果在操 作262中確定該桌面當(dāng)前已經(jīng)不是登出的,那么該程序進(jìn)行到操作264,在操作264中該用 戶的虛擬機如果運行的話就被終止。終止該虛擬機可以包括使其關(guān)機或者將該虛擬機掛起 并將該狀態(tài)保存到磁盤中。然后該程序進(jìn)行到操作266,在操作266中該客戶端系統(tǒng)被查詢以確定它是否有 該系統(tǒng)磁盤的當(dāng)前拷貝以及該服務(wù)器系統(tǒng)上可能存在的任何增量磁盤。如果沒有的話,那 么該程序進(jìn)行到操作268,在操作268中該虛擬磁盤和增量映像根據(jù)需要被拷貝或更新,然 后該程序進(jìn)行到操作270。如果,在操作266中,確定該客戶端系統(tǒng)已經(jīng)有了該虛擬磁盤的 當(dāng)前拷貝或任何增量磁盤,那么該程序直接進(jìn)行到操作270。在操作270中,該用戶或元數(shù)據(jù)被更新以反映該用戶的桌面的現(xiàn)在“登出”的狀 態(tài)。然后該程序進(jìn)行到操作272,在操作272中該用戶被允許通過在本地客戶端系統(tǒng)上運行 該本地虛擬機而訪問他或她的桌面。然后該程序終止于完成框274。在一個實施方式中,用戶可以被準(zhǔn)許遠(yuǎn)程訪問他或她的桌面,即便它登出到了客 戶端系統(tǒng)。盡管該桌面可以是在登出狀態(tài),然而這不妨礙客戶端系統(tǒng)120的用戶利用服務(wù) 器系統(tǒng)110的資源遠(yuǎn)程訪問他或她的桌面。例如,該客戶端系統(tǒng)120可能經(jīng)歷系統(tǒng)故障, 比如硬盤驅(qū)動器失靈或被病毒/惡意軟件感染。在這種情況下,該用戶可能選擇丟棄本地 虛擬機對服務(wù)器系統(tǒng)110上相應(yīng)的虛擬機的訪問,盡管還沒有將該桌面登入到該服務(wù)器系 統(tǒng)。替代地,在理解對該服務(wù)器系統(tǒng)的任何改變都會丟失的情況下該用戶可以被允許訪問 該服務(wù)器系統(tǒng)上的桌面。例如,如果一個用戶不能訪問他們的客戶端系統(tǒng),即,他們遠(yuǎn)離他 們的計算機但是需要訪問他們的桌面,例如,為了讀取文件愛你或訪問電子郵件或企業(yè)內(nèi) 部站點,他們?nèi)詫⒛軌蜻h(yuǎn)程訪問他們的桌面,然而是舊版本的,并且不存在任何最近保存的 數(shù)據(jù)。在另一個改進(jìn)中,該系統(tǒng)可以自動地(或應(yīng)用戶請求)對包含在數(shù)據(jù)存儲器 140(即,增量磁盤144或145(圖3A-3D))上的信息執(zhí)行病毒/惡意軟件掃描。病毒/惡 意軟件掃描的結(jié)果可以記錄在系統(tǒng)上和/或提供到客戶端系統(tǒng)120或存儲在結(jié)果文件(未 示)中。類似地,客戶端系統(tǒng)120的用戶可以通過在數(shù)據(jù)存儲器140上產(chǎn)生本地增量磁盤 的拷貝而使用服務(wù)器系統(tǒng)110執(zhí)行本地增量磁盤134的病毒/惡意軟件掃描。在病毒/惡 意軟件掃描完成后,該本地增量磁盤的拷貝可以被刪除,或者合并到虛擬磁盤142中。此處描述的各種實施方式使用了各種涉及在存儲計算機系統(tǒng)中的數(shù)據(jù)的由計算 機實現(xiàn)的操作。例如,這些操作可以請求對物理量進(jìn)行物理操作,通常而非必然,這些量會采用電或磁信號的形式,其中它們或它們的表現(xiàn)方式能夠被存儲、傳送、結(jié)合、比較或者以 其它方式被操作。進(jìn)一步,這種操作通常用術(shù)語指示,比如產(chǎn)生、識別、確定或比較。此處所 述的形成本發(fā)明的一個或多個實施方式的一部分的任何操作可以是有用的機器操作。另 外,本發(fā)明的一個或多個實施方式還涉及用于執(zhí)行這些操作的器件或裝置。該裝置可以是 為特定需要的目的特別建造的,或者它可以是由存儲在該計算機中的計算機程序選擇性激 活或者配置的。特別是,可以使用寫入了與本文的教導(dǎo)相一致的計算機程序的各種通用機 械,或者更方便的是建造一臺更專門為執(zhí)行所需操作而建造的裝置。此處所述的各種實施方式可以用其它計算機系統(tǒng)配置實現(xiàn),包括手持裝置、微處 理機系統(tǒng)、基于微處理器的或可編程的消費電子產(chǎn)品、微型計算機、大型計算機等等。本發(fā)明的一個或多個實施方式可以被實現(xiàn)為嵌入一個或多個計算機可讀介質(zhì)中 的一個或多個計算機程序或?qū)崿F(xiàn)為一個或多個計算機程序模塊。術(shù)語計算機可讀介質(zhì)指的 是可以儲存數(shù)據(jù)的任何數(shù)據(jù)存儲系統(tǒng),該數(shù)據(jù)以后被輸入到計算機系統(tǒng)中。計算機可讀介 質(zhì)可以是基于任何現(xiàn)有的或后來研發(fā)出來的用于以使計算機程序能夠被計算機讀取的方 式包含該計算機程序的技術(shù)。計算機可讀介質(zhì)的實施例包括硬盤驅(qū)動器、網(wǎng)絡(luò)附屬存儲器 (NAS)、只讀存儲器、隨機存取存儲器(例如,閃存存儲器設(shè)備)、CD (光盤)CD-ROM、CD-R或 CD-RW、DVD (數(shù)字多功能磁盤)、磁帶和其它光學(xué)和非光學(xué)數(shù)據(jù)存儲器系統(tǒng)。該計算機可讀 介質(zhì)還可以分布在網(wǎng)絡(luò)耦合的計算機系統(tǒng)上從而該計算機可讀代碼可以分布式存儲和執(zhí) 行。盡管為了清楚理解本發(fā)明已經(jīng)相當(dāng)詳細(xì)地描述了本發(fā)明的一個或多個實施方式, 然而顯然,可以在權(quán)利要求書的范圍內(nèi)進(jìn)行一些改變和修改。相應(yīng)地,所述實施方式應(yīng)當(dāng)被 認(rèn)為是說明性的而非限制性的,權(quán)利要求書的范圍不被限制于此處給出的細(xì)節(jié),而是可以 在權(quán)利要求書的范圍和等同內(nèi)進(jìn)行修改。在各權(quán)利要求書,各元件和/或步驟不暗示任何 特定的操作順序,除非在該權(quán)利要求中明確陳述。另外,盡管所述虛擬化方法通常假定虛擬機呈現(xiàn)與特定硬件系統(tǒng)相協(xié)調(diào)的界面, 然而本領(lǐng)域的普通技術(shù)人員將會意識到,所述方法可以結(jié)合不直接對應(yīng)于任何特定硬件系 統(tǒng)的虛擬化來使用??梢栽O(shè)想符合各種實施方式的虛擬化系統(tǒng),實現(xiàn)為寄生實施方式、非寄 生實施方式或趨向于在這兩者之間的模糊區(qū)別地帶的。而且,各種虛擬化操作可以全部或 部分以硬件實現(xiàn)。例如,一種硬件實現(xiàn)方式可以使用查找表作為對安全的非磁盤數(shù)據(jù)的存 儲器訪問請求的修改。許多變形、修改、補充和改進(jìn)是可能的,無論虛擬化程度如何。因此該虛擬化軟件 可包括執(zhí)行虛擬化功能的主機、控制臺或來賓操作系統(tǒng)。此處作為單一實例描述的各元件、 操作或架構(gòu)可以提供多種實例。最終,各種元件、操作和數(shù)據(jù)存儲間的界限在一定程度上是 隨意的,而在具體說明性配置的背景下描繪了特定的操作??梢栽O(shè)想功能的其它分配方式, 均落入本發(fā)明的范圍。通常,在示例性配置中作為獨立元件呈現(xiàn)的架構(gòu)和功能可以作為結(jié) 合在一起的架構(gòu)或元件而實現(xiàn)。類似地,作為單一元件呈現(xiàn)的架構(gòu)和功能可以作為獨立元 件實現(xiàn)。這些以及其它變形、修改、補充和改進(jìn)可以落入所附權(quán)利要求的范圍。
權(quán)利要求
一種將基于服務(wù)器的桌面虛擬機架構(gòu)擴展到客戶機的方法,所述方法包括通過通信網(wǎng)絡(luò)遠(yuǎn)程訪問用戶桌面,該遠(yuǎn)程訪問包括在客戶端系統(tǒng)和服務(wù)器系統(tǒng)之間發(fā)送和接收用戶輸入/輸出,該服務(wù)器系統(tǒng)運行提供該用戶桌面的虛擬機的服務(wù)器實例,該虛擬機的該服務(wù)器實例通過虛擬化軟件在與數(shù)據(jù)存儲系統(tǒng)通信的物理計算機系統(tǒng)上執(zhí)行;虛擬化軟件將來自該虛擬機的該服務(wù)器實例的磁盤讀請求導(dǎo)向虛擬磁盤,該虛擬磁盤包含容納于該數(shù)據(jù)存儲系統(tǒng)上的一個或多個文件中的虛擬磁盤映像,該虛擬化軟件將來自該虛擬機的該服務(wù)器實例的磁盤寫請求導(dǎo)向增量磁盤,該增量磁盤包含對該虛擬磁盤的修改,該客戶端系統(tǒng)具有遠(yuǎn)程桌面客戶端以接收該用戶輸入/輸出并將該用戶輸入/輸出發(fā)送到該客戶端系統(tǒng)的用戶界面;在該客戶端系統(tǒng)上創(chuàng)建該虛擬磁盤的本地拷貝;將來自該客戶端系統(tǒng)的登出請求發(fā)送到該服務(wù)器系統(tǒng)以在本地訪問該用戶桌面;如果該虛擬機的該服務(wù)器實例當(dāng)前正在執(zhí)行的話,終止該虛擬機的該服務(wù)器實例;在該客戶端系統(tǒng)上創(chuàng)建該增量磁盤的拷貝;以及使用該客戶端系統(tǒng)上的虛擬化軟件執(zhí)行該客戶端系統(tǒng)上的該虛擬機的客戶端實例以將來自該虛擬機的該客戶端實例的磁盤讀請求導(dǎo)向至少該虛擬磁盤的該本地拷貝并將來自該虛擬機的該客戶端實例的用戶輸入/輸出導(dǎo)向該客戶端系統(tǒng)的該用戶界面。
2.根據(jù)權(quán)利要求1所述的方法,其中該創(chuàng)建該虛擬磁盤的該本地拷貝是在該虛擬機的 該服務(wù)器實例運行的時候執(zhí)行的。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括,在該虛擬機的該服務(wù)器實例運行的時候, 在該客戶端系統(tǒng)接收對存儲在該服務(wù)器系統(tǒng)上的該增量磁盤中的該虛擬磁盤的修改。
4.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在執(zhí)行該虛擬機的該客戶端實例之前將該 增量磁盤的該拷貝與該虛擬磁盤的該本地拷貝合并。
5.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括將來自該虛擬機的該客戶端實例的磁盤寫導(dǎo)向本地增量磁盤; 將來自該客戶端系統(tǒng)的登入請求發(fā)送到該服務(wù)器系統(tǒng)以遠(yuǎn)程訪問該用戶桌面; 如果該虛擬機的該客戶端實例正在運行的話,終止該虛擬機的該客戶端實例; 將該本地增量磁盤的拷貝發(fā)送到該服務(wù)器系統(tǒng);以及 遠(yuǎn)程訪問該虛擬機的該服務(wù)器實例。
6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括,在該服務(wù)器系統(tǒng)上,在將該本地增量磁盤 的該拷貝發(fā)送到該服務(wù)器系統(tǒng)以后,在啟動該虛擬機的該服務(wù)器實例之前,將該增量磁盤 和該本地增量磁盤與該虛擬機合并。
7.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括,在該虛擬機的該客戶端實例的執(zhí)行開始 之后并在將該本地增量磁盤的該拷貝發(fā)送到該服務(wù)器系統(tǒng)之前,阻止對該虛擬機的該服務(wù) 器實例的訪問。
8.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括,在該虛擬機的該服務(wù)器實例的執(zhí)行過程 中,定期創(chuàng)建額外的增量磁盤并將該額外的增量磁盤發(fā)送到該客戶端系統(tǒng),該額外的增量 磁盤中的每一個都是增量磁盤鏈的一部分。
9.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括,在該服務(wù)器系統(tǒng)上,保持該用戶桌面的 桌面狀態(tài)為登入或登出,其中當(dāng)該用戶桌面上次是使用該虛擬機的該服務(wù)器實例遠(yuǎn)程訪問時,該桌面狀態(tài)是登入,而當(dāng)該用戶桌面上次是使用該虛擬機的該客戶端實例本地訪問時, 該桌面狀態(tài)是登出;當(dāng)該增量磁盤的該拷貝在該客戶端系統(tǒng)上創(chuàng)建之后,該服務(wù)器系統(tǒng)認(rèn) 為該桌面狀態(tài)是登出。
10.根據(jù)權(quán)利要求1所述的方法,其中該虛擬化軟件模擬用戶數(shù)據(jù)磁盤和系統(tǒng)磁盤,該用戶數(shù)據(jù)磁盤和該系統(tǒng)磁盤是該虛擬 機中執(zhí)行的來賓系統(tǒng)軟件能夠訪問的,該來賓系統(tǒng)軟件在該用戶數(shù)據(jù)磁盤中存儲用戶數(shù)據(jù) 并在該系統(tǒng)磁盤中存儲操作系統(tǒng)和應(yīng)用文件,該用戶數(shù)據(jù)包括用戶文檔和設(shè)置;該數(shù)據(jù)存儲系統(tǒng)上的該虛擬磁盤是虛擬用戶數(shù)據(jù)磁盤而該增量磁盤是增量用戶數(shù)據(jù) 磁盤;以及該用戶桌面的該遠(yuǎn)程訪問進(jìn)一步包括將用戶數(shù)據(jù)磁盤讀請求導(dǎo)向該虛擬用戶數(shù)據(jù)磁盤并將系統(tǒng)磁盤讀請求導(dǎo)向虛擬系統(tǒng) 磁盤,該虛擬系統(tǒng)磁盤是存儲在該數(shù)據(jù)存儲系統(tǒng)或另一個數(shù)據(jù)存儲系統(tǒng)上的一個或多個文 件中的磁盤映像;以及將系統(tǒng)磁盤寫請求導(dǎo)向增量系統(tǒng)磁盤并將用戶數(shù)據(jù)磁盤寫請求導(dǎo)向該增量用戶數(shù)據(jù) 磁盤,該增量系統(tǒng)磁盤包含對該虛擬系統(tǒng)磁盤的修改而該增量用戶數(shù)據(jù)磁盤包含對該虛擬 用戶數(shù)據(jù)磁盤的修改。
11.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括當(dāng)該增量磁盤的該拷貝的創(chuàng)建執(zhí)行時丟 棄該增量系統(tǒng)磁盤。
12.根據(jù)權(quán)利要求10所述的方法,進(jìn)一步包括當(dāng)該增量磁盤的該拷貝的創(chuàng)建執(zhí)行時在 該客戶端系統(tǒng)上創(chuàng)建該增量系統(tǒng)磁盤的拷貝。
13.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在執(zhí)行該虛擬機的該客戶端實例之前針 對該服務(wù)器系統(tǒng)的惡意軟件掃描該增量磁盤。
14.一種用于將基于服務(wù)器的桌面虛擬機架構(gòu)擴展到客戶機的實體機器可讀介質(zhì),該 實體機器可讀介質(zhì)包含在客戶端系統(tǒng)上實現(xiàn)一種方法的計算機程序指令,所述方法包括通過通信網(wǎng)絡(luò)遠(yuǎn)程訪問用戶桌面,該遠(yuǎn)程訪問包括在客戶端系統(tǒng)和服務(wù)器系統(tǒng)之間發(fā) 送和接收用戶輸入/輸出,該服務(wù)器系統(tǒng)運行提供該用戶桌面的虛擬機的服務(wù)器實例,該 虛擬機的該服務(wù)器實例通過虛擬化軟件在與數(shù)據(jù)存儲系統(tǒng)通信的物理計算機系統(tǒng)上執(zhí)行; 虛擬化軟件將來自該虛擬機的該服務(wù)器實例的磁盤讀請求導(dǎo)向虛擬磁盤,該虛擬磁盤包含 容納于該數(shù)據(jù)存儲系統(tǒng)上的一個或多個文件中的虛擬磁盤映像,該虛擬化軟件將來自該虛 擬機的該服務(wù)器實例的磁盤寫請求導(dǎo)向增量磁盤,該增量磁盤包含對該虛擬磁盤的修改, 該客戶端系統(tǒng)具有遠(yuǎn)程桌面客戶端以接收該用戶輸入/輸出并將該用戶輸入/輸出發(fā)送到 該客戶端系統(tǒng)的用戶界面;在該客戶端系統(tǒng)上創(chuàng)建該虛擬磁盤的本地拷貝;將來自該客戶端系統(tǒng)的登出請求發(fā)送到該服務(wù)器系統(tǒng)以在本地訪問該用戶桌面,該登 出請求使得如果該虛擬機的該服務(wù)器實例當(dāng)前正在執(zhí)行的話,終止該虛擬機的該服務(wù)器實 例;在該客戶端系統(tǒng)上創(chuàng)建該增量磁盤的拷貝;以及使用該客戶端系統(tǒng)上的虛擬化軟件執(zhí)行該客戶端系統(tǒng)上的該虛擬機的客戶端實例以 將來自該虛擬機的該客戶端實例的磁盤讀請求導(dǎo)向至少該虛擬磁盤的該本地拷貝并將來 3自該虛擬機的該客戶端實例的用戶輸入/輸出導(dǎo)向該客戶端系統(tǒng)的該用戶界面。
15.根據(jù)權(quán)利要求14所述的介質(zhì),其中該創(chuàng)建該虛擬磁盤的該本地拷貝是在該虛擬機 的該服務(wù)器實例運行的時候執(zhí)行的。
16.根據(jù)權(quán)利要求14所述的介質(zhì),其中該方法進(jìn)一步包括,在該虛擬機的該服務(wù)器實 例運行的時候,在該客戶端系統(tǒng)接收對存儲在該服務(wù)器系統(tǒng)上的該增量磁盤中的該虛擬磁 盤的修改。
17.根據(jù)權(quán)利要求14所述的介質(zhì),其中該方法進(jìn)一步包括在執(zhí)行該虛擬機的該客戶端 實例之前將該增量磁盤的該拷貝與該虛擬磁盤的該本地拷貝合并。
18.根據(jù)權(quán)利要求14所述的介質(zhì),其中該方法進(jìn)一步包括將來自該虛擬機的該客戶端實例的磁盤寫導(dǎo)向本地增量磁盤;將來自該客戶端系統(tǒng)的登入請求發(fā)送到該服務(wù)器系統(tǒng)以遠(yuǎn)程訪問該用戶桌面;如果該虛擬機的該客戶端實例正在運行的話,終止該虛擬機的該客戶端實例;將該本地增量磁盤的拷貝發(fā)送到該服務(wù)器系統(tǒng);以及在將該本地增量磁盤的拷貝發(fā)送到該服務(wù)器系統(tǒng)之后遠(yuǎn)程訪問該虛擬機的該服務(wù)器 實例。
19.根據(jù)權(quán)利要求18所述的介質(zhì),其中在向該本地增量磁盤的該拷貝發(fā)送到該服務(wù)器 系統(tǒng)以后,在啟動該虛擬機的該服務(wù)器實例之前,該增量磁盤和該本地增量磁盤與該虛擬 機合并。
20.根據(jù)權(quán)利要求18所述的介質(zhì),其中該方法進(jìn)一步包括在該虛擬機的該客戶端實例 的執(zhí)行開始之后并在將該本地增量磁盤的該拷貝發(fā)送到該服務(wù)器系統(tǒng)之前,阻止對該虛擬 機的該服務(wù)器實例的訪問。
21.根據(jù)權(quán)利要求14所述的介質(zhì),其中該方法進(jìn)一步包括在該虛擬機的該服務(wù)器實例的執(zhí)行過程中,定期創(chuàng)建額外的增量磁盤并將該額外的增 量磁盤發(fā)送到該客戶端系統(tǒng),該額外的增量磁盤中的每一個都是增量磁盤鏈的一部分。
22.根據(jù)權(quán)利要求14所述的介質(zhì),其中該虛擬化軟件模擬用戶數(shù)據(jù)磁盤驅(qū)動和系統(tǒng)磁盤驅(qū)動,該用戶數(shù)據(jù)磁盤驅(qū)動和該系統(tǒng) 磁盤驅(qū)動是該虛擬機中執(zhí)行的來賓系統(tǒng)軟件能夠訪問的,該來賓系統(tǒng)軟件在該用戶數(shù)據(jù)磁 盤驅(qū)動中存儲用戶數(shù)據(jù)并在該系統(tǒng)磁盤驅(qū)動中存儲操作系統(tǒng)和應(yīng)用文件,該用戶數(shù)據(jù)包括 用戶文檔和設(shè)置;該數(shù)據(jù)存儲系統(tǒng)上的該虛擬磁盤是虛擬用戶數(shù)據(jù)磁盤而該增量磁盤是增量用戶數(shù)據(jù) 磁盤;該用戶桌面的該遠(yuǎn)程訪問進(jìn)一步包含將用戶數(shù)據(jù)磁盤讀請求導(dǎo)向該虛擬用戶數(shù)據(jù)磁盤并將該系統(tǒng)磁盤讀請求導(dǎo)向虛擬系 統(tǒng)磁盤,該虛擬系統(tǒng)磁盤是存儲在該數(shù)據(jù)存儲系統(tǒng)或另一個數(shù)據(jù)存儲系統(tǒng)上的一個或多個 文件中的磁盤映像;以及將系統(tǒng)磁盤寫請求導(dǎo)向增量系統(tǒng)磁盤并將用戶數(shù)據(jù)磁盤寫請求導(dǎo)向該增量用戶數(shù)據(jù) 磁盤,該增量系統(tǒng)磁盤包含對該虛擬系統(tǒng)磁盤的修改而該增量用戶數(shù)據(jù)磁盤包含對該虛擬 用戶數(shù)據(jù)磁盤的修改;以及其中在該客戶端系統(tǒng)上創(chuàng)建該增量磁盤的拷貝包括從該服務(wù)端系統(tǒng)下載對該用戶數(shù)據(jù)磁盤驅(qū)動的改變而不下載對該系統(tǒng)磁盤驅(qū)動的改變。
23.根據(jù)權(quán)利要求22所述的介質(zhì),其中當(dāng)該增量磁盤的該拷貝的創(chuàng)建執(zhí)行時該服務(wù)器 系統(tǒng)丟棄該增量系統(tǒng)磁盤。
24.根據(jù)權(quán)利要求22所述的介質(zhì),其中該方法進(jìn)一步包括當(dāng)該增量磁盤的該拷貝的創(chuàng) 建執(zhí)行時在該客戶端系統(tǒng)上創(chuàng)建該增量系統(tǒng)磁盤的拷貝。
25.根據(jù)權(quán)利要求14所述的介質(zhì),其中該服務(wù)器系統(tǒng)在執(zhí)行該虛擬機的該客戶端實例 之前針對該服務(wù)器系統(tǒng)的惡意軟件掃描該增量磁盤。
26.一種用于將基于服務(wù)器的桌面虛擬機架構(gòu)擴展到客戶機的實體機器可讀介質(zhì),該 實體機器可讀介質(zhì)包含在服務(wù)器系統(tǒng)上實現(xiàn)一種方法的計算機程序指令,所述方法包括運行提供該用戶桌面的虛擬機的服務(wù)器實例,該虛擬機的該服務(wù)器實例通過虛擬化軟 件在該服務(wù)器系統(tǒng)上的物理計算機上執(zhí)行,該物理計算機與數(shù)據(jù)存儲系統(tǒng)通信;該虛擬化 軟件將來自該虛擬機的該服務(wù)器實例的磁盤讀請求導(dǎo)向虛擬磁盤,該虛擬磁盤包含容納于 該數(shù)據(jù)存儲系統(tǒng)上的一個或多個文件中的虛擬磁盤映像,該虛擬化軟件將來自該虛擬機的 該服務(wù)器實例的磁盤寫請求導(dǎo)向增量磁盤,該增量磁盤包含對該虛擬磁盤的修改,該客戶 端系統(tǒng)具有遠(yuǎn)程桌面客戶端以接收該用戶輸入/輸出并將該用戶輸入/輸出發(fā)送到該客戶 端系統(tǒng)的用戶界面;在客戶端系統(tǒng)和服務(wù)器系統(tǒng)之間發(fā)送和接收用戶輸入/輸出;向該客戶端系統(tǒng)發(fā)送該虛擬磁盤的拷貝;接收來自該客戶端系統(tǒng)的登出請求;響應(yīng)該登出請求,如果該虛擬機的該服務(wù)器實例當(dāng)前正在執(zhí)行的話,終止該虛擬機的 該服務(wù)器實例,向該客戶端系統(tǒng)發(fā)送該增量磁盤的拷貝從而該用戶可以使用在該客戶端系 統(tǒng)上執(zhí)行的該虛擬機的客戶端實例訪問該桌面;以及保持該用戶桌面的桌面狀態(tài)的記錄為登入或登出,其中當(dāng)該用戶桌面上次是使用該虛 擬機的該服務(wù)器實例遠(yuǎn)程訪問時,該桌面狀態(tài)是登入,而當(dāng)該用戶桌面上次是使用該虛擬 機的該客戶端實例本地訪問時,該桌面狀態(tài)是登出;當(dāng)該增量磁盤的該拷貝發(fā)送到該客戶 端系統(tǒng)上之后,該服務(wù)器系統(tǒng)認(rèn)為該桌面狀態(tài)是登出。
全文摘要
基于服務(wù)器的桌面虛擬機架構(gòu)可被擴展到客戶機上。在一個實施方式中,從客戶端系統(tǒng)遠(yuǎn)程訪問用戶桌面。該遠(yuǎn)程桌面是由在服務(wù)器系統(tǒng)上運行的第一虛擬機產(chǎn)生的,該服務(wù)器系統(tǒng)可包含一個或多個服務(wù)器計算機。在該第一虛擬機的執(zhí)行過程中,對相應(yīng)虛擬磁盤的寫被定向到增量磁盤文件或重做日志。在該客戶端系統(tǒng)上創(chuàng)建該虛擬磁盤的拷貝。當(dāng)用戶決定“登出”他或她的桌面時,該第一虛擬機被終止(如果它正在運行的話)而在該客戶端系統(tǒng)上創(chuàng)建該增量磁盤的拷貝。一旦該增量磁盤在該客戶端系統(tǒng)上存在,可以使用該虛擬磁盤和增量磁盤在該客戶端系統(tǒng)上啟動第二虛擬機以提供對該客戶端系統(tǒng)處的用戶桌面的本地訪問。這使得用戶能夠在此時訪問他或她的桌面而不必連接到網(wǎng)絡(luò)上。
文檔編號G06F15/16GK101971162SQ200980105185
公開日2011年2月9日 申請日期2009年2月20日 優(yōu)先權(quán)日2008年2月26日
發(fā)明者亞德·沙姆沙姆, 亞龍·霍爾珀林, 克里斯蒂安·M·勒羅伊, 馮季, 杰瑞德·I·L·昌, 馬修·??藸査诡D 申請人:威睿公司