近年來,云存儲已成為存儲行業未來發展最為明朗的方向之一,它是在云計算的基礎之上的延伸和發展,是一個以數據存儲和管理為核心的云計算系統。海量數據的指數增長已成為現實,根據IDC (Internet Data Center, 互聯網數據中心) 的最新統計結果顯示,到2012 年底, 全球數據總量將達到2.7 ZB,到2015年將達到8 ZB。麥肯錫的研究報告指出,大量的數據已經滲透到每一個行業和業務職能領域,逐漸成為重要的生產要素。目前, 傳統的數據存儲的擴展性不佳, 寫人數據的速度遠遠低于數據產生的速度。
于是云計算技術應用而生,Hadoop云計算平臺是Apache旗下的一個開源分布式計算項目,有效的解決了上述問題。Hadoop在可申縮性、健壯性、計算性能和成本上具有明顯的優勢,已成為當前互聯網企業主流的大數據存儲和分析平臺。預計,在未來5年內將有50%的大數據項目會在Hadoop 的框架上運行。該文在Hadoop 云計算平臺為基礎上,驗證了Hadoop面對海量數據的處理能力,以及設計并實現了基于hadoop分布式文件系統的Scool云存儲文件管理系統。
1 云存儲平臺
云存儲的實現要以多種技術的發展為前提,比如寬帶網絡的發展、WEB2.0技術、應用存儲的發展、集群技術、網格技術、分布式文件系統、CDN內容分發、P2P技術、數據壓縮技術、重復數據刪除技術、數據加密技術、存儲虛擬化技術、存儲網絡化管理技術。海量數據的可管理性、可擴展性、可靠性、總體成本(TCO)、以及容量擴展性將最終決定云存儲未來發展形式。所有云存儲系統應具有硬件冗余、自動的故障切換、存儲設備升級不會導致服務中斷、容量分配不受物理硬盤限制、節省電力、及時提供容量的擴展、海量并行擴容、統一的對外名稱、負載均衡、容易管理等優點。
1.1 云存儲的特性
異構性:是指云存儲系統能夠兼容不同的存儲設備、網絡差異、不同的操作系統、各種計算機硬件和不同編程語言。
分布性:是指單一的數據中心存儲模式無法滿足現有用戶在數據訪問效率、數據可靠性和系統負載均衡方面的需求,云存儲平臺的存儲資源池中將包含多個地理位置分布的數據中心用來進行數據冗余和負載均衡。
擴展性:是指云存儲系統可以簡單高效的為存儲空間擴容,存儲節點的加入和退出必須以熱插拔的方式進行。
透明性:是指包括存儲位置透明和用戶訪問透明,用戶不需要關心數據存儲的具體位置,就能夠就近訪問到數據的副本,對于用戶而言,數據總是可用的。
并發性:是指云存儲系統中多個用戶可能會同時對共享數據資源發出請求,每個云存儲組件必須被設計成在并發環境中是安全的。
可靠性:是指任一進程、計算機和網絡都有可能獨立的發生故障,因此每個云存儲組件需要清楚所依賴的組件可能出現故障的方式,組件要設計成能適當的處理每個故障。
效率:是指用戶訪問云存儲系統中共享數據的算法應該避免性能瓶頸,頻繁訪問的數據需要復制更多的副本,用戶能夠就近獲得最快的訪問時間,同時用戶使用云存儲服務的接口應該盡可能簡單。
2 云存儲的結構模型
云存儲是以存儲設備為核心,綜合了多種高新計術構成的復雜系統。它通過應用軟件來對外界用戶提供統一的服務。其結構模型由以下四層組成。
2.1 存儲層
存儲層是云存儲中最為基礎的部分, 同時也是云存儲的底層。云存儲通過互聯網、光纖通道網絡等,將大量的不同類型且分布在不同地理位置的存儲設備連接在一起,實現海量數據的統一存儲。同時實現對存儲設備的集中管理、狀態監控以及容量的動態擴展。實質上,這就是一種面向服務的分布式存儲系統。
2.2 基礎管理層
基礎管理層在云存儲系統中是最難實現的部分,也是云存儲中最為核心的一層。該基礎管理層主要應用集群、分布式文件系統、虛擬化等技術來實現云存儲系統中多個存儲設備之間的協同工作,使得這些不同設備能夠面向用戶提供一致的服務。為了保護用戶數據的安全性和私密性, 云存儲使用了數據加密技術、內容分發技術、數據備份和容災等技術來保證用戶的數據不被竊取、泄密或丟失。通過設計統一的用戶管理、安全管理、副本管理及策略管理等公共數據管理功能,將底層存儲與上層應用無縫銜接起來, 實現多存儲設備之間的協同工作,以更好的性能對外提供多種服務。
2.3 應用接口層
應用接口層是云存儲中最靈活多變的部分。云存儲服務商根據實際業務需求,可以開發遠程數據備份、視頻點播平臺等不同類型的服務接口,為用戶提供相應的應用服務。應用接口層是云存儲平臺中可以靈活擴展的、直接面向用戶的部分。根據用戶需求,云存儲可以開發出不同的應用接口,提供相應的服務,例如數據存儲服務、空間租賃服務、公共資源服務、多用戶數據共享服務、數據備份服務等。
2.4 訪問層
訪問層是云存儲中要求只有經過授權的用戶才可以通過標準的應用接口登陸系統,才能享用里面的各項服務。但是服務商所提供的訪問手段和訪問類型因采用的手段不同而不同,但是通過數據訪問層的話,任何一個授權用戶都可以在任何地方,使用任意一臺聯網的終端設備,按照標準的公用應用接口來登錄云存儲平臺,享受云存儲服務。
3 部署云平臺
3.1 Hadoop
Hadoop是Apache旗下的一個開源項目,用來支持數據密集型的分布式應用,能夠支持上千節點以及海量(PB 級)數據量的運算。Hadoop 主要由兩部分構成:Hadoop 分布式文件系統(HDFS[6])和在HDFS上的MapReduce [7]編程模型實現。
3.1.1 HDFS分布式文件系統
HDFS是Google GFS的開源版本的實現,作為一個高度容錯的分布式文件系統,它能夠提供高吞吐量的數據訪問,適合存儲海量的大數據文件,在軟件層內置數據容錯能力,可應用于云存儲系統的搭建與開發,和現有的分布式系統最大的不同點在于高容錯性、易擴展和低成本。
HDFS是可以運行在普通硬件上的分布式文件系統,采用主/叢(Master/Slave)結構。其中NameNode主要負責維護集群內的元數據,所有塊的元數據都被注冊在NameNode,對外提供創建、打開、刪除和重命名文件或目錄的功能。DataNode負責存儲數據,并提負責處理數據的讀寫請求。DataNode定期向NameNode上報心跳,NameNode通過響應心跳來控制DataNode。HDFS 提供了一個高度容錯性和高吞吐量的海量數據存儲解決方案。HDFS 可以提供以下特性:
1)可自我修復的分布式文件存儲系統;
2)高可擴展性,無需停機動態擴容;
3)高可靠性,數據自動檢測和復制;
4)高吞吐量訪問,消除訪問瓶頸;
5)使用低成本存儲和服務器構建。
3.1.2 MapReduce的實現
MapReduce模型由兩項核心操作構成:Map和 Reduce, 是Google 的一項重要技術,也是一個編程模型,用以進行大規模據量的高效計算。對于大量數據的計算,通常采用的手法就是并行計算。對于現階段而言,并行計算對許多開發人員來說還是一個比較遙遠的東西。MapReduce就是一種簡化并行計算的編程模型,它讓那些沒有多少并行計算經驗的開發人員也可以開發并行應用程序。
3.1.3 Hadoop優勢
綜上所述,本平臺基于Hadoop分布式技術實現,使編程和實現起來都比較容易,能夠高效地存儲和管理海量數據,具體來說有以下優勢:存儲方面:現在世界上最大的Hadoop集群目前在Facebook,可以存儲30PB的數據。計算方面:Hadoop是目前Terasort(Terasort是Hadoop中的的一個排序作業)記錄的保持者,Terasort是給出1TB的隨機數據,看誰能夠在最短的時間內完成排序,Hadoop使用了1400多個節點,在2分鐘內完成1T的數據排序。
3.2 云平臺搭建
云計算平臺的部署是復雜的系統工程,包括基礎設施的組裝與搭建、云計算系統平臺的安裝、部署、調試和測試等等。本實驗應用Hadoop框架來構建小型的云計算平臺環境,在硬件上用普通PC單機或多臺普通PC電腦即可實現。
本實驗由4臺普通PC電腦構成,配置均為Core2處理器,2G內存,操作系統為Red Hat Linux。其中一臺作為Namenode,機器名為master,其余三臺作為dataNode,機器名分別為slave01、slave02、slave03。系統結構如圖1所示。在4臺機器上建立統一的Hadoop用戶,并設置Hadoop用戶從master主機到各個slaves主面登錄不需要使用密碼。安裝Hadoop運行環境Java1.7,安裝版本為Hadoop1.0.3的Hadoop系統,配置conf文件夾下的hadoopenv.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、master、slave文件,初始化Namenode 節點并格式化hadoop文件系統的存儲空間,并保證Hadoop文件系統在各個節點上配置文件的一致性。
圖1 Hadoop 試驗平臺結構
3.3 Scool云存儲管理系統設計
3.3.1 系統設計
本文開發的Scool系統設計的中心思想是以WEB 方式向用戶提供文件操作服務功能,用戶在WEB基礎上使用本系統,給用戶使用帶來了極大地方便, 用戶只需要通過注冊就能獲取系統提供的存儲空間,就可以獲取系統提供的存儲服務,用戶可以方便的管理和使用自己的空間。系統安全也是我們設計的一個重點,系統通過單獨的文件管理服務器向云存儲系統發送用戶請求,系統通過調用Hadoop系統提供的多種API方式方便地管理用戶文件,沒有經過驗證的用戶是不能調用和使用API接口。(如圖2所示)
本系統利用Hadoop作為底層集群部署,由于Hadoop對硬件的要求不高,普通pc機就可以達到要求,并能夠高效的處理數據,方便用戶的使用和操作,為用戶數據提供統一管理界面,對用戶及時返回處理結果,系統設計總體可有效加快其服務應用的部署和實施工作。
圖2 系統結構
3.3.2 模塊設計
本系統有以下四個模塊組成,如圖3所示:
用戶管理模塊:本模塊用來完成新用戶的注冊功能,成功通過注冊的用戶將成為合法用戶,并獲取一定的存儲空間。經過用戶注冊,系統會記錄用戶申請時的用戶名和密碼以及其它用戶信息,并保存這些用戶數據信息到數據庫。用戶身份認證功能是指用戶以WEB的方式登錄到本系統,用戶登錄時系統會根據用戶登錄信息與數據庫保存的信息對比,對比完全一致時才能夠登錄到本系統。否則,用戶將無法獲取云存儲系統提供的服務功能。信息管理功能是指用戶擁有管理相關用戶信息的權力,如登錄密碼更改、用戶信息更改、密碼找回等功能。 文件管理模塊:本模塊是指合法用戶在系統提供的存儲空間上的文件操作服務功能,用戶通過此服務管理存儲空間上的相關文件。用戶可以完成上傳文件,下載文件,刪除文件等操作。本系統增加SWFUPLOAD技術來實現上傳大文件的功能,最大支持1G大小的文件上傳。
目錄管理模塊:本模塊的功能是用戶管理存儲空間上的文件存儲目錄,用戶可以新建目錄來管理不同分類的文件,用戶也可以刪除相應的目錄。
圖3 系統設計
3.3.3 系統實現
基于Hadoop的云存儲管理系統,實現了為用戶提供云存儲服務的基本功能,用戶登錄系統就可以體驗Scool云存儲帶給用戶的方便、實用、高效的服務。如圖4所示。
圖 4 系統界面
4 結束語
基于Hadoop實現的云存儲平臺,能夠提供一種廉價的大規模數據存儲以及高速數據處理的解決方案。同時,該存儲平臺具有可擴展性、安全性、容災性、副本自動還原、快速的特性,能夠滿足用戶對存儲平臺實時的按需擴容的需求。以HDFS作為分布式數據存儲的容器,解決了數據冗余備份的問題。云存儲平臺解決了非結構化和半結構化的松散數據存儲,以及存儲層的可靠性和可擴展性等問題。同時,基于Hadoop的云存儲平臺在對象訪問接口層實現了功能豐富的接口,能夠滿足日益增長的應用需求,為今后的云存儲安全、性能優化、以及開發其它應用服務的研究提供基礎。
系統的安全以及性能優化是下一步研究工作的重點,系統安全方面最為重要,研究kerberos認證機制是一種有效的解決方案,kerberos實現的是機器級別的安全認證,由于kerberos對集群里的所有機器都分發了keytab,相互之間使用密鑰進行通信,確保不會冒充服務器的情況,以保證云存儲的安全防護功能。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/