隨著計算機網絡、網格計算、WEB服務、新型WEB應用等理念和技術的發展,萬維網己經從一個傳統的HTML文件共享、交換、訪問平臺轉變為任意信息資源的共享平臺,架構與互聯網之上的云計算模式成為了大勢所趨。云計算中最重要一類是數據密集型的計算,其核心內涵是數據管理。傳統的數據管理技術難以滿足這些應用所提出的對數據管理的需求。本文借鑒傳統數據管理技術的理念,研究、設計了一個基于CouchDB的高可擴展、高可靠的海量圖片存儲管理系統。
1 云計算的定義及特點
云計算是以一種融合的方式,通過網絡作載體,以虛擬化技術為基礎,以提供基礎架構、平臺、軟件等服務為形式,整合大規模可擴展的計算、存儲、數據、應用、IT資源等分布式計算資源進行協同工作的超級計算模式。在云計算模式下,用戶不再需要購買復雜的硬件和軟件,而只需要支付相應的費用給“云計算”服務提供商,通過網絡就可以方便地獲取所需要的計算和存儲等資源。在計價上采用了更靈活的方式。從管理視角,云計算提供了一種管理大量虛擬化資源的方式,它們可以被自動的匯聚并提供服務,可以彈性的進行服務的提供和擴展。云計算是一種新的用戶體驗和業務模式,具備服務標準化、快速部署、靈活的計費、容易訪問\獲得的特點。云計算作為一種基礎架構管理和服務提供方法,具備虛擬化資源、彈性擴展的提供服務、按照一個大資源池的方式進行管理的特點。
云計算是一種計算模式,利用互聯網技術把大量可擴展(和彈性)的IT相關的能力作為一種服務提供給多個用戶按照運營模式可以分為公共云、私有云、混合云3種。
公共云:通過自己的基礎架構直接向用戶提供服務。用戶通過互聯網訪問服務,并不擁有云計算資源。
私有云:企業自己搭建云計算基礎架構,面向內部用戶或外部客戶提供云計算服務。企業擁有基礎架構的自主權,并且可以基于自己的需求改進服務,進行自主創新。
混合云:也就是既有自已的云計算基礎架構,也使用外部公共云提供的服務。
2 云計算的關鍵技術
云計算是以數據為中心的一種數據密集型的超級計算模式。在數據存儲、數據管理、編程模式、并發控制、系統管理等5個方面具有自身獨特的技術。
1)海量分布式存儲技術
為保證保證存儲數據的可靠性、高可用性和經濟性,云計算的存儲數據采取分布式冗余存儲存儲方式,以高可靠軟件來彌補硬件的不足,從而對外提供廉價可靠的系統。為了滿足大量用戶的需求,數據存儲技術必須具有高吞吐率和高傳輸率的特點。
云計算的數據存儲系統主要有Google的GFS(Google File System)和Hadoop開發團隊開發的開源系統——HDFS(Hadoop Distr4buted File System)。大部分IT廠商,包括Yahoo、Intel的云計劃采用的都是HDFS的數據存儲技術。
2)并行編程模式
為了高效利用云計算的資源,使用戶能夠更輕松地享受云計算帶來的服務,云計算的編程模式必須保證后臺復雜的并行執行和任務調度對用戶和編程人員來說是透明的。云計算采用Map-Reduce編程模式,將任務自動分成多個子任務,通過Map和Reduce兩步實現任務在大規模計算節點中的調度與分配。
3)數據管理技術
云計算對大數據集進行分析、處理,向用戶提供高效服務,因此,數據管理技術必須能夠高效地管理大數據集。另外,如何在規模巨大的數據中找到特定的數據,也是云計算數據管理技術所必須解決的問題。云計算系統的數據管理往往采用列存儲的數據管理模式,保證海量數據存儲和分析性能。
4)分布式資源管理技術
在多節點并發執行環境,分布式資源管理技術是保證系統狀態正確的關鍵技術。系統狀態需要在多節點之間同步,關鍵節點出現故障時需要能夠自動遷移服務。分布式資源管理技術通過“鎖”機制來協凋多任務對資源的使用,從而保證數據操作的一致性。
5)云計算平臺管理技術
云計算資源規模龐大,一個系統的服務器數量可能會高達10萬臺,且很有可能跨越幾個坐落于不同物理地點的數據中心,同時還在其上運行著成千上萬種應用。如何有效地管理這些服務器,保證這些服務器組成的系統能夠提供每天24小時不間斷服務是一個巨大的挑戰。云計算系統管理技術是云計算的“神經網絡”,它能使大量的服務器協同工作,方便地進行業務部署和開通,快速地發現和恢復系統故障,使云計算系統通過自動化、智能化的手段實現大規模的可運營、可管理。
3 云計算中數據管理系統應具備的特征
大規模云存儲技術與分布式數據管理系統結合,能夠為各行各業提供了一個海量存儲空間,并支持靈活擴展、高性能訪問的文件共享存儲平臺。平臺具有的一些屬性和特征
1)高效性
云計算是一種隨用隨付費的模式,耶么使用云計算資源的費用會隨著所需要的存儲、網絡帶寬和計算機能源線性增長。因此,如果數據分析軟件產品A比B需要更多的計算單元去執行相同的任務,那么產品A就需要比B花費更多。因此,能用盡量少的資源去完成盡量多的任務的系統也就是我們所要尋找的。
2)容錯性
容錯性在分析型數據工作環境中的度量與在傳統工作環境中不同。對于傳統的工作,一個具有容錯性的DBMS可以從一個錯誤中恢復而不會丟失任何數據或恢復到最近一次完成的事務;而在一個分布式數據庫環境中,則可以成功的提交事務并在一個工作負載中前進,甚至面對工作節點錯誤。對于分析型工作負載中只讀的請求,沒有寫事務的提交,也沒有在節點失效時更新的失敗。因此,對一個具有容錯性的分析型DBMS簡單的來說,如果一個與請求處理失敗關聯的節點失效,則不需要重發一個請求。
3)操作加密數據的能力
如敏感數據在上傳到云中之前有可能被加密。為了防止對這些敏感數據未經授權的訪問,任何運行在云上的應用都不應該能夠在訪問之前直接解密數據。然而,為了進行解密而把整個表或列從云中傳輸出來對帶寬來說也是個挑戰。因此,數據分析系統應該具有能夠直接操作加密數據的能力,使得最終只有較少的數據需要被傳輸到別的地方進行解密,這樣就明顯提高了性能。
4)提供接口的能力
有很多面向用戶的商業智能工具是與數據庫軟件協同工作并在形象化、查詢生成、結果統計和高級數據分析方面起到一定幫助作用的。這些工具是分析型數據管理系統的一個重要組成部分,因為商業分析師通常在技術上不是很精通并且并不喜歡直接面對數據庫軟件。這些工具一般通過ODBC或JDBC與數據庫進行連接,因此希望處理這些產品的數據庫軟件必須通過這些連接接收SQL請求。
4 圖片數據存儲管理系統設計與實現
4.1 需求分析
隨著網絡技術的普及應用和人們生活方式的改變,在線交易和服務需求的不斷增長,對企業存儲、保護和管理數據的能力提出了更高的要求。尤其是對淘寶網這樣的訪問量極高的電子交易網站來說,對圖片系統的要求更高。根據對淘寶網流量分析,圖片的訪問流量會占到90%以上,而主站的網頁則占到不到10%。淘寶整體圖片存儲系統容量1 800 TB(LSPB),已經占用空間990 TB(約IPB),平均圖片大小是18.45 K;大規模的小文件存儲與讀取,磁頭需要頻繁的尋道和換道,因此在讀取上容易帶來較長的延時。這就給淘寶網的系統帶來了一個巨大的挑戰。傳統的存儲架構由于擴展性較差,當用戶量及性能需求增加時,只能一味地添加高端存儲設備。長此以往,存儲環境就會變得日益復雜,管理和運營成本更高,并造成了過高的能源消耗。同時,過于復雜的存儲架構和備份方式也很難滿足用戶日漸增長的數據管理和容災需求。而云存儲作為一種新興的技術理念,正在改變著傳統存儲的提供與使用方式,也對存儲行業帶來了深遠影響。經過長時間的摸索,我們發現這些具有海量存儲需求的用戶,只有應用了更低成本、具有更高可擴展性的云數據管理體系,才能滿足其爆炸性增長的存儲需求。
4.2 系統設計目標
為了解決大規模小圖片文件的高效存儲和訪問的問題,我們在己有的云平臺上設計并實現了一個高可擴展、高可靠的海量圖片存儲、管理系統。該系統的設計目標:
1)大規模、支持靈活擴展
我們要構建的圖片云存儲系統能夠支持TB規模的存儲容量,且非常容易進行擴展,整個擴展過程又不能影響服務的持續運行。這樣圖片云存儲系統良好的伸縮性可以讓使用的用戶靈活的投資存儲基礎架構,減少投資風險。
2)高可靠性
在用戶實際應用環境中,各種不同類型的軟硬件故障發生的概率非常大,如硬件損壞、網絡中斷、系統崩潰等異常都會引起存儲服務中斷,甚至造成數據丟失。圖片云系統是一個構建在云之上的海量圖片存儲管理系統,因此它可利用云計算環境一些特有的容錯性來保障服務的高可靠性。
4.3 系統體系結構設計
根據上述設計目標,圖片云系統應該是一個能夠提供海量存儲空間,并支持靈活擴展、高性能訪問以及容災和備份的圖片文件存儲管理平臺。其系統結構由客戶端(ClientAgent,CA)、負載均衡服務器(Load Balancing Server,LBS)、元數據服務器(Meta data Server,MDS)和對象存儲節點(ObjectStorage Node.簡稱OSN)4大部分組成。
客戶端(CA)向外為客戶提供各種應用服務,CA安裝在用戶服務器上。用戶通過CA訪問系統,進行讀、寫、修改等操作。如萬維網服務、數據庫、文件服務、科學計算等。
負載均衡服務器(LBS)位于客戶端與元數據管理服務器集群的中間。LBS在這個位置上除了能夠支持系統的水平伸縮外,還能夠保證大量客戶高效、穩定的訪問該系統。多臺元數據管理服務器都部署上CouchDB數據庫,因此每臺機器都能向外提供相同的服務。如當客戶端發出請求時,LBS會根據下一層各元數據管理服務器的負載情況來將請求分留給適合的元數據管理服務器,達到集群負載均衡的目的,這樣當請求的數量比較大的時候,就不會出現請求長時間不被處理,因而客戶對系統的訪問就會更高效。
元數據服務器(MDS)部署著CouchDB數據庫,它管理著整個系統的元數據和對象數據的布局信息,數據庫用來存儲圖片文件系統中所有的元數據,包括圖片名稱、圖片規格、訪問控制信息、存儲位置等。
傳統的存儲集群系統里元數據存儲只有一份,通常由中心節點來管理,因而很容易成為系統的瓶頸。對于圖片云系統,不存在中心管理節點,元數據存儲在無中心的、完全分布式的元數據服務器集群中。集群中的元數據服務器都是完全對等的,通過CouchDB的相互備份,使得系統讀寫性能大大增強,且易于擴展。
對象存儲節點(OSN)用來存儲用戶的圖片。每個存儲節點都是獨立的存儲設備,負責對象數據的存儲、備份、遷移和恢復,并負責監控其它存儲設備的運行狀況和資源情況。同時,存儲節點上運行著虛擬化存儲管理軟件,并存儲了應用程序所需的數據。
當用戶訪問該系統時,首先會向CA以Web Service形式提供一個數據庫請求(增、刪、改、查),并提供一個UUID;該系統的核心管理模塊MDS根據UUID得出要訪問的元數據服務器節點ID和要訪問的圖片ID:之后MDS會訪問CouchDB中對應的元數據信息,讀取圖片存儲位置信息,然后便直接訪問對應的OSN完成數據存取或訪問等操作;在該過程中,有效地防止了MDS負載過重,大大提高了系統效率。
4.4 系統功能分析
基于云計算環境的高可擴展、高可靠的海量圖片存儲管理系統旨在為用戶提供一個解決海量圖片存儲的平臺。平臺通過提供公用的訪問接口,和客戶端的各種應用程序組成一個復雜的系統,通過應用程序來對外提供數據存儲和業務訪問服務。系統包括數據管理模塊和平臺管理模塊兩部分,平臺管理模塊包括數據備份和數據遷移。數據管理模塊包括圖片存儲、圖片刪除、圖片信息查看和圖片信息更新。具體功能結構如圖1所示。
其中,元數據管理模塊的具體功能就是實現對圖片的存儲、查看、更新和刪除4個基本功能,是提供給客戶端的可見的功能;而平臺管理模塊則是為實現系統的可擴展性和高可靠性而提供的一種內部機制,其中數據備份主要是通過使用冗余機制來保證文件系統的數據不會丟失,例如發生一臺MDS突然崩潰,這時多點備份就可以保證整個系統還能夠繼續正常運行,用戶的操作不會受到影響。在圖片云系統中,數據備份主要是通過元數據管理服務器的分布式復制來實現的。
元數據管理界面采用完全分布式的元數據管理服務器集群,每臺元數據管理服務器上都部署上CouchDB數據庫。該模塊主要管理圖片存儲系統的元數據和進行存儲對象的分配和布局。元數據管理包括圖片文件名稱、格式、大小、創建時間、訪問權限、存儲位置等等。
數據遷移主要是實現數據在不同的存儲節點之間的遷移。例如,當系統中的一臺服務器需要暫時停止工作進行維護,而它上面的數據還希望能夠被訪問,從而不會影響整個系統的正常運行,那么這個時候就需要將該服務器上的數據動態(不需要停服務器)的完全復制到另外一臺備用服務器上,此過程對客戶端是透明的,即客戶端完全不知道系統發生了什么。該系統中,數據遷移的實現主要依賴于元數據管理服務器上CouchDB的分布式復制和完全同步機制。
在該系統中,負載均衡我們采用軟件技術來實現,主要通過在客戶端和元數據管理服務器集群中間添加一臺機器作為負載均衡服務器,而負載均衡服務器上部署Apache服務器,基于Apache的mod_jk和mod_Proxy來實現負載均衡。例如,當客戶端發出請求時,LBS會根據負載均衡算法來將請求分留給適當的元數據管理服務器,達到集群負載均衡的目的,這樣當請求的數量比較大的時候,就不會出現請求長時一間不被處理的情況,從而實現高效訪問。
為了解決海量小圖片存儲管理的高可靠性和高可擴展性的問題,構建了圖片云系統作為一個分布式的海量圖片存儲管理系統,它在分布式環境下的讀寫性能是評價該系統的一個主要指標。影響該系統讀寫性能的主要體現有兩部分,一個是負載均衡模塊,一個是CouchDB本身的讀寫性能。
4.5 性能測試
Apache Jmeter是一款開源的性能測試框架,現己廣泛地作為Web應用程序的性能測試工具,本文采用ApacheJmeter對該系統進行壓力測試。測試場景分別在有負載均衡和沒有負載均衡的情況下,用Jmeter模擬100個客戶端并發的發出查詢請求,沒有負載均衡情況下的測試結果:100條查詢請求執行結果全部通過,平均響應時間為182ms。有負載均衡情況下的測試結果:100條查詢請求執行結果全部通過,平均響應時間為99ms。通過上述測試結果的比對,并發執行100條查詢請求,在有負載均衡的情況下,系統的響應時間要快于沒有負載均衡的情況,這正是由于系統中負載均衡的功能就是在出現大量并發訪問的時候,負載均衡服務器會根據當前系統各服務器的狀態來進行請求的轉發,即先把請求發給相對比較空閑的服務器,這樣就能充分利用分布式服務的優勢,提高訪問效率。
5 結束語
云計算技術的出現,使人們有更多的時間關注專業領域內的問題,使空間信息服務模式發生了革命性的改變。應用云計算的思想,借鑒傳統數據管理技術的經驗,設計面向云計算環境的海量圖片存儲管理系統,提高了存儲系統的可靠性和穩定性,而且在完全分布式環境下性能上也具有一定的優勢,具有很好的應用前景。
-
云計算
+關注
關注
39文章
7774瀏覽量
137357 -
計算機
+關注
關注
19文章
7488瀏覽量
87858 -
服務器
+關注
關注
12文章
9125瀏覽量
85335
發布評論請先 登錄
相關推薦
評論