陳 茫
(桂林理工大學(xué)圖書館,廣西 桂林 541004)
信息技術(shù)的變革帶了各種信息數(shù)字化的狂潮,面對新的數(shù)據(jù)和 Web應(yīng)用服務(wù),如何方便的存儲(chǔ)信息,如何提高存儲(chǔ)信息的效率是數(shù)字圖書館研究的一個(gè)重要的課題。數(shù)字圖書館的研究人員面臨存儲(chǔ)時(shí),總是無法回避兩個(gè)問題:(1)如何用最小的資源消耗,最大限度的滿足用戶的實(shí)際需求;(2)如何減少設(shè)備經(jīng)費(fèi)和管理成本的支出,同時(shí)提高存儲(chǔ)資源的利用效率[1]。云計(jì)算技術(shù)[2-3]的出現(xiàn)給我們帶來了新的曙光,基于云環(huán)境下的數(shù)字圖書館存儲(chǔ)建設(shè)研究掀起了又一輪新的浪潮。
本文的研究正式基于上述的出發(fā)點(diǎn)而完成的。首先分析比較云環(huán)境下的構(gòu)架及部署;結(jié)合開放源碼的云構(gòu)架軟件和云存儲(chǔ)管理工具,針對不同的云存儲(chǔ)關(guān)鍵技術(shù),建立一個(gè)切實(shí)可行的云存儲(chǔ)解決方案。最后,從系統(tǒng)實(shí)施、系統(tǒng)效率、資源消耗、數(shù)據(jù)安全和現(xiàn)實(shí)可用性等多方面分析對比不同云環(huán)境下的存儲(chǔ)性能,并得出響應(yīng)的測試結(jié)果和測試結(jié)論。
云存儲(chǔ)的概念源自于云計(jì)算的研究,它是從云計(jì)算延伸和發(fā)展而來的,所謂的云存儲(chǔ)服務(wù)就是指以服務(wù)的形式為用戶提供數(shù)據(jù)存儲(chǔ)服務(wù)和訪問,即網(wǎng)上的應(yīng)用服務(wù)和數(shù)據(jù)中心的軟硬件設(shè)施。云存儲(chǔ)通過集成計(jì)算機(jī)集群技術(shù)、分布式文件系統(tǒng)、網(wǎng)格技術(shù)、Web2.0技術(shù)和存儲(chǔ)虛擬化技術(shù)等現(xiàn)代信息技術(shù),并將不同的存儲(chǔ)設(shè)備以應(yīng)用軟件的虛擬化來協(xié)同工作,并實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)和訪問的系統(tǒng)[4]。
云存儲(chǔ)具有以下四個(gè)優(yōu)勢:
(1)按需使用。即用戶不需要對存儲(chǔ)介質(zhì)容量定量,可以快速部署存儲(chǔ),按需存儲(chǔ);
(2)易于管理。云存儲(chǔ)的管理由響應(yīng)的軟件進(jìn)行專業(yè)化的管理,無另需專人維護(hù),管理簡單;
(3)成本低廉。即應(yīng)用較少的硬件資源,就可達(dá)到費(fèi)用高額的專用存儲(chǔ)設(shè)備的性能;
(4)容災(zāi)性強(qiáng)。即不受停電和升級(jí)等的外部因素影響,可提供不間斷服務(wù)和數(shù)據(jù)快速恢復(fù);
(5)災(zāi)難防范。一旦災(zāi)難發(fā)生,異地備份數(shù)據(jù)自動(dòng)啟動(dòng)恢復(fù),容災(zāi)性更高。
目前,關(guān)于云存儲(chǔ)的實(shí)際應(yīng)用案例還是比較多的,例如:亞馬遜公司的云存儲(chǔ)S3,就是一個(gè)很好的例子,它是云存儲(chǔ)解決方案可行性應(yīng)用的先驅(qū),其云存儲(chǔ)的數(shù)據(jù)存儲(chǔ)速率可根據(jù)用戶的數(shù)據(jù)量和用戶需求而定[5];美國國會(huì)圖書館與DuraSpace公司的DuraCloud項(xiàng)目也是一個(gè)很不錯(cuò)的數(shù)字圖書館云存儲(chǔ)案例[6][7],它為廣大的數(shù)字圖書館用戶提供了一個(gè)可實(shí)現(xiàn)的有效保存與訪問的解決方案;此外,百度公司的“百度云”[8]、杭州格暢科技的“格子云 2.0”[9]等都是不錯(cuò)的公共云存儲(chǔ)設(shè)施。這些具體的云存儲(chǔ),為我們提供了可行的云環(huán)境,使構(gòu)建符合自身特點(diǎn)的數(shù)字圖書館云存儲(chǔ)成為了可能。
計(jì)算機(jī)硬盤驅(qū)動(dòng)器,相對云存儲(chǔ)而言,在應(yīng)用的過程中,還是存在較高的故障率。為了數(shù)據(jù)的安全,通過評估不同的復(fù)制機(jī)制,多種級(jí)別的數(shù)據(jù)存儲(chǔ)的可擴(kuò)展性和容錯(cuò)性,我們選用了云存儲(chǔ)的構(gòu)架,該構(gòu)架通過結(jié)合私有云和公共云來創(chuàng)建混合的云存儲(chǔ)環(huán)境。
目前,常用的、穩(wěn)定的、開源的而且免費(fèi)云環(huán)境管理工具有:Open Nebula[10]、Eucalyptus[11]和 OpenStack[12]等。在此選擇 OpenStack作為構(gòu)架的原型,同時(shí),這個(gè)原型的目標(biāo)是設(shè)計(jì)并實(shí)現(xiàn)可擴(kuò)展和兼容性高的分布式存儲(chǔ)構(gòu)架。此外,應(yīng)用的云存儲(chǔ)環(huán)境本身是免費(fèi)的、通用的和開源的構(gòu)建工具。綜上所述,這種體系結(jié)構(gòu)也是數(shù)字圖書館可以采用構(gòu)建云存儲(chǔ)環(huán)境時(shí),可行的資金和技術(shù)解決方案。
本文構(gòu)建的云環(huán)境下的數(shù)字圖書館云存儲(chǔ)構(gòu)架,如圖1所示,其中相關(guān)的核心的組件和模塊描述如下。
(1)虛擬機(jī)(Virtual Machine):縮寫為VM,指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。通過虛擬機(jī)軟件,可以在一臺(tái)物理計(jì)算機(jī)上模擬出二臺(tái)或多臺(tái)虛擬的計(jì)算機(jī),這些虛擬機(jī)完全就像真正的計(jì)算機(jī)那樣進(jìn)行工作,例如可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等等。為了創(chuàng)建合適的數(shù)字圖書館云存儲(chǔ)虛擬機(jī),分析了諸如KVM和XEN等不同的開源虛擬機(jī)代碼[13]。相關(guān)分析數(shù)據(jù)顯示KVM的性能要高于XEN,所以,選擇KVM作為主虛擬機(jī),虛擬機(jī)包括Apache Web服務(wù)器,一個(gè)PHP模塊,基本的工具DISOC Web應(yīng)用程序等,每個(gè)虛擬機(jī)能夠通過數(shù)據(jù)訪問模塊透明地訪問磁盤池。
(2)虛擬機(jī)管理器模塊(Virtual Machine Manager Module):縮寫為VMMM,是VMM 實(shí)現(xiàn)的中樞,所有其他 VMM 組件通過它進(jìn)行交互和通信,它運(yùn)行命令、傳輸文件并控制其他 VMM 組件和所有虛擬主機(jī)及 VMM 庫服務(wù)器的通信。
(3)數(shù)據(jù)庫訪問模塊(Data Access Module):縮寫為DAM,主要是負(fù)責(zé)數(shù)據(jù)的訪問,簡單的說法就是實(shí)現(xiàn)對數(shù)據(jù)表的Select(查詢),Insert(插入),Update(更新),Delete(刪除)等操作。虛擬機(jī)所需的虛擬磁盤空間通過數(shù)據(jù)訪問接口模塊(Data Access Module Interface,以下縮寫為DAM-I)獲得,并通過DAM-I調(diào)用DAM,DAM則負(fù)責(zé)整個(gè)云存儲(chǔ)服務(wù)器上的文件分配、檢索及存儲(chǔ)。
(4)負(fù)載均衡模塊(Load Balancer Module):縮寫為LBM,將負(fù)載(工作任務(wù))進(jìn)行平衡、分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。這里主要是指分配負(fù)載在不同虛擬機(jī)所組成的實(shí)例化物理服務(wù)器的私有云。
(5)負(fù)載均衡器(Load Manager):縮寫為LM,這里它是負(fù)責(zé)隨時(shí)監(jiān)視發(fā)生在私有云上的負(fù)載狀況。
(6)分布式云存儲(chǔ)(Distributed Storage on the Cloud):縮寫為DISOC,這是一個(gè)基于Web的網(wǎng)絡(luò)文件云存儲(chǔ)系統(tǒng),它是云存儲(chǔ)構(gòu)架的實(shí)例。
在云存儲(chǔ)服務(wù)的部署過程中,數(shù)據(jù)的高可用性是一項(xiàng)十分重要的評價(jià)指標(biāo)。選擇適當(dāng)?shù)臄?shù)據(jù)復(fù)制技術(shù)是實(shí)現(xiàn)數(shù)據(jù)高可用性最為有效的方式。在云存儲(chǔ)的構(gòu)架中,數(shù)據(jù)庫訪問模塊 DAM為我們提供了不同級(jí)別的數(shù)據(jù)可用性組件,其關(guān)鍵技術(shù)有以下幾種復(fù)制技術(shù):無復(fù)制、總復(fù)制、鏡像和IDA復(fù)制。
(1)無復(fù)制:數(shù)據(jù)文件只有原始的版本存在于云中的磁盤中,并遵循磁盤循環(huán)的分配策略;同時(shí),受自身的最小服務(wù)器容錯(cuò)需求的影響,該策略規(guī)定,一個(gè)文件將被分割并分配到不同的存儲(chǔ)虛擬機(jī)上。由于所有的數(shù)據(jù)都僅只有一份,雖然它的硬件資源消耗最小,但是該復(fù)制技術(shù)的數(shù)據(jù)可用性和容錯(cuò)水平是所有技術(shù)中最低的。
(2)總復(fù)制:與無復(fù)制技術(shù)相反,數(shù)據(jù)文件在每臺(tái)服務(wù)器中都有相應(yīng)的拷貝,且均可用。雖然,它是數(shù)據(jù)級(jí)別可用性最高的方法,但是,其代價(jià)是它占據(jù)了最高的磁盤空間消耗,通常不被大家采用。
(3)鏡像:數(shù)據(jù)文件在存儲(chǔ)的過程中,DAM將實(shí)時(shí)的產(chǎn)生一個(gè)數(shù)據(jù)備份,而這個(gè)備份被分塊放置不同的存儲(chǔ)虛擬機(jī)上。它是一種較為簡單的復(fù)制技術(shù)方法,可以確保在資源消耗不高的同時(shí),也具有較高數(shù)據(jù)的可用性。
(4)IDA復(fù)制:基于數(shù)據(jù)分片備份容錯(cuò)算法的復(fù)制技術(shù),也是文章中采用的數(shù)據(jù)復(fù)制技術(shù),其基本思想是將一個(gè)長度為L 的原始文件F分成n個(gè)分塊Fi ( 1≦i≦n),每個(gè)分塊的長度為L /m,從Fi中任取m個(gè)分塊都能還原文件F。從空間上看,n個(gè)分塊Fi的總和是原來文件的n/m倍(n/m≧1)。IDA復(fù)制技術(shù),有點(diǎn)類似于獨(dú)立磁盤冗余陣列(RAID 5),一旦發(fā)生磁盤故障,它不要重新復(fù)制整個(gè)文件到文件服務(wù)器上,而只需要復(fù)制文件K個(gè)損壞的片段(k<m)至云存儲(chǔ)上即可,它是一種塊級(jí)的條帶化的存儲(chǔ)技術(shù),能根據(jù)不同的策略選擇2到n存儲(chǔ)服務(wù)器的分布式環(huán)境中的數(shù)據(jù)進(jìn)行數(shù)據(jù)重建。故而,它較之其它的復(fù)制技術(shù),具有更高的數(shù)據(jù)可用性和更少的資源消耗。
在測試相關(guān)的數(shù)據(jù)之前,需要搭建現(xiàn)實(shí)的云存儲(chǔ)環(huán)境[14],其基本的云構(gòu)建如圖2所示。本地的私有云,選用8臺(tái)相同配置的聯(lián)想商用計(jì)算機(jī)構(gòu)成;同時(shí),在構(gòu)建和測試混合的云存儲(chǔ)環(huán)境中,通過 DAM-I負(fù)責(zé)透明的訪問外部公共云存儲(chǔ)平臺(tái),其中選用公共云存儲(chǔ)商的公共云存儲(chǔ)設(shè)施是:百度公司的“百度云”和杭州格暢科技的“格子云2.0”。
DAM數(shù)據(jù)訪問云存儲(chǔ)和單個(gè)存儲(chǔ)設(shè)備的性能比較時(shí),采用集中式的版本進(jìn)行分析,數(shù)據(jù)訪問模塊只需訪問云存儲(chǔ)的主節(jié)點(diǎn)虛擬機(jī)或是單個(gè)文件服務(wù)器。在測試私有云和混合云的性能時(shí),運(yùn)用分布式的版本,8臺(tái)分布式存儲(chǔ)系統(tǒng)采用分布式的處理。
在測試云存儲(chǔ)的工作負(fù)載時(shí),運(yùn)用云存儲(chǔ)原型中的并發(fā)客戶端程序,來進(jìn)行多并發(fā)的文件上傳和文件下載請求測試。在私有云的環(huán)境中,將并發(fā)數(shù)設(shè)定為100個(gè)、150個(gè)和200個(gè),進(jìn)行測試;在公共云的性能時(shí),如果測試的并發(fā)數(shù)過多,會(huì)被公共云服務(wù)商認(rèn)為是惡意的攻擊行為,所以,此項(xiàng)測試的并發(fā)數(shù)設(shè)置為10個(gè)、15個(gè)和20個(gè)。通過詳細(xì)的測試,能夠準(zhǔn)確的分析不同數(shù)據(jù)復(fù)制技術(shù)之間的數(shù)據(jù)處理能力。
針對測試的項(xiàng)目,選用以下兩個(gè)主要指標(biāo)數(shù)據(jù)作為測試的指標(biāo)。一是響應(yīng)時(shí)間,即用戶上傳或下載文件開始到文件加載或下載完成的時(shí)間;二是服務(wù)時(shí)間,即 DAM組件讀取文件時(shí)從找到文件開始到讀取文件完成所需的時(shí)間。測試的行為選取的操作是:文件上傳和文件下載。
在構(gòu)建完成所需的云存儲(chǔ)現(xiàn)實(shí)環(huán)境后,本文對以下幾項(xiàng)相關(guān)性能做出測試。其中測試的工具選取開源 Web性能測試工具Autobench[15][16]。通過,生成動(dòng)態(tài)的網(wǎng)頁請求數(shù)據(jù),模擬服務(wù)器上的數(shù)據(jù)處理時(shí)間。
本項(xiàng)測試的對象是單個(gè)服務(wù)器和由多個(gè)服務(wù)器組成的云存儲(chǔ)環(huán)境之間的性能對比。在測試圖中,橫軸表示評價(jià)時(shí)間,即不同客戶端對存儲(chǔ)設(shè)備的請求時(shí)間;縱軸表示響應(yīng)時(shí)間,即獲得請求后發(fā)送到存儲(chǔ)服務(wù)后的平均響應(yīng)時(shí)間,其性能的測試結(jié)果如圖3所示。
通過分析不難發(fā)現(xiàn),當(dāng)開始處理請求時(shí),當(dāng)負(fù)載較低時(shí),單臺(tái)服務(wù)器比云存儲(chǔ)具有更快的響應(yīng)性能;然而,一旦負(fù)載加重,云存儲(chǔ)就表現(xiàn)較好的響應(yīng)時(shí)間。特別是在測試的最后,可以清楚的看到,單臺(tái)服務(wù)器已經(jīng)無法完成客戶端的測試請求,然而出乎意料,云存儲(chǔ)卻提供能完成工作量更好的響應(yīng)時(shí)間。
本項(xiàng)測試的是不同復(fù)制技術(shù)下自建的私有云存儲(chǔ)的數(shù)據(jù)性能,具體如圖 4所示。通過分析不難得出,雖然無復(fù)制的響應(yīng)時(shí)間和服務(wù)時(shí)間總是最短的,但是,由于在上面的介紹中說到,這種技術(shù)沒有備份數(shù)據(jù),其數(shù)據(jù)遇到故障時(shí),數(shù)據(jù)安全性最低。而 IDA復(fù)制在所有的復(fù)制技術(shù)中,其的數(shù)據(jù)可用性、響應(yīng)時(shí)間、服務(wù)時(shí)間和容錯(cuò)能力上較其他的復(fù)制技術(shù),具有很強(qiáng)的競爭力,值得重點(diǎn)考慮。全復(fù)制技術(shù)和鏡像復(fù)制技術(shù),資源消耗資源相對 IDA復(fù)制較高,響應(yīng)及服務(wù)時(shí)間也較長。
由于在上面的分析中,分別對比了單臺(tái)服務(wù)器和云存儲(chǔ)的性能和不同復(fù)制技術(shù)在私有云環(huán)境的存儲(chǔ)性能,且性能的數(shù)據(jù)反映了云存儲(chǔ)和 IDA復(fù)制具有良好的性能。故而,本項(xiàng)測試選用的是混合云存儲(chǔ)環(huán)境下 IDA復(fù)制技術(shù)在不同公共云存儲(chǔ)的性能對比。同時(shí),選用的公共云服務(wù)平臺(tái)是:百度的“百度云”平臺(tái)和杭州格暢科技的“格子云2.0”平臺(tái),進(jìn)行相關(guān)的對比分析。
同樣,DAM訪問相應(yīng)的存儲(chǔ)環(huán)境,具體的分析數(shù)據(jù),仍然選用文件上傳和文件下載的響應(yīng)和服務(wù)時(shí)間作為參考,其具體的測試結(jié)果如圖5所示。在測試的過程中,執(zhí)行IDA復(fù)制的 DAM模塊從公共云獲得文件的片段,同時(shí)建立與私有云之間的聯(lián)系,在測試的結(jié)果中不難發(fā)現(xiàn),在該云環(huán)境的 IDA復(fù)制模式下,“百度云”和“格子云 2.0”雖然表現(xiàn)了相似的性能,但是,“百度云”還是比“格子云 2.0”略勝一籌。其原因可能跟百度的API程序比較成熟或者百度的網(wǎng)絡(luò)環(huán)境有關(guān)。
組件故障、數(shù)據(jù)丟失、人為操作失誤、自然災(zāi)害、攻擊和管理失誤等因素,是數(shù)據(jù)的長期存儲(chǔ)的最大威脅,會(huì)給數(shù)據(jù)的保存帶來不小的難題。云存儲(chǔ)技術(shù)作為現(xiàn)今科技時(shí)代圖書館重要的技術(shù)手段之一,為大數(shù)據(jù)環(huán)境和極端條件下的數(shù)據(jù)存儲(chǔ),提供了有力、可靠和安全的數(shù)據(jù)保障。本文云構(gòu)架方式、開源構(gòu)架工具、IDA復(fù)制技術(shù)、Web數(shù)據(jù)測試工具以及公共云平臺(tái)等都是免費(fèi)的、成熟的、開源的云存儲(chǔ)解決方案,大家可以根據(jù)上述的云存儲(chǔ)的相關(guān)性能,采用或研究適合自身業(yè)務(wù)系統(tǒng)、應(yīng)用系統(tǒng)的云存儲(chǔ)方式構(gòu)建自身的云平臺(tái),也希望本文能給廣大云計(jì)算研究人員提供些許幫助。
在以后的工作中,將進(jìn)一步的從以下兩個(gè)方面來改進(jìn):(1)根據(jù)不同云存儲(chǔ)的性能對比,在實(shí)際具體的應(yīng)用系統(tǒng)的實(shí)施中,確立更加科學(xué)的云存儲(chǔ)構(gòu)架的選型和應(yīng)用。(2)在實(shí)際的云存儲(chǔ)應(yīng)用中,根據(jù)應(yīng)用系統(tǒng)出現(xiàn)的問題,改進(jìn)云存儲(chǔ)的相關(guān)流程,提高云存儲(chǔ)的安全性和存儲(chǔ)效率。
[1] 胡昌平,谷斌.數(shù)字圖書館建設(shè)及其業(yè)務(wù)拓展戰(zhàn)略—國家可持續(xù)發(fā)展中的圖書情報(bào)戰(zhàn)略分析(4)[J].中國圖書館學(xué)報(bào),2005(5):13-16,33.
[2] Yan Han. On the Clouds: A New Way of Computing[J].Information Technology & Libraries,2010(29,no.2): 87-92.
[3] Tom Ipr. Where the Cloud Meets the Commons[J]. Journal of Web Librarianship,2011(5,no.2):132-41.
[4] Michael Armbrust,Armando Fox, Rean Griffith, etc. Above the clouds : A Berkeley View of Cloud Computing[M]. UC Berkeley Reliable Adaptive Distributed Systems Laboratory,2009.
[5] Jose L. Gonzalez, Ricardo Marcelin-Jimenez. Phoenix: A Fault-Tolerant Distributed Web Storage Based on URLs[C].In Proceedings of the IEEE 9th International Symposium on Parallel and Distributed Processing with Applications.ISPA,2011:282-87.
[6] What is DuraCloud?. [EB/OL].[2013-12-16].http://www.duracloud.org/tour.
[7] 高建秀,吳振新,孫碩.云存儲(chǔ)在數(shù)字資源長期保存中的應(yīng)用探討[J].現(xiàn)代圖書情報(bào)技術(shù),2010(6):1-6.
[8] 百度云. [EB/OL]. [2013-12-16]. http: //yun. baidu. com/1t?= home.
[9] 格子云2.0. [EB/OL].[2013-12-16]. http: // www. gleasy.com /.
[10] OpenNebula Project.[EB/OL].[2013-12-16]. http: //opennebula.org/.
[11] Eucalyptus Cloud. [EB/OL]. [2013-12-16]. http://www.eucalyptus.com/.
[12] Open source software for building private and public clouds.[EB/OL].[2013-12-16]. http://www.openstack.org/.
[13] XenVsKVM. Linux Virtualization Wiki, last updated 29 Jul 2008.[EB/OL].[2013-12-16].http://virt.kernelnewbies.org/XenVsKVM.
[14] 劉曉剛,張紅.基于開源云計(jì)算的圖書資料信息系統(tǒng)探究.情報(bào)科學(xué)[J].2011(6):906-909,923.
[15] Hussam Abu-Libdeh, Lonnie Princehouse,and Hakim Weatherspoon. RACS: A Case for Cloud Storage Diversity[C].In Proceedings of the 1st ACM Symposium on Cloud Computing. New York:ACM,2010:229-40.
[16] 赫建營,晏海華,等.一種有效的Web性能測試方法及其應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2007(1):275-277,285.