摘要:介紹的NHD(Network Hard Disk)系統,在計算資源和存儲資源物理分離的基礎上,根據不同應用的需求,通過在客戶端提供的一種特殊硬件設備將兩者動態重組以構建新的計算機系統#65377;這樣形成的計算環境具有動態性#65380;個性化和便于管理等特點#65377;
關鍵詞:網絡硬盤; 存儲和計算分離; 動態計算環境
中圖分類號:TP303文獻標志碼:A
文章編號:10013695(2007)04009103
隨著信息技術的進一步發展,計算機越來越多地應用于企業辦公和多媒體教學等領域#65377;目前這些應用大多仍采用以傳統內置磁盤計算機為主體的分散計算模式#65377;這種模式雖然在一定程度上滿足了人們對系統擴展性和開放性的要求,但在動態性#65380;易用性和管理性等方面存在明顯的缺陷#65377;
為了解決上述問題,國家高性能計算機工程技術中心自主研發的NHD(Network Hard Disk)系統,在存儲和計算分離的基礎上,通過專用硬件設備將存儲子系統與計算子系統之間的物理總線連接轉換為網絡交互連接,并根據不同應用的需求動態構建新的計算機系統#65377;由此所形成的計算環境具有動態性#65380;個性化和易于管理等優點#65377;這里的動態性是指通過計算資源和存儲資源的動態重組,構成新的計算機系統來滿足不同應用所需要的計算環境#65377;個性化是指允許用戶在公共計算環境中擁有屬于自己定制的計算環境,并且通過用戶與計算機分開管理的方式便于用戶使用#65377;此外,NHD系統在集中存儲的基礎上,提供基于Web管理界面方便用戶或管理員對資源進行集中配置和管理#65377;
本文闡述了NHD系統所基于的理論模型,即存儲和計算分離模型,具體描述了系統各個組成部分及其功能,包括嵌入式NHD卡#65380;存儲服務系統和管理服務系統等,通過實際運行情況,驗證其動態性#65380;個性化和易于管理等特點#65377;
1NHD系統的理論模型
通常計算機系統由計算資源和存儲資源兩部分組成,其中CPU#65380;內存和南北橋等合稱為計算資源;外部存儲器如磁盤#65380;光盤和磁帶等稱為存儲資源#65377;位于存儲資源上的數據又可進一步分為系統數據和用戶數據#65377;計算資源運行系統數據生成計算環境,計算環境再對用戶數據進行處理#65377;
傳統內置磁盤計算機系統是將計算資源#65380;系統數據和用戶數據三者靜態綁定在一起,系統數據和用戶數據均存儲在計算資源的本地磁盤中#65377;由于計算資源只能運行由本地系統數據構成的計算環境,只能以某種固定的方式加工數據#65377;隨著用戶數據總量的不斷增長#65380;數據類型的日趨復雜,以及對數據共享要求的不斷提高,人們逐漸意識到數據集中管理的必要性#65377;在存儲系統廠商的不斷努力下,用戶數據逐漸從傳統計算機系統中分離出來以便于集中管理#65380;統一備份和容災,形成了現在所謂的集中存儲#65380;分布式計算的計算機應用模式#65377;這種模式不管在數據安全性還是可用性上都向前邁進了一大步#65377;但構成計算環境的計算資源和系統數據仍然是綁定在一起的,由兩者所構成的計算環境也是相對固定的#65377;這種應用模式仍然沒有擺脫傳統架構,固定的計算環境仍然緊緊地束縛著計算機系統性能和靈活性的發揮#65377;如果能夠把系統數據從傳統的計算機系統中分離出去,實現系統數據與計算資源的分離,把兩者用高速網絡連接,再從邏輯上動態組合,就徹底實現了存儲與計算的分離#65377;
如圖1所示,計算資源與存儲資源通過高速網絡互連,而系統數據#65380;用戶數據與公共數據都存儲在存儲資源中,通過管理臺來管理系統數據與計算資源之間的映射關系#65377;每一個計算資源都可以綁定某一個系統數據,從而構成具有特定功能的計算環境,通過分別綁定m個不同的系統數據,就可以構成m個不同的計算環境#65377;這種計算資源與系統數據之間的自由組合方式為構建動態和個性化的計算環境創造了條件#65377;
2NHD系統的體系結構
2.1NHD系統整體框架
基于上述理論模型,NHD系統由以下五部分組成(圖2):①客戶機(Client Computer),本地沒有任何存儲資源,既可以是供用戶使用的個人計算機,也可以是提供某種服務的服務器;②內置客戶機的嵌入式NHD卡連接客戶機和網絡存儲設備,為每一個客戶機提供虛擬磁盤空間;③存儲服務器在集中的物理存儲資源虛擬多個磁盤供用戶使用;④管理服務器管理客戶機與虛擬磁盤之間的映射關系,并提供基于Web管理界面,方便對客戶機#65380;用戶和存儲資源進行管理;⑤高速互聯網絡,將上述四種功能實體緊密地連接在一起從而構成一個完整的應用系統#65377;
概要地說,NHD系統將所有存儲資源集中存儲在存儲服務器端并由管理服務器統一配置,通過專用NHD卡為每一臺客戶機提供虛擬磁盤映像#65377;
2.2嵌入式NHD卡
在介紹NHD卡之前,筆者首先對傳統計算機系統中計算資源與存儲資源之間的數據存儲通路進行分析#65377;
如圖3所示,在這條數據通路中,主機處理器和存儲設備分別處于存儲通路的兩端,相當于通信系統中的信源和信宿,而位于兩者之間的系統軟件層#65380;適配器層和存儲設備控制器層相當于通信系統中的信道#65377;
通過對該信道中某一層次的層間接口進行功能模擬,就可以獲取對數據的控制權#65377;功能模擬越靠近處理器端,對數據的控制能力越強,功能實現越靈活,但對系統軟件依賴性也就越強;相反,越靠近存儲設備端,通用性和兼容性越好,對系統軟件依賴性也就越弱#65377;如果在系統軟件或適配器層進行功能模擬,需要系統軟件提供支持,而目前除了Linux,大多數主流操作系統的源碼是不公開的#65377;出于對通用性和兼容性的考慮,NHD系統選擇在存儲設備控制器層進行功能模擬#65377;
基于上述分析,NHD卡從功能的角度可以分為三個部分,即前端功能模擬接口#65380;后端功能模擬接口和動態連接支持模塊,如圖4所示#65377;
前端功能模擬接口對數據存儲通路上存儲設備控制器的時序邏輯進行模擬,從而為適配器層提供標準的存儲設備數據訪問接口#65377;通過對目前各種主流存儲設備控制器的接口進行比較,NHD系統選擇IDE磁盤控制器接口,其主要優點在于硬件和軟件兩方面都可以獲得廣泛支持,而且它還是絕大多數計算機主板支持的啟動設備類型#65377;
后端功能模擬接口通過網絡來訪問實際的物理存儲設備#65377;顯然這需要某種數據傳輸協議來實現兩者之間的數據通信#65377;在NHD系統中采用基于TCP/IP協議的NBD協議來訪問位于存儲服務端的存儲資源#65377;NBD協議是一種簡單的塊傳輸協議,相對于其他數據傳輸協議(如iSCSI),它所帶來的協議開銷更小,且由于實現簡單而具有更好的可移植性#65377;
動態連接支持模塊一方面連接前/后端功能模擬接口以構成完整的數據存儲通路;另一方面它從管理服務器獲取相關的配置信息以實現對存儲資源的動態連接#65377;不同的應用可以定義不同的配置信息,并根據配置信息來重構所需要的計算環境#65377;目前NHD系統已經實現了基于時間和用戶這兩種重構模式#65377;基于時間重構模式是指根據實際應用的需求,在不同時間段動態提供所需要的計算環境,如電子教室的管理員可以按照不同課程的要求在第一節課提供基于Windows平臺的計算環境,而在第二節課提供基于Linux平臺的計算環境#65377;基于用戶重構模式是根據用戶所提供的信息(賬號#65380;密碼等)構建用戶計算環境#65377;此重構模式特別適合需要個性化計算環境的場合#65377;
下面基于用戶重構模式來描述用戶計算環境的建立過程:
(1)系統加電,NHD卡與位于存儲服務器的公共虛擬啟動盤(客戶端系統登錄程序)建立NBD連接#65377;
(2)客戶機運行客戶端系統登錄程序,等待用戶輸入登錄信息并通過NHD卡將用戶輸入的信息發送至管理服務器,由后者進行驗證#65377;
(3)若合法,管理服務器將返回與用戶相關的配置信息;NHD卡根據配置信息與存儲設備上該用戶所對應的虛擬磁盤建立新的NBD連接#65377;
(4)啟動虛擬磁盤映像上的系統數據(操作系統)#65377;
2.3存儲服務器
NHD系統中的存儲管理采用虛擬共享卷管理技術[2],其在卷管理方面的功能與LVM類似#65377;將給定物理存儲資源劃分為多個虛擬存儲設備(即虛擬磁盤),然后通過NBD服務提供給客戶機使用#65377;下面簡要介紹一下存儲服務器的工作原理#65377;
當從管理服務器接收到配置命令后,存儲服務器根據配置要求創建相應的虛擬磁盤#65377;為了有效利用物理存儲資源,NHD系統預先為每種主流操作系統創建相應的虛擬磁盤,這里稱之為服務模板#65377;當用戶需要基于某種OS的系統數據時,存儲服務器則在相應的服務模板之上創建快照,從而快速克隆出這個OS映像#65377;如圖5所示,剛開始,快照1和快照2的虛擬設備塊a和b分別指向服務模板的虛擬設備塊a和b對應的物理設備塊D和F#65377;當對快照1的虛擬設備塊a進行讀操作時,實際上讀取的是服務模板虛擬設備塊a所對應的物理設備塊D;當對快照2的虛擬設備塊a進行寫操作時,存儲服務器為該虛擬塊分配新的物理塊E并將數據寫入該物理塊#65377;在一次快照的基礎上,NHD系統還支持將已有的快照作為新的服務模板,并在其上創建新的快照,這就是所謂的復合快照技術#65377;此外,為了支持多個不同虛擬設備之間在讀操作時共享高速緩存,NHD系統同時采用了共享緩存技術#65377;
采用復合快照和共享緩存技術可以有效改善共享物理存儲的多個邏輯卷的并發讀操作性能[2]#65377;在實際應用中,大部分用戶的系統數據是類似的且系統在啟動過程中大約70%是讀操作#65377;因此,理論上NHD系統部署多臺客戶機的時間接近于一臺客戶機部署的時間#65377;
2.4管理服務器
管理服務器根據不同應用的具體需求,通過相應的配置信息(時間或用戶信息)來管理NHD卡與虛擬存儲設備之間的映射關系#65377;此外它還提供基于Web方式的管理界面,其主要功能包括:用戶管理#65380;客戶機管理#65380;存儲管理#65380;計算環境預約#65380;系統配置和維護等#65377;
(1)用戶管理可以動態添加和刪除用戶信息,為新加用戶分配存儲資源,并映射到相應的服務模板#65377;
(2)客戶機管理跟蹤每臺客戶機的內置NHD卡狀態,它可以動態啟停任意指定客戶機的NHD卡服務功能,并提供日志記錄以便管理員查詢#65377;相對于傳統的用戶與客戶機綁定的方式,用戶和客戶機分開管理不僅提高資源的利用率,而且方便用戶對計算機環境的使用#65377;
(3)存儲管理可以動態地創建或刪除位于存儲服務器上的服務模板和虛擬磁盤,同時對多個存儲服務器進行管理,監控每個存儲服務器的網絡流量#65380;內存使用率和CPU負載等#65377;
(4)預約功能實際上是基于時間來重構計算環境,通過動態改變客戶機與系統數據之間的綁定關系#65377;NHD系統可以在規定的時間段提供所需要的計算環境#65377;
NHD系統通過對存儲資源的集中管理和計算環境的動態重構來簡化對每一臺客戶機的維護并使得數據備份和恢復易于實現,大大降低了管理計算機系統的復雜性#65377;
3NHD系統的實際應用及特點
以NHD系統在某財經大學的教師辦公環境和多媒體教學實際運行情況為例,說明該系統的特點#65377;教師辦公機房和多媒體教室都是采用傳統的內置磁盤臺式機,并通過局域網互連起來#65377;這種使用方式在早期基本能滿足教師辦公和授課的需要#65377;但隨著計算機數量的增加,在靈活性#65380;可用性和管理性等方面出現一些問題#65377;
采用NHD系統有效地解決了上述問題#65377;管理員根據每個教師需要分配一個或多個虛擬硬盤并映射到相應的服務模板#65377;教師與客戶機是分開管理的教師在NHD系統內任一臺客戶機上訪問自己的系統數據和用戶數據,如先在辦公機房某臺客戶機上備課,然后切換到多媒體教室的客戶機上直接使用#65377;此外,管理員通過集中管理界面來管理用戶#65380;客戶機和存儲資源,不需要單獨維護每一臺客戶機#65377;相比原來的管理方式,不僅提高了工作效率,而且也方便了教師對計算機系統的使用#65377;
在實際應用中,筆者分別對單臺客戶機和多臺客戶機啟動時間進行測試,表1給出了測試結果#65377;測試服務模板為Windows 2000 Professional(預裝Microsoft Office#65380;Acrobat#65380;Photoshop和Realplay等常用軟件),客戶機主要配置為Intel Pentium Ⅳ 26GHz CPU和512MB內存,NHD卡主要配置為S3C2500B 166MHz和8MB內存,存儲服務器主要配置為Intel Xeon CPU 28GHz#65380;1GB內存#65380;Areca ARC1130 RAID卡#65380;硬盤WD2500SD 250GB×13和Intel 82845千兆網卡,網絡環境為100Mbps以太網#65377;
表1NHD系統單臺和多臺客戶機啟動測試結果
同時啟動平均啟動時間(s)
1臺客戶機91
43臺客戶機113
可見,NHD系統部署多臺客戶機的時間接近于一臺客戶機部署時間,基本上滿足實際應用中對大規模系統部署用時的要求#65377;
4相關研究
現有相關系統大多采用資源集中管理的方式來降低計算機系統的管理成本#65377;網絡計算機采用集中存儲#65380;集中計算的模式以充分利用服務器的強大處理能力;無盤工作站將程序從遠程服務器下載到本地運行,從而在使用本地計算能力的同時共享服務器上的存儲資源;ClearCube公司的PC Blade系統[4]將PC做成了刀片形狀并集中到數據中心統一管理,其中每個刀片均配有獨立的本地磁盤,其上存儲系統數據和用戶數據,并通過網絡連接到用戶桌面;HP的CCI系統[5]在PC Blade系統基礎上進一步將用戶數據從計算機系統分離出來集中存儲#65377;
從資源分離和綁定的方式上看,在網絡計算機和PC Blade系統中,計算資源與存儲資源仍然是物理緊耦合的;無盤工作站雖然實現了計算資源與存儲資源的物理分離,但兩者在邏輯上仍是靜態綁定的;CCI系統將用戶數據分離出來集中管理,但其計算資源與系統數據還是綁定在一塊的#65377;本質上說,這些系統主要是為了解決目前計算環境所面臨的可管理性問題,因此它們在動態性和可用性等方面仍有諸多不足#65377;而NHD系統徹底實現了計算資源與存儲資源的分離,并能根據不同應用的需求將兩者動態綁定以構成所需的計算環境,具有較強的靈活性#65377;
5結束語
針對傳統計算機系統在上述應用場合所面臨的問題,本文給出了一種新的解決方案——NHD系統;依次介紹了該系統所基于的理論模型#65380;系統各組成部分的功能以及實際運行情況;最后將NHD系統與其他相關系統進行對比分析#65377;其最重要的特點在于能夠提供動態和個性化的計算環境,并且該系統在集中存儲的基礎上,通過基于Web方式的管理界面有效地降低了管理計算機系統的復雜性#65377;NHD系統所提供的虛擬磁盤與本地真正物理磁盤相比,在I/O性能方面還存在一定的差距#65377;此外,該系統通過網絡連接各組成部件,因此對網絡有很大的依賴性#65377;未來研究工作將主要集中在優化嵌入式NHD卡的I/O性能和提高承載網絡的容錯能力,并挖掘新的計算環境重構方式以應對未來應用的新需求#65377;
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。