摘 要:行業信息系統的計算資源由其所有者獨占。這些資源在地理上分布,并用于商業計算。系統的主要目標是在保證服務質量的同時,降低系統的總擁有成本。提出行業信息系統的概念,并為之設計了一套通用的管理框架,從而減少管理員的人工勞動,并促進不同地域的管理員的協作。最后評價了系統管理的性能和該框架的開銷。
關鍵詞:行業信息系統;節點管理;管理框架
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2007)06-0287-02
1 行業信息系統的定義和特點
對于聯邦數字圖書館來說,每個資源提供者都有自己獨特的資源,并希望通過協作和共享來充分利用這些資源。而一些搜索引擎公司則擁有地域分布的機群或者高速局域網。對于這些應用來說,由于在某個集中位置獲取所有信息會帶來極大的帶寬消耗,很自然它們的計算和存儲資源會在地理上分布。這種系統的特點可被概括如下:
(1)它由分布于異地的大量資源組成(包括機群和局域網),比如Google就使用了超過一萬臺機器來提供服務[1]。行業信息系統的所有權是獨占的,它們的共享通常在知識級別。普通用戶可以自由地訪問這些知識資源。在共享和合作這一點上來說,行業信息系統是對標準網格問題的一個擴展。
(2)行業信息系統通常用于維護核心商業應用,而不是在科學計算領域。因此,在保證服務質量的同時,降低總擁有成本(TCO)是用戶的主要需求。
(3)系統管理員們在地域上分布,主要工作是管理和維護各自的站點(包括硬件、操作系統、存儲、網絡設備和商業應用軟件等)。由于這些要管理的資源在地理上分布,他們的管理開銷是很大的。
2 背景介紹:Phoenix機群操作系統
這部分簡單介紹一下筆者過去的工作,Phoenix機群操作系統(Phoenix OS)[2,3]。在PhoenixG中,PhoenixOS是單個機群、局域網內管理軟件(即單管理域)。
Phoenix OS是一個完整的機群操作系統,同時支持科學計算和商業應用。它采用一體化設計,針對機群系統主流應用的需求和現有功能軟件的特點,定義了完備的系統視圖和層次化的機群操作系統結構,在機群操作系統核心和共享組件的基礎上實現了面向科學計算和面向商業應用的子系統。其主要結構如圖1所示。
圖1 Phoenix OS總體結構
3 系統設計
3.1 管理單元
本文將單獨的機群或局域網作為一個基本的管理單元。如果一個管理單元沒有加入行業信息系統,它是一個擁有自己的管理策略的獨立站點。圖2給出了一個管理單元的組件。其底層的管理依賴于Phoenix OS(最底層是Phoenix核心,在其上構建了系統構造工具、系統管理工具、系統偵測工具以及應用運行環境等)。
圖2 管理單元和管理中心的組件
管理單元控制器負責管理單元加入和退出行業信息系統。同時,它的功能還有用戶管理模塊(負責賬戶的創建和管理)、全局概況信息模塊(負責收集該管理單元的信息)以及集成管理模塊(負責完成對機群的管理)。而管理單元門戶是管理單元系統的GUI,系統管理員通過它來管理整個單元的資源。
3.2 管理中心
在初始構造階段,管理單元會互相交互,并逐漸演變為一個行業信息系統。管理單元和管理中心的實際區別是它們所扮演的角色。在系統的自組織過程中,會有一個管理單元被選擇為管理中心,而它的控制器也從管理單元控制器轉換為管理中心控制器。盡管后者和前者的各個模塊都類似,但是由于它們的角色不同,所處理的數據不同:管理單元控制器僅僅關心自己單元的信息,而管理中心控制器則關心所有管理單元的信息。管理單元與管理中心的轉換關系如下:
(1)在系統的初始構造階段,一個管理單元會被選舉為管理中心;
(2)如果已有的管理中心失效了(關機或者網絡失效),另一個管理單元會成為管理中心;
(3)在網絡被分裂的情況下,某些管理單元無法聯絡到管理中心,于是其中會有一個管理單元成為管理中心;
(4)在網絡從分裂中恢復過來之后,除了一個中心以外,其余所有的管理中心會重新成為普通管理單元。
3.3 通用的組件框架
為支持這套新的管理方法,筆者設計了一個統一的組件框架。其結構如圖3所示。
圖3 統一的組件框架
系統的管理開銷中,很大部分是偵測相關的勞動。以之為例:
(1)如果管理單元較大,它就會被劃分為多個分區,而每個分區都有自己的分區服務。每個分區還有一個數據公告服務,用來接收數據提供者的信息,同時把這些信息格式化后存在內存中,以供按照各種屬性進行查詢。如果數據公告服務接收到的信息有時間戳,這表明數據提供者希望在數據過期時被自動刪除。
(2)分區服務直接調用每個節點上的偵測服務,它用來偵測節點上的資源使用狀況已經應用的狀態。在每個分區中,所有的偵測服務都會上傳信息到統一的數據公告服務中。而管理單元控制器不直接與節點服務打交道。
(3)通過調用所有的數據公告的接口,管理單元控制器可以從中獲取所有感興趣的信息。
(4)一旦管理單元的狀態被設置為加入,管理單元將提交它的各種信息加入到管理中心控制器中。同時,管理單元可以接收管理中心對感興趣事件的注冊。這樣一旦這些事件被觸發,管理單元將立即向管理中心報告。
(5)管理中心門戶向管理中心管理員提供各種信息。如果管理員想了解更多的細節,他可以通過點擊鏈接來跳轉到各個管理單元門戶;如果發現一些系統異常(如某些節點上有很多僵尸進程),他可以使用集成管理工具來清除。利用這個新的管理方法,管理員勞動的分布將變得比較容易了。最簡單的一種情況是大部分管理員集中在一個地方,也就是管理中心,而其余的在不同的管理單元分布。
4 系統實現
Phoenix機群操作系統使用C++和C作為開發語言,同時使用ACE/TAO[4],一個CORBA實現,作為其通信層。對于PhoenixG,使用MVC(Model-View-Controller)架構來獲取更好的可重用性。主要的開發語言是可易于移植的Java和JSP。
作為局域網間的通信層,ACE/TAO是一個支持異構的中間件。在必須使用Socket進行通信時,將所有的包轉換為標準網絡傳輸次序,從而避免了大小尾問題。同時面臨廣域網上的異構問題時,使用SOAP,一個基于HTTP的通信協議,作為在不同局域網間通信的協議(Apache Axis作為Web服務引擎[5])。
而安全方面,筆者利用Kerberos來進行用戶認證,利用SSL來保證安全的HTTP傳輸。
5 實驗和評價
5.1 試驗平臺
測試平臺如下:
機群A:八個x86-64節點(AMD Opteron 2GB內存),操作系統都是Turbo Linux8(內核2.4.21)。
機群B:異構集群,包括六個Linux 64節點,兩個Solaris 9節點。
局域網A:由四個WinXP的工作站和三個Linux節點構成的異構節點組成。
局域網B:同局域網A。
交換機1:WS-C3750G-24T-S 100Mbps交換機。
交換機2:Foundry SuperX GB 交換機。
在該實驗中,機群A、B,局域網A、B均作為相互獨立的管理單元,分別在網關處配置控制器進行控制。
5.2 性能評價
在3.3節中,以性能監控為例,筆者描述了統一的組成框架。在這一節中,將以系統管理為例評價統一的組成框架的性能。選擇機群A作為測試對象,所有的測試節點屬于同一個管理單元。而要執行的命令就是“ps-ef”。本文引入了多線程機制,并且在同一個分區節點分成多個組,每個組有一個線程負責控制。性能數據如圖4所示(三次測試的平均值)。
假設一個商業用戶在因特網范圍內擁有幾個地理分布的站點。如果使用通常的管理機制(在每個站點分布管理員),那么隨著站點數量的增加,管理員的數量呈線性增長。而使用新的管理范例,大多數的管理員都可以通過管理中心的Web界面管理和監控系統,而其余的管理員通過管理單元Web界面可以管理各自的管理單元。圖5比較了不同管理機制的代價(假設每一個獨立的站點由大約100個節點組成。OTA:傳統管理機制,每個站點三個管理員;NTA1:新的管理框架,每個管理單元一個管理員,管理中心兩個管理員;NTA2:新的管理框架,每個管理單元一個管理員,管理中心三個管理員)。由圖5可見新管理框架在減少管理員人工勞動上有很大的優勢。
圖4 在同分區不同節點同時執行‘ps-ef’的性能數據
圖5 不同管理機制的代價
6 結束語
本文定義了一種特定的行業信息系統,并為之提出了一個通用的管理框架,從而可以減少管理員的人工勞動,并改善了不同地域的管理員的協作。同時也評價了該框架的性能。下一步將該系統部署在真正的廣域網上,并在實際使用中評測其性能和開銷。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。