流式傳輸客戶端系統基本鏡像的製作方法
2023-07-25 08:13:11
專利名稱:流式傳輸客戶端系統基本鏡像的製作方法
技術領域:
這裡呈現的主題通常涉及可選桌面(desktop)計算方案。更特別的,主題涉及與一個或多個例如為存儲區域網(SAN)設備的存儲設備聯網的中心管理的個人計算機(PC) 系統。
背景技術:
商業頻繁涉及成本節省和安全。在IT成本領域,商業日益涉及減少維護企業PC 的成本的要求。此外,商業尋求省錢且無需損失性能的安全可靠的方案。為了滿足這樣的要求,各PC生產商已引入了聚焦瘦客戶端的方案(thinsclient focused solution),這樣叫是因為瘦客戶端在某方面依賴於一個或者多個其他計算機系統(例如,SAN)來提供傳統的PC功能。在其他特徵中,聚焦瘦客戶端的方案允許中央管理和增加的安全性。一種這樣的方法已被用於虛擬化客戶端,更多依賴於後端伺服器。另一種方法是Lenovo的安全管理的客戶端(Secure Managed Client, SMC)。
作為可選桌面操作環境的示例,Lenovo的安全管理的客戶端(SMC)提供中心管理的PC。在一種實現中,SMC採用具有INTEL 處理器的ThinkCentre 客戶端、iSCSI (網際網路小型計算機系統接口 )協議、共同開發的軟體堆棧和由INTEL 提供動力的Lenovo 存儲陣列裝置。即使SMC提供了瘦客戶端方案的所有優點和功能,SMC也避免了損失重要的特徵,例如應用兼容性、圖形性能、可用的桌面選項的數目等等。通過平衡集中的客戶端管理,SMC使得容易管理和提供用戶和鏡像,最小化所有權的總成本,及其他。這主要是歸因於SMC排除了對於桌面側支持的要求並且降低了成本(例如與安裝、改變、開發和能耗相關的成本)的事實。
然而,本發明人已認識到可能存在SMC操作環境的某些改進。
發明內容
概括的說,一方面提供了一種裝置,包括一個或多個處理器;網絡接口,用於通過網絡訪問在遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像;以及硬碟;其中,響應於該一個或多個處理可訪問的計算機可讀程序代碼的執行,該一個或多個處理器用於確定該硬碟是否已被提供用作客戶端本地高速緩衝存儲器;以及,在確定該硬碟已被提供用作客戶端本地高速緩衝存儲器後,從該遠程存儲設備下載該基本鏡像。
另一方面提供一種方法,包括在用於訪問遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像的裝置中,確定該裝置的硬碟是否已被提供用作客戶端本地高速緩衝存儲器;以及,在確定該硬碟已被提供用作客戶端本地高速緩衝存儲器後,從該遠程存儲設備下載基本鏡像。
再一方面提供一種電腦程式產品,包括計算機可讀存儲介質,具有嵌入到其中的指令程序,該指令程序允許裝置訪問在遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像,該指令程序進一步包括計算機可讀程序代碼,用於確定該裝置的硬
4盤是否已被提供用作客戶端本地高速緩衝存儲器;並且,在確定該硬碟已被提供用作客戶端本地高速緩衝存儲器後,從該遠程存儲設備下載基本鏡像。
前述為概要且因此可能包含細節的簡化、概括和省略;因此,本領與普通技術人員將意識到,該概要僅是示意性的並不意圖成為任何方式的限制。
為了更好理解實施例及其其他和進一步的特徵和優點,將結合附圖參考下面的具體實施方式
。將在所附的權利要求書中指出本發明的範圍。
圖1示出了可選桌面(desktop)操作環境。
圖2示出了可選桌面操作環境。
圖3A和;3B示出了修改的OS和客戶端設備。
圖4示出了磁碟提供的示例。
圖5A和5B示出了磁碟提供的另外的示例。
圖6示出了基本鏡像流式傳輸(streaming)的示例。
圖7示出了多個分區的OS遷移的示例。
圖8示出了確定啟動位置、修補和數據取回的示例。
圖9示出了計算機系統。
具體實施例方式將會容易理解到,如這裡的附圖中通常描述和示出的實施例的元件可以以除了所描述的實施之外的廣泛的不同的配置進行排列和設計。因此,如附圖所呈現的實施例的下面的更詳細的說明並不意圖限制權利要求的範圍,而僅僅是這些實施例的代表。
通篇說明書中參考為「一個實施例」或「實施例」(等)意味著在至少一個實施例中包含了結合實施例描述的特定特徵、結構或特性。因此,通篇說明書不同位置出現的措辭 「在一個實施例中,,或「在實施例中,,不必然所有都涉及同一實施例。
此外,可以在一個或多個實施例中以任何適合的方式組合所描述的特徵、結構或者特性。在下面的描述中,提供大量特定細節以給出實施例的全面的理解。然而,一個相關領域的技術人員將會意識到,可以無需一個或多個該特定細節,或採用其他方法、元件、材料等來實施方面。在其他實例中,未詳細示出或描述已知的結構、材料或操作,以避免引起困惑。
本發明的實施例提供了用於提供可選桌面計算方案的系統、方法、裝置以及電腦程式產品。本發明的實施例通常提供用於將共同的基本鏡像流式傳輸下載到本地存儲同時從遠程存儲設備並行訪問該基本鏡像的客戶端設備。該客戶端用於遠程地在用戶特定覆蓋鏡像上存儲用戶特定數據。
通過參考附圖會更好的理解所描述的實施例。以下的描述僅是指示例的方式,並簡單地描述某些實施例。
在安全管理的客戶端(SMC)操作環境中使用的無磁碟客戶端的操作是例如在 2007年3月29日遞交的發明名稱為「DISKLESS CLIENT USING AHYPERVIS0R」的且通過參考引入於此的、待審且共同受讓的US專利申請序列號No. 11/693,515中所描述的那些。如
5那裡所描述的,在無磁碟客戶端系統中採用管理程序(hypervisor)來更有效的促進和極大擴展作業系統(0 的啟動能力。更特別的,管理程序優選地「捕獲」來自OS的所有磁碟和LAN訪問。
換句話說,對於多個OS通常用於在啟動期間寫入本地硬碟方面以及一種方法希望將這樣的OS引入到無磁碟系統中,依據在2007年3月四日遞交的發明名稱為「DISKLESS CLIENT USING A HYPERVISOR」的、待審且共同受讓的US專利申請序列號No. 11/693,515的管理程序排除了需要對用於啟動情境會顯著不同的無磁碟環境的OS進行昂貴的重配置。 任意和所有至遠程存儲的平移(translation)可以由管理程序執行且因此實質上對於OS 是「隱蔽的」。
圖1示出了高階SMC操作環境。SMC使用連接客戶端IOlaUOlb和後端設備(例如,SAN設備10加、102b)的高性能網絡基礎設施。一個實施方式使用具有虛擬LAN的IG乙太網交換機103。
管理器104是提供用於管理並維護SMC系統的中心設備(伺服器)。管理器104 可被用於例如處理來自客戶端(例如,客戶端101a)的用戶認證。客戶端101a,例如Lenovo 的具有INTEL vProTM 的ThinkCentre M58P超小型(Ultra Small Form Factor, USFF) 桌面PC,被用於DHCP動態地址分配並使用DHCP伺服器的啟動路徑選項來進行至SAN 102a 的iSCSI(網際網路小型計算機系統接口)連接,這將啟動共同的用戶登陸屏幕。
在登陸時,將用戶的憑證發送到客戶端連接網頁服務,該客戶端連接網頁服務認證用戶並返回啟動客戶端IOla所需的信息到SAN 102a上的客戶0S。因此,無磁碟客戶端進行至SAN 10 的iSCSI連接並啟動用戶鏡像。管理器104可用於在後臺自動產生包括密碼的iSCSI登陸信息,並將信息安全地傳送到客戶端101a。為了增加安全性,用戶不必知道用於用戶鏡像的低階訪問的密碼。
SAN 10 是安全地存儲客戶端IOla的數據的設備。SAN 10 包括具有特定軟體的INTEL iSCSI SAN,該INTEL iSCSI SAN配有RAID磁碟和GB乙太網埠。可以通過管理控制臺105遠程地管理和提供SAN 102a。管理控制臺105可以用於產生用於訪問 SAN 10 的用戶帳號和密碼。
現在參考圖2,示出了另一個SMC操作環境的高階示例。與圖1示出的SMC操作環境相同,圖2示出的SMC操作環境使用連接客戶端201a、201b和後端設備(例如,SAN設備 202a,202b)的高性能網絡基礎設施。一種實施方式使用具有虛擬LAN的IG乙太網交換機 203。管理器204可用於在後臺自動產生包括密碼的iSCSI登陸信息,並將信息安全地傳送到客戶端201a。
SAN 202a是安全地存儲客戶端201a的數據的設備。SAN 202a包括具有特定軟體的INTEL iSCSI SAN,該INTEL iSCSI SAN配有RAID磁碟和GB乙太網埠。可以通過管理控制臺205遠程地管理和提供SAN 202a。管理控制臺205可以用於產生用於訪問 SAN 20 的用戶帳號和密碼。
然而,與圖1示出的SMC操作環境不同,圖2中的SAN設備2(^a、202b包括(1)包含作業系統的磁碟的基本鏡像,及( 用戶覆蓋鏡像(user overlayimage)。作業系統的基本鏡像是可以由SAN設備(例如,202a)的所有用戶訪問和利用的。通過使用用戶覆蓋來實施個體用戶對基本鏡像的任何修改。該覆蓋優選地對於所有用戶是不可訪問的,且指示了特定用戶對基本鏡像進行了何種改變。例如,這可以通過記錄包含了由用戶改變的數據的基本鏡像的那些扇區來實現。這可以通過使用查詢表實現。包含了改變的數據的扇區也被優選地存儲在用戶覆蓋中。
安裝在客戶端(例如,201a)中的管理程序下載包含了關於已由用戶改變了的基本鏡像的那些扇區的信息的查詢表。在由客戶端201a上運行的軟體調用關於特定扇區的信息時,管理程序決定是從存儲在SAN 20 上的共同的基本鏡像還是從SAN 20 上存儲的用戶覆蓋圖獲得該扇區。
在第一次啟動期間最小化設置時間 通常,例如在無磁碟客戶端的情境下,存在可用於開發SMC環境下的客戶OS的多種方法。標準PC鏡像(例如,用於預下載客戶端(例如,Lenovo的ThinkCentre 或ThinkPad )的相同鏡像)被用作對該鏡像的每個用戶創建虛擬用戶硬驅動的模板。例如通過提供的應用程式(utility)、或通過安裝該用戶鏡像(使用iSCSl啟動器 (initiator))然後將該用戶鏡像拷貝到SAN 102a,來上傳該用戶圖形。
通常,可以通過使用許多不同的方法,例如使用Windows 標準安裝⑶、使用如系統預備(syspr印)的Windows 成像工具、以及例如ImageUltra Builder的Lenovo 的成像工具,來創建SMC平臺支持的鏡像。無論哪個用於創建該用戶鏡像,都例如使用 sysprep 的通用傳遞特徵(general pass feature)來g化(generalize) i亥用戶Hf象。在這樣的動作中,作為鏡像創建處理的一部分將與用於創建該用戶鏡像的機器相關的特定信息從系統移除。在該泛化處理中從作業系統移除的信息的類型的示例包括計算機的名稱、 已安裝的設備驅動器,等等。在從SAN驅動第一次啟動該用戶鏡像時,該信息會被重新插入或重新安裝到作業系統(用戶覆蓋)中。這樣的重新安裝可能依賴於客戶端(例如,101a) 的硬體配置。
可以使用啟動加速程序或更快的網絡來加速客戶端IOlaUOlb的啟動。通常,通過優化SAN高速緩衝存儲器來實現了啟動加速。SAN高速緩衝存儲器減少了啟動循環中所需的磁碟尋找和磁碟讀取的數目。在連接到SAN的大多數客戶端IOlaUOlb使用相同鏡像時SAN高速緩衝存儲器工作效率最高。例如,如果SAN上的大多數卷是Windows Vista 0S,而少數是Windows XPOS,則會對Windows Vista OS優化SAN高速緩衝存儲器。每個SAN具有自身的高速緩衝存儲器策略來捆綁類似的OS以獲得最大的啟動加速。
在依據實施例(如圖2所示)將作業系統的鏡像劃分成共同的基本鏡像和用戶覆蓋時,本發明人已意識到在應用基本鏡像和用戶覆蓋後,許多共同的OS文件存在於覆蓋鏡像上。這增加了覆蓋鏡像的大小並增加了 OS的初始化或第一次啟動所需的時間量,因為各種設備驅動器等是基於客戶端(例如,210a)的硬體配置而安裝的。因此,實施例在非傳統的鏡像創建處理中利用傳統的成像工具來加速啟動並減少用戶覆蓋的大小。
如圖3AJB所示,為了以這樣的方式修改OS鏡像,一實施例通過調節現有鏡像生成工具(例如Syspr印)來減小第一次啟動期間安裝的共同的OS文件的數目從而修改鏡像生成。這減少了 OS的設置時間並增加了共同的OS文件的量。為了加速啟動,這些共同的 OS文件可以特別地包括在使用成像應用程式(例如,syspr印/generalize)將鏡像泛化時從基本鏡像共同卸載並且然後在客戶端計算機上安裝的鏡像的第一次啟動期間重新安裝的那些文件。例如,共同的OS文件可以包括已知要被包含在共同的客戶端301a上的標準
7的設備驅動器。
OS鏡像設置的例子如圖:3B所示。在實施例中,使用X86 Microsoft-ffi ndows-pnpSysprep-neutral 鏡像組件將 PersistAllDevice 設置改為 True 310。 該Microsoft-Windows-pnpSyspr印組件指定了所有即插即用信息在該泛化回合 (generalized pass)期間是否持續。典型地,在該泛化回合期間將所有設備信息從計算機移除。如果在該泛化回合期間移除了設備信息,則在下一次計算機運行即插即用時,會重新初始化設備。典型地,在下一次計算機啟動時,該專化(specialize)回合運行,並且該即插即用運行。這確保了在運行Syspr印的泛化回合時320,不卸載(跳過)共同的OS文件 330。
返回參考圖3A,然後將這些共同的OS文件提供在SAN 30 上的基本鏡像306中。 然後在該泛化回合期間不會卸載所有已經安裝的共同的OS文件(例如,設備驅動器),這使得這些共同的OS文件存在於基本鏡像306中。這在客戶端具有相同硬體配置時,正如典型地在組織應用SMC計算環境時的情況下工作得最好。
示出了 SAN 302a具有共同的基本鏡像306和用戶覆蓋307。客戶端301a上的管理程序308控制是否從共同的基本鏡像306或用戶覆蓋307拉出磁碟扇區讀取被。如這裡所描述的,在對基本鏡像306做出改變時,改變的數據所存在的磁碟扇區被存儲在用戶覆蓋307中。在用戶覆蓋307中也可以保持查詢表,在啟動時將這樣的查詢表加載到管理程序中。管理程序使用該查詢表來記住哪個磁碟扇區被存儲在用戶覆蓋307中。
磁碟提供 如圖4所示,可以將只讀的本地高速緩衝存儲器408a(例如,快閃記憶體設備或硬碟驅動 (HDD))中的基本鏡像406的拷貝提供給客戶端401a。基本鏡像408a的這個本地拷貝允許進一步減少第一次啟動(設置)時間並減少網絡通信量,因為客戶端401a可以(通過管理程序408)訪問基本鏡像408a的本地拷貝而不是訪問SAN 40 上存儲的基本鏡像406。如這裡所討論的,可以將特定用戶做出的所有改變存儲在用戶覆蓋圖407中。應當注意到,本地高速緩衝存儲器408a可以包含多個基本鏡像的本地拷貝。例如,一個這樣的基本鏡像可以是Windows XP 0S,而第二個這樣的基本鏡像可以是Windows 70S。可選的,如果不同用戶具有基本鏡像的不同建築的情況下應用SMC操作環境(例如學院或大學(教工/ 職工和學生)),則一個這樣的基本鏡像可以是教工/職工建築,而第二個這樣的基本鏡像可以是學生建築。在這樣的環境中,本地高速緩衝存儲器還包括指示哪個基本鏡像在本地高速緩衝存儲器上可用。可以使用任何數目的多個基本鏡像,僅受到硬體限制(即,鏡像大小、可用的磁碟空間,如這裡將進一步描述的限制)。還可以在本地高速緩衝存儲器中放置額外的項目,例如管理程序啟動代碼本身。在所有這樣的實例中,管理程序被用於記住哪個基本鏡像可以被任何給定的用戶使用。
在圖5A和圖5B中示出了磁碟提供的例子。為了設置具有本地高速緩衝存儲器 508a的客戶端,可以使用該客戶端的HDD。本地高速緩衝存儲器508a通常會是本地存儲設備,該本地存儲設備被提供來包括基本鏡像(包括共同的OS文件,如這裡所討論的)、開銷空間(overhead space)和可選的用戶空間。提供客戶端的一個阻礙是客戶端具有不同大小的HDD的事實;因此對於IT管理員,可能很難確保不同類的客戶端會接受給定的基本鏡像。
如圖5A所示,實施例提供了方法來提供用作本地高速緩衝存儲器508a (具有可選的用戶存儲)的客戶端的本地磁碟,而無需IT管理員知道客戶端的本地HDD大小。當前, 為了對磁碟分區,IT管理員需要知道客戶端HDD的大小和期望的分區大小。這些要求在存在作為單個組進行管理的客戶端的不同類集合(HDD的大小)時特別加劇。例如,如果管理員正在管理100個客戶端系統,則它們可能包含尺寸在80GB到ITB範圍內的HDD。本質上, IT管理員的目標是確定與所有客戶端系統匹配的磁碟布局。傳統的解決方案默認沒有考慮最小的鏡像大小要求的百分比。
因此,實施例允許本地高速緩衝存儲器508提供有基本鏡像(和開銷),以及分配給用戶數據的本地存儲的可選空間。當在本地高速緩衝存儲器中包括可選的用戶空間時, 這樣的用戶空間可以例如呈現為一旦被正確地格式化用戶可以訪問的分立硬碟驅動,或者,呈現為用戶可見的分立分區。為了安全的原因,本地高速緩衝存儲器508需要僅包括用於基本鏡像和開銷的空間;因此,最小的本地高速緩衝存儲器分區大小不必包括可選的用戶空間。在本地高速緩衝存儲器中沒有包括可選的用戶空間時,基本鏡像和開銷空間在用戶不能訪問的硬碟驅動或分區(即,隱藏的硬碟驅動或隱藏的分區)上。
現在參考圖5B,IT管理員通過在SAN上設置基本鏡像來配置用於本地高速緩衝存儲器的客戶端510。如圖5A所示,IT管理員具有選擇權來確定不由基本鏡像和開銷使用的本地磁碟的百分比,如果存在,分配用於用戶數據。一旦在SAN上設置了基本鏡像,管理員將客戶端配置成從SAN啟動520。客戶端的管理程序檢查SAN以確定基本鏡像的大小530。 如果在540確定了用戶端具有足夠的磁碟空間用於給定的基本鏡像、開銷(和可選的用戶數據),如IT管理員配置的那樣,則然後通過管理程序格式化該磁碟、(例如使用在存儲了管理程序的RAM磁碟的特權域內的Fdisk)創建適合大小的分區550並且從SAN取回基本鏡像560,來提供客戶端的驅動。如果客戶端不具有足夠的空間,則可能按照傳統的無磁碟客戶端操作,從SAN啟動並運行客戶端。
例如可以通過客戶端的管理程序計算本地高速緩衝存儲器(基本鏡像)加上開銷 (如果有,則還加上可選的用戶數據)所需的空間量來提供磁碟。例如通過使用分配給用戶的SAN上的基本鏡像的大小、分配給用戶的OS的存儲器的大小以及啟動文件所需的空間, 加上更新(開銷)來確定該空間量。以下公式示出了如何計算所需的空間的例子 本地高速緩衝存儲器分區大小=(基本鏡像大小)+2 (客戶OS存儲器,即,可用於作業系統的存儲器)+ (本地啟動文件+開銷,即,管理程序等所需的存儲器)+ (如果有,IT 管理員確定的、要用於本地高速緩衝存儲器的剩餘本地磁碟空間的百分比) 以上的2 (客戶OS存儲器)項是表示為頁文件預留的空位,儘管可以選擇其他的值(2. 5倍,等)。本地啟動文件對應於SMC代碼。開銷項對應於為本地啟動文件的更新保留的空間(允許後退到上一次知道的好的配置)。該剩餘本地磁碟空間可以被分配給本地高速緩衝存儲器或可選的分配給用戶數據。該用戶空間分區大小是從分配給用戶的OS的存儲器的大小確定的。以下公式示出了如何計算該所需的空間 用戶空間分區大小=2(客戶OS存儲器)+ (如果有,IT管理員確定的、要用於用戶空間的剩餘本地磁碟空間的百分比) 當已經從SAN下載了基本鏡像時,用戶可以繼續進行第一啟動處理,並且如上將所有用戶特定數據存儲到SAN(除非IT管理員已經決定了允許用於用戶數據的本地磁碟區
9域,在這種情況下,分區(驅動器號)可用於用戶)。將會理解的是,最大安全意識的選擇是將0%分配給可選的用戶數據(迫使用戶特定數據到SAN)。如果有,分配給可選的用戶數據的空間可能具有增加的安全性,例如,對驅動的該區域採用全磁碟加密,等。
從SAN流式傳輸下載基本鏡像 實施例提供了方法來成像本地磁碟同時用戶從SAN運行鏡像。傳統地,鏡像應用涉及在顧客側或在製造處理期間的預加載。在大多數情況下,存在額外的端用戶鏡像定製步驟(第一啟動處理),該步驟可以涉及大量的時間。如果用戶必須等到定製完成後才開始工作則浪費了大量的時間。
使用無磁碟客戶端,在SMC用戶首次登陸時,從SAN啟動用戶的鏡像。如依據這裡的實施例所描述的,在SMC客戶端具有本地高速緩衝存儲器的情況下,可以從SAN或從本地高速緩衝存儲器啟動用戶的基本鏡像。
不過,即使對本地高速緩衝存儲器提供有客戶端,在第一次本地高速緩衝存儲器用戶登陸時,由於需要連接到SAN下載基本鏡像,因此,基本鏡像是本地不可用的。然而,如果其他用戶登陸到相同的客戶端並且該其他用戶的基本鏡像不同(例如,不同的OS),則本地高速緩衝存儲器會同樣地不具有本地可用的其他用戶的基本鏡像。因此,實施例被配置來並行地運行客戶OS (guestOQ和將特定用戶的基本鏡像從SAN下載到本地高速緩衝存儲器作為後臺任務。(存儲器中)提供的管理程序具有其可用的信息,用於提供磁碟(如這裡所描述的)並定位/從SAN流式傳輸下載正確的基本鏡像。
返回圖6,在用戶登陸時,如果已提供了本地磁碟(如這裡所描述的)則進行檢查 610。該檢查確定是否本地磁碟已經格式化以及是否安裝了啟動代碼。如果沒有,則首先需要提供磁碟。接下來,進行檢查620以檢測是否需要下載基本鏡像(即,確定是否基本鏡像已下載在本地高速緩衝存儲器中)。假設基本鏡像還未下載,使用來自用戶覆蓋邏輯單元號(LUN)的信息將具有基本鏡像的邏輯單元號連接到客戶端。然後,開始後臺處理650以將基本鏡像從SAN下載到本地高速緩衝存儲器。可以將該處理設置為低的優先級以允許從 SAN640訪問的客戶OS運行平穩。因此用戶可以持續使用客戶OS同時從SAN流式傳輸下載基本鏡像。基本鏡像下載處理在中斷時(例如,在下載完成之前重新啟動客戶端)會自動恢復。在下載完成後,將基本鏡像進行哈希運算,以通過將文件大小和哈希值與SAN上的基本鏡像進行匹配來驗證660基本鏡像是否已經全部或正確下載。此後,隨後的用戶啟動 670可以從基本鏡像的本地拷貝進行,並且可以進行定期檢查用於已下載的基本鏡像的更新(通過連接到SAN)。
從本機(native)OS 到 SMC OS 的遷移(migration) 在可選桌面用戶情境下,用戶通常期望保持他或她當前(本機)0S並簡單地遷移至遠程設備(SAN)以供使用。不幸的是,一些OS不容易以此方式遷移。特別是對於具有趨向於在遷移時不充分更新的獨立分區的多分區OS的情況。例如,當用戶想要遷移現有多分區Windows OS鏡像(例如Vista 或Windows 70S)時,這些用戶在分區的已分配的驅動器號在遷移後不匹配時可能具有啟動問題。今天,典型的用於對計算機構建 Windows Vista 或\^11(10\¥3 70S預加載的處理包括製作多個分區(包括系統和OS 分區),然後安裝啟動加載器和0S。最後,如新系統的應用那樣配置設備驅動器。
在具有虛擬化的HDD的無磁碟客戶端中,留給IT管理員少數選擇。IT管理員可
10以將OS直接安裝到無磁碟系統的遠程存儲中,並配置OS ;然而,如果IT管理員希望從具有 HDD的系統遷移現有的預加載,或如果OS已由端用戶暫時使用,則IT管理員可能在將鏡像遷移到遠程存儲(SAN)時遇上啟動問題。這是由於註冊和啟動配置數據(BCD)入口沒有指向正確的分區導致的,即使使用現有鏡像配置工具(例如(^host和Microsoft IMAGEX)對每個分區如實地拷貝了它們。
因此,如圖7所示,實施例提供了一種遷移工具,該遷移工具自動將用戶的現有多分區OS遷移(拷貝)到SAN資料庫,針對一致性問題檢查遷移後的0S,並自動修補任何檢測到的問題。實施例將已預下載的客戶端HDD的每個分區拷貝到用於遷移的SAN上的虛擬磁碟710,包括任何分區和文件系統信息。接下來,對每個安裝設備識別系統BCD和註冊入口 720以確定啟動配置文件的完整性。例如,通過檢查HKLM\SYSTEM\MountedDevices入口的對應的驅動器號來對所有不同分區確定卷信息(名稱和值)。分析結果被用於更新/調整730BCD和註冊入口,以指向正確的安裝設備。例如,獲得的卷信息被用於調整目標分區的 HKLM\SYSTEM\MountedDevices 入口。同樣,調整 BCD 中的"device,,和"osdevice,,入口以匹配對應的目標分區。一旦完成,就可以對虛擬化的(SAN) HDD無縫地重新啟動740客戶端系統並且為端用戶準備好客戶端系統。
通過提供這樣的遷移操作,實施例允許靈活地準許用戶訪問他們現有個人化的操作環境而無需犧牲安全或中心管理性。
確定啟動位置 在使用無磁碟客戶端的iSCSI環境中,用戶的OS通常存儲在伺服器(SAN)上而不是本地磁碟上,儘管這個遠程伺服器位置如同本地磁碟一樣呈現給客戶端。在這樣的iSCSI 環境中,大多數的客戶端會包含具有iSCSI選項ROM的NIC卡。在啟動時,這個選項ROM包含將客戶端連接到iSCSI伺服器並將iSCSI目標位置呈現為客戶端系統的本地驅動的代碼。然後客戶端BIOS啟動該iSCSI驅動(具有啟動鏡像),如同該iSCSI驅動是本地驅動一樣。
依據實施例,客戶端可以提供有專門的R0M,該ROM具有在啟動處理中用於輔助的啟動鏡像。本地存儲的該啟動鏡像會減少啟動時間(在數十秒的級別),因為避免了從SAN 下載啟動鏡像。這也減少了網絡通信量。
然而,在該情境下,對於客戶端而言確定是否從SAN(遠程)或本地獲得了啟動代碼還是重要的,因為如果已經本地啟動客戶端則客戶端將必須進行某些額外的處理。這是部分由於如果從SAN啟動客戶端,則客戶端將被提供有與SAN正確通信所必要的位置信息, 而這在本地啟動客戶端(即,不與SAN接觸)時不會發生。例如,如果已經本地啟動客戶端, 則客戶端還將必須訪問SAN(至少周期性地)來確定是否更新的啟動鏡像文件和/或元數據可用(如這裡進一步描述的)。
此外,如果用戶的客戶端系統不具有包含iSCSI選項ROM的OTC,則不存在直接從 SAN啟動iSCSI的方法。在啟動代碼是必要的時,由於BIOS可用的有限資源導致標準的複製實踐通常太昂貴。
提供一種方法來將SAN上的啟動代碼(鏡像)和本地存儲的啟動代碼(鏡像)同步。由此提供一種本地複製啟動代碼的方法。該解決方案解決了關於跨網絡的iSCSI啟動的多種問題。具有本地啟動鏡像的實施例允許在系統上啟動而無需本機iSCSI支持(即,無需本地選項ROM),避免了周期更長的啟動時間、以及iSCSI啟動伺服器不可用時的故障切換機制(fail over mechanism)。
轉到圖8,在啟動時,提供一種允許確定客戶端是本地加載啟動代碼還是遠程(經由iSCSI從SAN)加載啟動代碼的方法。這在某種程度上難以完成,因為,在啟動處理中的這個時候,iSCSI磁碟典型地通過標準BIOS引導程序(bootstrap)機制(例如,如同INT 1 設備)像呈現本次磁碟一樣將自身呈現給客戶端。
為了克服該困難,該方法進行檢查以確定是否已從SAN啟動了客戶端810。例如, 執行代碼來確定在ACPI (Advanced Configuration and PoweHnterface,高級配置和電源接口 )表中是否存在iBFT(iSCSI Boot FirmwareTable, iSCSI啟動固件表)數據。這提供了與客戶端是否接觸DHCP伺服器並獲得SAN信息有關的信息。然而,該自身的初始檢查可能不夠充分,因為,NIC可能初始化iSCSI,即使客戶端未從它啟動。因此,可以進行額外的檢查來確定是否從SAN啟動客戶端820。例如,可以進行從iBFT數據的啟動路徑的檢查來確定iSCSI SAN是否可用。然後,進行經由該iSCSI資料庫將本地設備與啟動路徑匹配來確定哪個驅動(HDD) (/dev/sda,或/dev/sdb)已用於啟動。然後,這提供了關於客戶端從哪個設備啟動的足夠的信息(即,客戶端是已本地啟動還是從網絡連接設備啟動)。
如果從SAN加載啟動鏡像,則該啟動繼續至用戶的作業系統860。如果從本地磁碟加載啟動鏡像830,則存在至SAN的連接來獲得更新的元數據(站點配置數據)以確定是否本地啟動代碼是最新的。例如,檢查是否本地磁碟上的啟動代碼的哈希值與SAN上存儲的哈希值匹配840。如果這些哈希值不匹配,則從SAN下載適合(更新後)的啟動文件到本地磁碟850,並且典型地,會重新啟動客戶端以確保用戶始終使用最近的啟動環境。
本領域技術人員將理解到,可以通過具有適當地配置的電路(例如桌上或者膝上計算機系統等)的電子設備來實現這些實施例。以下描述了計算機系統的非限制性例子。
這裡使用的術語「電路」包括所有等級的可用的集成電路,例如,從分立邏輯電路到高級的集成電路(例如VLSI),並包括可編程邏輯組件以及通用或專用處理器,該可編程邏輯組件被編程來執行實施例的功能,該通用或專用處理器被以指令編程來執行這些功能。
圖9示出了計算機系統和電路的一個例子的框圖,儘管可以使用各種其他電路。 該系統可以是桌上計算機系統,例如,由NC的Morrisville的Lenovo(US) Inc.出售的個人計算機ThinkCentre 或ThinkPad 系列中的一個;或者,工作站計算機,例如由NC的 Morrisville的Lenovo(US) Inc.出售的ThinkStation ;然而,如從這裡的描述顯而易見, 客戶端設備、伺服器或其他機器可以包括其他特徵或圖9所示的系統的僅僅一些特徵。
圖9的計算機系統包括所謂的晶片組110(—起工作的集成電路或晶片的組,多個晶片組),該晶片組110具有可以基於製造商(例如,INTEL ,AMD 等)變化的架構。 晶片組Iio的架構包括核和存儲器控制組120以及1/0控制器集線器150,該核和存儲器控制組120以及該1/0控制器集線器150經由直接管理接口(DMI) 142或鏈路控制器144交換信息(例如,數據,信號,指令等等)。在圖9中,DMI 142是晶片到晶片的接口(通常被稱為 「北橋」和「南橋」之間的鏈路)。該核和存儲器控制組120包括一個或更多處理器122(例如,單或多核)以及存儲器控制器集線器126,處理器122與存儲器控制器集線器1 經由前端總線(FSB) IM交換信息;注意到,組120的組件可以集成在取代了傳統「北橋」型架構的晶片中。
在圖9中,存儲器控制器集線器1 與存儲器140接口(例如,用於對可以被稱作 「系統存儲器」的RAM類型提供支持)。該存儲器控制器集線器1 進一步包括用於顯示設備192(例如,CRT,平板,投影儀等)的LVDS接口 132。方框138包括可以經由LVDS接口 132(例如,串行數字視頻,HDMI/DVI,顯示埠)支持的一些技術。存儲器控制器集線器126 還包括可以支持離散圖形136的PCI高速接口(PCI-E) 134。
在圖9中,I/O集線器控制器150包括SATA接口 151(例如,用於HDD、SDD等), PCI-E接口 152(例如,用於無線連接182),USB接口 153 (例如,用於諸如鍵盤、滑鼠、照相機、電話、存儲等輸入設備184),網絡接口 154(例如,LAN),GPIO接口 155,LPC接口 170(用於ASIC 17UTPM 172、超級I/O 173、固件集線器174、BI0S支持175,以及諸如ROM 177、快閃記憶體178和NVRAM 179的各種類型的存儲器176),電源管理接口 161,時鐘發生器接口 162,音頻接口 163(例如,用於揚聲器194),TCO接口 164,系統管理總線接口 165和SPI快閃記憶體166, 該SPI快閃記憶體166包括BIOS 168和啟動代碼190。I/O集線器控制器150可以包括千兆比特乙太網支持。
系統在上電時可以配置用於對BIOS 168執行啟動代碼190(因為啟動代碼190、 BIOS 168存儲在SPI快閃記憶體中),並且然後在(例如存儲在系統存儲器140中的)一個或更多作業系統和應用軟體的控制下處理數據。可以將作業系統存儲在多種位置中的任何位置, 並且例如依據BIOS 168的指令訪問作業系統。如這裡所描述的,設備可以包括相比圖9的系統中示出的更少或更多的特徵。
此外,實施例可以採用電腦程式產品的形式,該電腦程式產品包含在包含有計算機可讀程序代碼的一個或更多計算機可讀介質中。
可以使用一個或更多計算機可讀介質的任何組合。計算機可讀介質可以是計算機可讀信號介質或計算機可讀存儲介質。計算機可讀存儲介質可以是例如但不限於,電子、 磁、光、電磁、紅外或半導體系統,裝置或者設備,或者前述的任何適當的組合。計算機可讀存儲介質的更具體的例子(非排他性列表)將包括以下具有一條或更多線的電子連接、可攜式計算機磁碟、硬碟、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或快閃記憶體存儲器)、光纖、可攜式光碟只讀存儲器(CD-ROM)、光學存儲設備、磁存儲設備、或前述的任何適當的組合。在本文檔的情境下,計算機可讀存儲介質可以是任何有形介質,可以包括或存儲由指令執行系統、裝置或設備使用的或者與指令執行系統、裝置或設備關聯使用的程序。
計算機可讀信號介質可以包括其中包含了計算機可讀程序代碼的傳播數據信號, 該數據信號例如以基帶傳播或作為載波的一部分傳播。這樣的傳播信號可以採用多種形式中的任何形式,包括但不限於,電磁、光學或其任何適當的組合。計算機可讀信號介質可以是不是計算機可讀存儲介質但能傳送、傳播或傳輸由指令執行系統、裝置或設備使用的或者與指令執行系統、裝置或設備關聯使用的程序的任何計算機可讀介質。
計算機可讀介質上包含的程序代碼可以使用任何適合的介質發送,該介質包括但不限於無線、有線線路、光纖光纜、RF等或前述的任何適當的組合。
可以以一種或更多程式語言的任何組合寫用於執行操作的電腦程式代碼,程式語言包括面向對象的程式語言,例如Java 、Smalltalk, C++等;以及,傳統的程序編程語
13言,例如「C」程式語言或類似程式語言。程序代碼可以全部在用戶的計算機(設備)上執行,部分在用戶的計算機上執行,作為獨立的軟體包部分在用戶的計算機上執行且部分在遠程計算機上執行,或者全部在遠程計算機或伺服器上執行。在後者的模式中,遠程計算機可以通過任何類型的網絡(包括區域網(LAN)或廣域網(WAN))連接到用戶的計算機,或者可以(例如,利用網際網路服務提供商通過網際網路)連接至外部計算機。
在這裡參考了方法、裝置(系統)和電腦程式產品的流程圖和/或框圖說明了實施例。將理解到,該流程圖和/或框圖的每個方框以及該流程圖和/或框圖中的方框的組合可以通過電腦程式指令實現。這些電腦程式指令可以被提供給通用計算機、專用計算機或其他可編程數據處理裝置的處理器來產生機器,從而這些指令在通過計算機或其他可編程數據處理裝置的處理器執行時產生用於實現在流程圖和/或框圖方塊中指定的功能/動作的手段。
這些電腦程式指令也可以存儲在能指引計算機、其他可編程數據處理裝置或其他設備以特定方式運行的計算機可讀介質中,從而存儲在計算機存儲介質中的指令產生製品(article of manufacture),該製品包括實現在流程圖和/或框圖方框中指定的功能的指令。
還可以將電腦程式指令加載到計算機、其他可編程數據處理裝置或其他設備來使一系列操作步驟在計算機、其他可編程裝置或設備上執行,以產生計算機執行的處理,從而這些指令在計算機或其它可編程裝置上執行時提供用於實現在流程圖和/或框圖方框中指定的功能的處理。
為了描述和說明的目的但並不是排他或限制性地呈現了本披露。許多修改和變形對於本領域技術人員是明顯的。選擇並描述這些實施例是為了說明原理和實際應用,並且使本領域技術人員能夠理解本披露用於具有適於預期的特定用途的各種修改的各種實施例。
儘管在這裡已參考附圖描述了示意性的實施例,但可以理解的是,實施例並不限於這些明確的描述,在不偏離本披露的範圍或精神的情況下本領域技術人員可以實現各種其他改變和修改。
權利要求
1.一種裝置,包括一個或多個處理器;網絡接口,用於通過網絡訪問在遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像;以及硬碟;其中,響應於所述一個或多個處理可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器用於確定所述硬碟是否已被提供用作客戶端本地高速緩衝存儲器;以及在確定所述硬碟已被提供用作客戶端本地高速緩衝存儲器後,從所述遠程存儲設備下載所述基本鏡像。
2.根據權利要求1所述的裝置,其中,響應於所述一個或多個處理器可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器進一步確定所述基本鏡像是否已下載到所述硬碟。
3.根據權利要求2所述的裝置,其中,響應於所述一個或多個處理器可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器進一步響應於所述基本鏡像還未被下載到所述硬碟的確定,訪問所述遠程存儲設備的客戶作業系統。
4.根據權利要求3所述的裝置,其中,從遠程存儲設備下載基本鏡像進一步包括流式傳輸下載基本鏡像作為後臺任務,同時運行所述遠程存儲設備的客戶作業系統。
5.根據權利要求4所述的裝置,其中,所述客戶作業系統包括所述遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像。
6.根據權利要求1所述的裝置,其中,響應於所述一個或多個處理器可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器進一步用於響應於中斷事件,暫停從所述遠程存儲設備下載所述基本鏡像;以及響應於所述中斷事件的結束,恢復從所述遠程存儲設備下載所述基本鏡像。
7.根據權利要求1所述的裝置,其中,響應於所述一個或多個處理器可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器進一步用於響應於所述硬碟未被提供用作客戶端本地高速緩衝存儲器的確定,將所述硬碟提供用作客戶端本地高速緩衝存儲器,並且然後從所述遠程存儲設備流式傳輸下載所述基本鏡像。
8.根據權利要求1所述的裝置,其中,響應於所述一個或多個處理器可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器進一步用於在將所述基本鏡像下載到所述硬碟後,利用所述基本鏡像的客戶端本地高速緩衝存儲器拷貝。
9.根據權利要求8所述的裝置,其中,響應於所述一個或多個處理器可訪問的計算機可讀程序代碼的執行,所述一個或多個處理器進一步用於確定對所述遠程存儲設備上存儲的基本鏡像的一個或多個更新是否可用,並將所述一個或多個更新應用於所述基本鏡像的客戶端本地高速緩衝存儲器拷貝。
10.一種方法,包括在用於訪問遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像的裝置中,確定所述裝置的硬碟是否已被提供用作客戶端本地高速緩衝存儲器;以及在確定所述硬碟已被提供用作客戶端本地高速緩衝存儲器後,從所述遠程存儲設備下載基本鏡像。
11.根據權利要求10所述的方法,進一步包括確定所述基本鏡像是否已被下載到所述硬碟。
12.根據權利要求11所述的方法,進一步包括響應於所述基本鏡像還未被下載到所述硬碟的確定,訪問所述遠程存儲設備的客戶作業系統。
13.根據權利要求12所述的方法,其中,從所述遠程存儲設備下載基本鏡像進一步包括流式傳輸下載基本鏡像作為後臺任務,同時運行所述遠程存儲設備的客戶作業系統。
14.根據權利要求13所述的方法,其中,所述客戶作業系統包括所述遠程存儲設備上存儲的基本鏡像和用戶覆蓋鏡像中的一個或多個鏡像。
15.根據權利要求10所述的方法,進一步包括響應於中斷事件,暫停從所述遠程存儲設備下載所述基本鏡像;以及響應於所述中斷事件的結束,恢復從所述遠程存儲設備下載所述基本鏡像。
16.根據權利要求10所述的方法,進一步包括響應於所述硬碟未被提供用作客戶端本地高速緩衝存儲器的確定,將所述硬碟提供用作客戶端本地高速緩衝存儲器,並且此後從所述遠程存儲設備流式傳輸下載所述基本鏡像。
17.根據權利要求10所述的方法,進一步包括在將所述基本鏡像下載到所述硬碟後, 利用所述基本鏡像的客戶端本地高速緩衝存儲器拷貝。
18.根據權利要求17所述的方法,進一步包括確定對所述遠程存儲設備上存儲的基本鏡像的一個或多個更新是否可用;以及響應於確定了對所述基本鏡像的一個或多個更新可用,將所述一個或多個更新應用於所述基本鏡像的客戶端本地高速緩衝存儲器拷貝。
全文摘要
本發明涉及流式傳輸客戶端系統基本鏡像。實施例提供了配置來提供可選桌面計算解決方案的系統、方法、裝置和電腦程式產品。實施例總體上對使用本地基本鏡像和遠程存儲的基本鏡像中的一個的客戶端設備提供了遠程存儲用戶指定數據的用戶指定覆蓋鏡像。該客戶端用於下載並本地存儲該基本鏡像。
文檔編號G06F9/445GK102207876SQ20111007909
公開日2011年10月5日 申請日期2011年3月28日 優先權日2010年3月30日
發明者陳亮, 喬納森·G.·諾克斯, 周益, 羅德·D.·沃特曼, 納林·J.·彼特森 申請人:聯想(新加坡)私人有限公司