趙華茗,李春旺,周 強
(中國科學院國家科學圖書館 北京100190)
信息多源和爆發(fā)促使互聯(lián)網(wǎng)計算資源的組織分配及使用模式走向了虛擬化,促使信息服務走向了規(guī)?;⒓s化和專業(yè)化。云計算因其具有靈活、低成本、綠色節(jié)能、動態(tài)可伸縮的IT基礎架構,成為實現(xiàn)信息服務規(guī)模化、集約化和專業(yè)化的主要技術途徑之一,云計算也因此成為當今企業(yè)界、學術界的研究熱點。
“云計算是一種基于互聯(lián)網(wǎng)的大眾參與的計算模式,其計算資源包括計算能力、存儲能力、交互能力等等,都是動態(tài)的,被虛擬化了的,而且是以服務的方式提供”,將有益于信息服務規(guī)?;⒓s化和專業(yè)化的云計算平臺應用到作為信息資源重要載體的數(shù)字圖書館,無疑會為數(shù)字圖書館信息服務帶來革命性的轉(zhuǎn)變,有力提升信息互動和知識融合及創(chuàng)新能力。2009年,我們以“數(shù)字圖書館云計算應用研究”為題,致力于云計算在數(shù)字圖書館信息服務建設中的應用研究,搭建支持個性化、學科化服務的高效、節(jié)能減排、綠色的云計算服務平臺,提供簡單、靈活、多樣的信息服務布署與遷移能力。本文將從系統(tǒng)設計、關鍵技術、系統(tǒng)實現(xiàn)等方面介紹中國科學院國家科學圖書館(以下簡稱國科圖)云計算服務平臺的構建過程。
隨著國科圖知識化、學科化服務的深入推進,對網(wǎng)絡技術和信息環(huán)境的依賴越來越大,依托網(wǎng)絡技術為課題組提供綜合信息服務的需求也越來越多,伴隨綜合信息服務所出現(xiàn)的相對應的軟、硬件支撐需求也越來越龐大。在這種情況下,提供有針對性、虛擬、可快速部署的服務應用平臺將是很好的選擇和解決方案。國科圖的解決方案就是搭建數(shù)字圖書館云服務平臺,旨在解決以下兩個問題。
·有效防止服務器蔓延。通過虛擬技術將類似的應用服務器整合到相對集中的資源池中,提高應用穩(wěn)定性的同時提高計算資源的利用效率。網(wǎng)絡管理人員可以通過可視化監(jiān)控界面動態(tài)配置、調(diào)整調(diào)度服務器及存儲設備,有效整合現(xiàn)有計算資源,逐步形成減排、綠色節(jié)能的網(wǎng)絡資源中心。
·加速個性化信息服務布署能力。通過通用服務應用映像模板,用戶可以簡單、靈活地創(chuàng)建具有基礎應用軟件的虛擬服務器,減少傳統(tǒng)的操作系統(tǒng)及相關應用軟件的安裝配置時間,使信息服務人員更專注于個性化的業(yè)務創(chuàng)新建設和服務發(fā)布,形成快速、簡單靈活、多樣的信息發(fā)布與服務能力。
依據(jù)上述目標,國科圖云服務平臺由資源管理子系統(tǒng)和服務門戶子系統(tǒng)兩部分組成。資源管理子系統(tǒng)部署在所有云計算服務平臺環(huán)境中的物理設備上,是管理和控制網(wǎng)絡計算資源的系統(tǒng),對信息服務人員(終端用戶)不可見,網(wǎng)絡管理人員通過它動態(tài)整合計算資源,包括服務器和存儲設備,具有集中式多節(jié)點管理、多服務器資源共享以及實時遷移等多種強大的功能。服務門戶子系統(tǒng)部署在與資源管理子系統(tǒng)同一網(wǎng)段上的物理服務器或虛擬服務器上,是為信息服務人員提供的簡單、個性化、虛擬化的信息服務器管理門戶,其功能包括虛擬服務器的創(chuàng)建、運行、卸載等整個生命周期過程的各個環(huán)節(jié)。整體架構如圖1所示。
以虛擬技術(XENServer)作為整個云計算服務平臺的基礎構架和支撐,通過XENServer軟件實現(xiàn)對物理設備資源的規(guī)?;刂坪驼希煌ㄟ^XENCenter軟件實現(xiàn)監(jiān)控、動態(tài)調(diào)配物理設備資源、存儲設備資源和虛擬設備資源,形成對計算資源的規(guī)模化和集約化管理,同時實現(xiàn)虛機實時遷移等高可用性應用;通過Eclipse集成開發(fā)環(huán)境開發(fā)簡單的面向信息服務人員的虛擬服務器管理門戶平臺,結合XENServer API和Tomcat信息服務器為信息服務人員提供專業(yè)化的虛擬服務器使用界面,形成簡單、靈活、多樣的信息服務布署與遷移能力;通過postgresDB[1]數(shù)據(jù)庫保存并同步云計算服務平臺環(huán)境中資源層和應用門戶層之間的虛擬設備使用狀態(tài)參數(shù)。云計算服務平臺的技術構架如圖2所示。
虛擬技術是整個云計算服務平臺基礎構架技術。目前,典型的虛擬機技術實現(xiàn)有 Critrix XENServer[2,3]、VMware ESXServer[4]、Microsoft Hyper-V[2]等。相較其他兩種,Citrix XENServer具有更好的安全性、兼容性和開源性。
Citrix XENServer是在XEN開源系統(tǒng)管理程序基礎上開發(fā)的,支持裸金屬硬件虛擬化架構,使用半虛擬化和硬件加速組合技術,保證虛擬機的高性能和更簡單的瘦虛擬機管理。使用特權域管理設備驅(qū)動,具有較好的兼容性、安全性和穩(wěn)定性,特權域是XENServer系統(tǒng)的一部分,無需單獨安裝,運行在虛擬機管理程序之上,是固化好的Linux實例。XENServer支持包括 Windows、Linux等在內(nèi)的操作系統(tǒng)。目前,除“Citrix Essentials for XENServer”外,都是免費的,包括動態(tài)實時遷移、智能服務器維護、共享虛擬機臨時庫等。
圖2 國科圖云服務平臺技術構架
國科圖云服務平臺的資源管理子系統(tǒng)是提高計算資源利用率的關鍵,負責整個虛擬環(huán)境中的硬件和虛擬硬件的生命周期管理及資源使用情況的監(jiān)控處理,如服務器開關機及動態(tài)遷移、存儲空間的使用率和服務器處理器及內(nèi)存的使用率等,是整個國科圖云服務平臺的基礎平臺。資源管理子系統(tǒng)由免費的XENServer軟件、服務器及存儲設備等計算資源硬件構成,其中XENServer將物理服務器配置成可虛擬化的資源,通過XENCenter整合已安裝配置XENServer的物理服務器形成可伸縮的虛擬化環(huán)境。服務門戶子系統(tǒng)通過XENServer API的XE CLI(command line interface)實現(xiàn)對該基礎構架平臺的控制和簡單管理。技術架構如圖3所示。
(1)XENServer服務器的主要安裝配置過程
·XENServer要求安裝在64位X86服務器上(因為,32位服務器不支持64位的虛擬機),并且不支持多系統(tǒng)和多系統(tǒng)引導,不能再安裝運行其他應用程序,有需要的話,原服務器上的數(shù)據(jù)和資料要注意另行妥善保存;
·下載刻錄XENServer安裝盤,重啟服務器,并按提示開始安裝;
·配靜態(tài)IP地址,因為后期資源池不支持DHCP動態(tài)IP;
·如果在后面的資源池中只托管Windows虛擬機,那么在提示放入第二張CD(FREE_XENServer-5.5.0-linux-cd.iso)時,可以選擇“NO”跳過;
·Root Passwd要記住,后期連接XENServer host時要用到;
·NTP Server可配置為默認的“pool.ntp.org”,設備之間的時間同步很重要;
完成安裝并重啟服務器,重啟后,該服務器資源情況可使用“xsconsole”命令進入系統(tǒng)配置接口,也可以使用安裝在其他服務器上的XENCenter管理器,通過“xsconsole”命令進入。
(2)XENCenter管理器的安裝配置過程
·XENCenter安裝要求有.NET framework version2.0 or above支持;
·安裝前,確認沒有老版本的 XENCenter,否則要在“添加/刪除程序”中卸載;
·點擊“XenCenter.msi”開始安裝,安裝過程中要注意XENCenter的安裝路徑,推薦修改為“C:CitrixXenCenter”,以確保后期調(diào)用XENServer API時不會出現(xiàn)路徑指向問題;
(3)通過XENCenter管理器整合物理資源、管理虛擬資源
安裝XENCenter后,需要連接XENServer服務器,形成完整的虛擬環(huán)境。為充分利用虛擬平臺的動態(tài)資源調(diào)度特性,要注意以下幾點:
·創(chuàng)建資源池,所有XENServer主機需要有靜態(tài)地址,
其中一臺為資源池的管理機,其他物理主機作為普通服務器加入,所有主機的管理員和密碼最好相同;
·創(chuàng)建資源池級的存儲庫,在創(chuàng)建基于NFS VHD存儲庫的 “New Storage Repository”窗口中,注意”Share Name:”的填寫格式,原提示不準確,正確的格式為“
國科圖云服務平臺的服務門戶子系統(tǒng)是一個簡單的虛擬應用映像和虛擬服務器的管理門戶。通過它信息服務人員可以簡單、靈活地完成個性化的虛擬服務器創(chuàng)建和快速部署。主要功能包括信息服務人員的認證管理、虛擬服務器管理、虛擬應用映像模板管理、地址管理和虛擬環(huán)境的監(jiān)控等。
4.2.1 開源開發(fā)環(huán)境及實現(xiàn)工具
開源技術由于其自身開放性和免費等優(yōu)勢,近年來應用實例越來越多,在開發(fā)服務門戶子系統(tǒng)時也廣泛采用開源技術,同時考慮到系統(tǒng)擴展可能遇到的跨平臺和可移植性問題。系統(tǒng)開發(fā)環(huán)境和工具使用如下組合:開發(fā)語言使用Jsp腳本,開發(fā)環(huán)境是Eclipse6.0,存儲數(shù)據(jù)庫軟件采用的是PostgreDB,信息服務器發(fā)布平臺是Tomcat5.5。目前的系統(tǒng)運行環(huán)境是Windows Server 2003操作系統(tǒng)。
4.2.2 關鍵技術接口實現(xiàn)
(1)數(shù)據(jù)庫接口
國科圖云服務平臺開發(fā)使用通用的異構跨平臺技術,數(shù)據(jù)庫接口方式是JDBC[5]。JDBC是實現(xiàn)Java應用與各種不同數(shù)據(jù)庫對話的方式或一種機制,使用JDBC可以很容易地把SQL語句傳送到任何關系型數(shù)據(jù)庫中。換言之,用戶不需要為每一個關系數(shù)據(jù)庫單獨寫一個程序。JDBC允許開發(fā)者利用 Java平臺的”Write once,run anywhere”這一特性,開發(fā)者甚至可以在不同環(huán)境下連接各種不同的數(shù)據(jù)庫。國科圖云服務平臺使用的是連接開源數(shù)據(jù)庫PostgresDB的JDBC接口,具體配置略有不同。
關鍵代碼如下:
(2)遠程網(wǎng)絡配置接口
遠程網(wǎng)絡配置接口是在系統(tǒng)中通過簡單配置直接在遠端完成目標服務器的網(wǎng)絡配置修改功能。國科圖云服務平臺通過該接口主要完成對虛擬服務器創(chuàng)建后的網(wǎng)絡配置任務。這里我們主要用到PsExec[6]和Netsh[7]兩個配置工具。
PsExec是一個輕型的 Telnet替代工具,它使您無需手動安裝客戶端軟件即可執(zhí)行其他系統(tǒng)上的進程,并且可以獲得與控制臺應用程序相當?shù)耐耆换バ?。國科圖云服務平臺通過PsExec將封裝好的Netsh網(wǎng)絡配置文件上傳到遠端虛擬服務器并執(zhí)行它,實現(xiàn)遠端服務器網(wǎng)絡配置。
關鍵代碼如下:
注意事項:
·某些反病毒掃描程序會報告其中的一個或多個工具感染了“遠程管理”病毒。這些 PsTools都不帶病毒,但是如果病毒使用了這些工具,則它們可能觸發(fā)病毒通知。
· PsExec 可在 Windows Vista、NT 4.0、Windows 2000、Windows XP和Server 2003(包括 64位版本的Windows)上運行。
Netsh 是 Windows 2000、Windows XP、Windows Server 2003操作系統(tǒng)自身提供的命令行腳本實用工具,它允許用戶在本地或遠程顯示或修改當前正在運行的計算機的網(wǎng)絡配置。為了存檔、備份或配置其他服務器,Netsh也可以將配置腳本保存在文本文件中。通過Netsh命令對服務器網(wǎng)絡設置進行備份,簡單、方便且快速、有效,無需其他軟件輔助。
關鍵代碼如下:
遠程網(wǎng)絡配置接口注意事項:
PsTools工具對于中文識別有問題,address name一般都為“本地連接”。如果通過PsExec執(zhí)行遠程的cmd命令,那將無法正確執(zhí)行Netsh的命令,除非address name的值是英文的。所以,國科圖云服務平臺的所有映像模板的網(wǎng)絡連接名稱都改為“l(fā)ocal”。
(3)XENServer的 API
國科圖云服務平臺通過XENServer的API將服務門戶子系統(tǒng)和資源管理子系統(tǒng)無縫連接起來,結合Runtime.getRuntime().exec方法執(zhí)行接口命令,屏蔽復雜的服務器資源管理,提供簡單靈活的應用布署能力。
關鍵代碼如下:
虛擬服務器生命周期相關的XENServer API命令:
計算資源監(jiān)控相關的XENServer API命令 (資源緊張時,門戶平臺將彈出“無法創(chuàng)建新的虛擬服務器”的提示):
(4)Tomcat信息服務器參數(shù)配置
為方便國科圖云服務平臺的布署、開發(fā)、多語言支持和終端用戶使用,作如下參數(shù)改動:修改Tomcat的默認根目錄為系統(tǒng)開發(fā)目錄,端口號為80,添加對世界通用的語言編碼uft-8字符集的支持;所有參數(shù)修改都在Tomcat安裝目錄下面conf目錄下的server.xml配置文件中完成。
關鍵代碼如下(斜體部分為修改的部分):
國科圖云服務平臺已在測試運行中,注冊用戶通過“選模板→創(chuàng)建服務器→啟動服務器→服務器網(wǎng)絡配置→完成(服務器重啟)”即可簡單實現(xiàn)虛擬服務器的創(chuàng)建。通過關閉、重啟、Web遠程桌面、FTP數(shù)據(jù)傳輸?shù)孺溄涌珊唵螌崿F(xiàn)對所創(chuàng)建的虛擬服務器的多層次管理。虛擬服務器管理界面如圖4所示。
國科圖云服務平臺有效地整合了現(xiàn)有計算資源,提高了資源利用率,同時實現(xiàn)了信息服務布署與遷移的簡單、靈活、多樣。系統(tǒng)基礎框架選擇的XENServer是一款較為成功的虛擬化基礎資源構架平臺;個性化虛擬環(huán)境參數(shù)保存使用開源的postgresDB數(shù)據(jù)庫,可以在一定程度上保證整個云服務平臺的穩(wěn)定;開源技術在開發(fā)過程中的廣泛使用也將為進一步的功能拓展打下良好的基礎。
筆者通過一個實際的數(shù)字圖書館云服務平臺開發(fā)過程,詳細介紹如何搭建此類型服務平臺的思路和整體解決方案,希望能夠為具有相同需求的同行提供一定的參考和借鑒,有助于指導數(shù)字圖書館云計算應用領域問題的解決。后續(xù)工作是增加對Linux虛擬服務器的創(chuàng)建和管理的支持,拓展國科圖云服務平臺的適用性和靈活性。
1 Postgresql,http://www.postgresql.org,2010
2 Ian P,Keir F,Steven H,et al.XEN 3.0 and the Art of Virtualization,http://www.linuxsymposium.org/2005/linuxsymposium_procv2.pdf,2010
3 Technical and commercial comparison of Citrix XENServer and VMware,http://www.citrix.com/site/resources/dynamic/salesdocs/XS_vs_VMware_comparison.pdf,2010
4 VMware vSphere,http://www.vmware.com/products/esx,2010
5 Java SE Technologies,http://java.sun.com/javase/technologies/database,2010
6 PsExec,http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx,2010
7 Using Netsh,http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/netsh.mspx,2010