一、概述
云計算(cloud computing),是分布式計算技術(shù)的一種。云計算透過網(wǎng)絡(luò)連接,將一切隱沒在云端,普通用戶不在關(guān)心數(shù)據(jù)存在哪里,不在關(guān)心數(shù)據(jù)的安全,不在關(guān)心應(yīng)用程序是否需要升級,不在關(guān)心計算機病毒,這一切工作都由云計算中心負(fù)責(zé)解決,普通用戶要做的就是選擇自己喜愛的云服務(wù)商并購買自己需要的服務(wù)。云計算使普通用戶有了享受高性能計算的機會,云計算中心幾乎可能提供無限制的計算能力。
Google 提出的云計算強調(diào)的是云的重要性,因為Google從來都沒有端,并且將GFS 拋出作為誘餌欲占主動;微軟則強調(diào)“云”加“端”才是云計算,因為微軟的視窗一直是“端”的霸主;VMware 則認(rèn)為虛擬化是云計算的核心技術(shù);Sun 公司則重提多年前他們說的老話“網(wǎng)絡(luò)就是計算機”;Adobe則通過Flex 占領(lǐng)用戶的眼球,使Flash Player 進(jìn)軍云計算;另外大量的服務(wù)器托管公司則將服務(wù)器的租用稱為云計算。云存儲是在云計算概念上延伸和發(fā)展出來的一個新的概念,是云存儲重要的存儲資源。它通過集群計算、網(wǎng)格計算和分布式計算等功能,透過網(wǎng)絡(luò),將不同類型的存儲設(shè)備通過軟件協(xié)同工作,對網(wǎng)絡(luò)用戶提供數(shù)據(jù)存儲和訪問功能。
二、云存儲結(jié)構(gòu)
云存儲將云系統(tǒng)的存儲資源進(jìn)行統(tǒng)一整合管理,提供存儲虛擬化功能,為用戶提供一個統(tǒng)一的存儲空間,具有集中存儲、分布式擴展、安全認(rèn)證、數(shù)據(jù)加密等方面的優(yōu)點。在云狀存儲系統(tǒng)中,所有存儲資源對使用者都是透明的,使用者不必知道存儲設(shè)備的型號、接口和傳輸協(xié)議,也不必建立龐大的獨立的數(shù)據(jù)備份系統(tǒng)和應(yīng)急容災(zāi)系統(tǒng),這些狀態(tài)監(jiān)控、維護(hù)、備份和應(yīng)急容災(zāi)在云存儲系統(tǒng)中都能夠自動完成,已經(jīng)作為云的很自然的一部分。云存儲的結(jié)構(gòu)如圖1 所示。云存儲結(jié)構(gòu)模型由4 層組成。
1. 存儲層
云存儲設(shè)備可以是光纖通道存儲設(shè)備,也可以是NAS 或者 iSCSI 等網(wǎng)絡(luò)存儲設(shè)備。在云中,存儲設(shè)備數(shù)量龐大,通常會分布在不同的地方,通過廣域網(wǎng)、互聯(lián)網(wǎng)或者專用的光纖網(wǎng)絡(luò)連接。通常需要提供一個統(tǒng)一的存儲設(shè)備管理系統(tǒng),實現(xiàn)物理存儲設(shè)備的邏輯化和虛擬化管理。
2. 基礎(chǔ)管理層
基礎(chǔ)管理層是云存儲核心的部分。該層通過集群存儲、分布式存儲和網(wǎng)格存儲等技術(shù),實現(xiàn)眾多存儲設(shè)備之間的協(xié)同工作,對外提供統(tǒng)一的存儲訪問服務(wù)。
3. 應(yīng)用接口層
是由眾多的第三方軟硬件廠商提供的插件層。運營單位可以根據(jù)實際業(yè)務(wù)需要,利用應(yīng)用接口快速開發(fā)滿足需求的應(yīng)用程序,如云存儲的視頻監(jiān)控應(yīng)用、視頻點播應(yīng)用、網(wǎng)絡(luò)存儲的硬盤、遠(yuǎn)程數(shù)據(jù)備份應(yīng)用等。
4. 訪問層
訪問層提供給用戶統(tǒng)一的訪問登錄接口。用戶只有登錄后,才可以使用云存儲服務(wù)。不同的云存儲系統(tǒng)提供的訪問類型和訪問手段不同,安全需求也會千差萬別。用戶可以根據(jù)自己的需求選擇相應(yīng)的服務(wù)。
三、云存儲平臺設(shè)計與實現(xiàn)
。ㄒ唬┰O(shè)計方案論證比較
Google GFS Google 的數(shù)據(jù)存儲與管理技術(shù)具有以下特點:基于大規(guī)模( 幾千到上萬節(jié)點) 通用PC 構(gòu)建集群;集群節(jié)點同時提供存儲與計算服務(wù);基于不可靠硬件環(huán)境實現(xiàn)了高可靠的集群軟件系統(tǒng);用于處理與生成海量數(shù)據(jù)集的分布式計算模型高度抽象,在數(shù)據(jù)密集型業(yè)務(wù)中應(yīng)用廣泛;數(shù)據(jù)管理系統(tǒng)不支持完整的關(guān)系模型,結(jié)構(gòu)簡單而輕量。
Hadoop 實現(xiàn)了一個分布式文件系統(tǒng),簡稱HDFS。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。HDFS 有著高容錯性的特點,并且設(shè)計用來部署在低廉的硬件上。而且它提供高傳輸率來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。HDFS 采用master/slave 架構(gòu)。一個Namenod 以及一定數(shù)目的Datanode 組成一個HDFS 集群。在集群中,每一個節(jié)點包含一個Datanode。一個文件則分割成一個或多個block,由Datanode 集合提供存儲block。HDFS 采用java 語言開發(fā),這給運存儲的部署帶來很大的方便。
Dynamo 是亞馬遜的key-value 模式的存儲平臺,可用性和擴展性都很好,性能也不錯:讀寫訪問中99.9% 的響應(yīng)時間都在300ms 內(nèi)。Dynamo 的可擴展性和可用性采用的都比較成熟的技術(shù),數(shù)據(jù)分區(qū)采用改進(jìn)的一致性哈希(consistent hashing) 方式進(jìn)行復(fù)制,利用數(shù)據(jù)對象的版本化實現(xiàn)一致性。復(fù)制時因為更新產(chǎn)生的一致性問題的維護(hù)采取NRW 機制以及去中心化的復(fù)制同步協(xié)議。Dynamo 是完全去中心化的系統(tǒng),人工管理工作很小。Dynamo 按分布式系統(tǒng)常用的哈希算法切分?jǐn)?shù)據(jù),分放在不同的node 上。Read 操作時,也是根據(jù)key 的哈希值尋找對應(yīng)的node。Dynamo 使用了ConsistentHashing 算法,node 對應(yīng)的不再是一個確定的hash 值,而是一個hash 值范圍,key 的hash 值落在這個范圍內(nèi),則順時針沿ring 找,碰到的第一個node 即為所需。Dynamo 對Consistent Hashing 算法的改進(jìn)在于:它放在環(huán)上作為一個node 的是一組機器(而不是memcached 把一臺機器作為node),這一組機器是通過同步機制保證數(shù)據(jù)一致的。如果一個ring 內(nèi)的訪問量大了,則可以在兩個node 間加入一個新node 以緩解壓力,這時會影響到其后繼node 的hash 范圍,需要調(diào)整數(shù)據(jù)。假設(shè)一個ring 中原本只有node2、node3、node4,在加入新的node1 之后,原先從node2 查詢的部分key 將改為從node1 查詢,node1 和node2 中的數(shù)據(jù)就需要調(diào)整,主要是node1 從node2 中提取出屬于它的數(shù)據(jù),這樣做需要選取性能壓力不高的時候。Dynamo 的一個node 中一臺機器建有一個Merkle Tree,當(dāng)兩臺機器不一致時,通過這個tree 結(jié)構(gòu),可以快速定位不一致的Object 來恢復(fù)數(shù)據(jù)。Merkle Tree 又叫Hash Tree,它把key 分成幾個range,每個range 算出一個hash 值,作為葉子,再一層層合并計算上去,這樣,從root 開始比較hash 值,就可以快速找到哪幾段range 中的hash 值變化了。
SAN 系統(tǒng)是在存儲端構(gòu)建存儲的網(wǎng)絡(luò),將多個存儲設(shè)備構(gòu)成一個存儲區(qū)域網(wǎng)絡(luò)。前端的主機可以通過網(wǎng)絡(luò)的方式訪問后端的存儲設(shè)備。而且,由于提供了塊設(shè)備的訪問方式,與前端操作系統(tǒng)無關(guān)。在SAN 連接方式上,可以有多種選擇。一種選擇是使用光纖網(wǎng)絡(luò),能夠操作快速的光纖磁盤。另外一種選擇是使用以太網(wǎng),采取iSCSI 協(xié)議,能夠運行在普通的局域網(wǎng)環(huán)境下。由于存儲區(qū)域網(wǎng)絡(luò)中的磁盤設(shè)備并沒有與某一臺主機綁定在一起,而是采用了非常靈活的結(jié)構(gòu),因此對于主機來說可以訪問多個磁盤設(shè)備,從而能夠獲得性能的提升。SAN 系統(tǒng)與分布式文件系統(tǒng)例如Google File System并不是相互對立的系統(tǒng),而是在構(gòu)建集群系統(tǒng)的時候可供選擇的兩種方案。其中,在選擇SAN 系統(tǒng)的時候,為了應(yīng)用程序的讀寫,還需要為應(yīng)用程序提供上層的語義接口,此時就需要在SAN 之上構(gòu)建文件系統(tǒng)。而Google File System 正好是一個分布式的文件系統(tǒng),因此能夠建立在SAN 系統(tǒng)之上?傮w來說,SAN 與分布式文件系統(tǒng)都可以提供類似的功能。
(二)使用hadoop 實現(xiàn)私有云存儲
Hadoop 作為Google 的開源實現(xiàn),其具有以下幾個優(yōu)點?蓴U展,不論是存儲的可擴展還是計算的可擴展都是Hadoop的設(shè)計根本。經(jīng)濟(jì),框架可以運行在任何普通的PC 上?煽,分布式文件系統(tǒng)的備份恢復(fù)機制以及MapReduce 的任務(wù)監(jiān)控保證了分布式處理的可靠性。高效:分布式文件系統(tǒng)的高效數(shù)據(jù)交互實現(xiàn)以及MapReduce 結(jié)合LocalData 處理的模式,為高效處理海量的信息作了基礎(chǔ)準(zhǔn)備。HDFS 采用java 語言開發(fā),因此很少存在兼容性問題。Hadoop 這些特點適合于企業(yè)實現(xiàn)私有云平臺。
所設(shè)計的云存儲系統(tǒng)的體系結(jié)構(gòu)由web 客戶端、Web 操作系統(tǒng)、云存儲服務(wù)器、云存儲中心五個部分構(gòu)成。其結(jié)構(gòu)如圖2 所示。
1. 客戶端
客戶端機群是云存儲系統(tǒng)的前臺系統(tǒng),客戶端機器上只需要安裝瀏覽器就能夠滿足用戶訪問需求。用戶通過瀏覽器訪問云存儲系統(tǒng),其他的服務(wù)都由云存儲系統(tǒng)在后臺自動。
2.Web 操作系統(tǒng)
這里的web 操作系統(tǒng)采用了eysOS。EyeOS 負(fù)責(zé)接收客戶的訪問請求,對客戶的訪問請求實施合法性驗證。EyeOS中提供了大量的應(yīng)用,允許用戶根據(jù)自己的喜好下載和使用這些應(yīng)用,實現(xiàn)系統(tǒng)的個性化配置,真正達(dá)到“一次配置,到處使用”。eysOS 同時提供用戶文件的存取接口,通過該接口可以將文件存儲到Hadoop 云端,同時可以通過它對文件進(jìn)行各種操作。
3. 云存儲服務(wù)器
云存儲服務(wù)器由大量的集群“云端服務(wù)器”構(gòu)成,同時為Hadoop 提供管理節(jié)點(NameNode),負(fù)責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶機的訪問。當(dāng)然用戶的數(shù)據(jù)也都是存儲在這里的。
4. 云存儲中心
云存儲中心由眾多的服務(wù)器構(gòu)成Hadoop 的數(shù)據(jù)節(jié)點(DataNodes),負(fù)責(zé)保存文件數(shù)據(jù),實現(xiàn)文件的分布式存儲、負(fù)載平衡以及文件的容錯控制。
其實施過程主要包括:
1. 新建系統(tǒng)Hadoop 用戶
Hadoop 要求所有機器上hadoop 的部署目錄結(jié)構(gòu)要相同,并且都有一個相同的用戶名的帳戶,所以需要每臺機器建一個同名的用戶。在這4 臺機器上建hadoop 用戶并加入到root 組,密碼:hadoop,默認(rèn)路徑/home/hadoop/。
2.SSH 設(shè)置
Hadoop 需要namenode 到datanode 的無密碼SSH,所以需要設(shè)置namenode 到其他3 臺datanode 的無密碼公鑰認(rèn)證方式的SSH。設(shè)置完成后,測試一下namenode 到各個節(jié)點的SSH 鏈接,包括到本機,如果不需要輸入密碼就可以SSH 登錄,說明設(shè)置成功了。
3. 安裝JDK
到sun 網(wǎng)站下載JDK 安裝包,并在每臺機器的root 用戶下面安裝。安裝軟件會將JDK 自動安裝到 /usr/java/jdk1.6.0_26 目錄下。安裝完成后再設(shè)置JDK 的環(huán)境變量?紤]到JDK 可能會有其他系統(tǒng)用戶也會用到,建議將環(huán)境變量直接設(shè)置在/etc/profile 中。
4.Hadoop 集群配置
用hadoop 用戶登錄namenode, 在 namenode 上下載hadoop-0.20.2.tar.gz,將其解壓到/home/hadoop/ 目錄下,然后在 hadoop 下創(chuàng)建tmp 文件夾并把Hadoop 的安裝路徑添加到/etc/profile 中修改/etc/profile 文件( 配置 java環(huán)境變量的文件),設(shè)置HADOOP_HOME 和PATH 的路徑,并使其有效。另外在datanode 上也需要如namenode 一樣修改配置HADOOP_HOME 和PATH。
編輯Hadoop 配置文件。hadoop 配置文件在conf 目錄下,包括:hadoop-env.sh: 配置JAVA_HOME 路徑;core-site.xml:配置Common 組件的屬性;hdfs-site.xml:配置HDFS組件的屬性;mapred-site.xml:配置map-reduce 組件的屬性;配置masters 文件,加入namenode 的ip 地址;配置slaves文件,加入所有datanode 的ip 地址等。
四、私有云中文件讀寫流程
讀文件的流程:讀一個文件用戶首先需要從Hadoop 的數(shù)據(jù)節(jié)點把文件下載到本地,然后再由相應(yīng)的軟件打開顯示給用戶。讀文件過程如下:(1)通過瀏覽器,用戶訪問運存儲的Web 操作系統(tǒng),雙擊想要訪問的文件圖標(biāo),使得eyeOS 向Hadoop 管理節(jié)點發(fā)出獲取文件請求。(2)管理節(jié)點查找要訪問的文件信息,透過數(shù)據(jù)節(jié)點把文件內(nèi)容發(fā)送到客戶端。(3)客戶端下載數(shù)據(jù)節(jié)點傳過來的文件塊,并自動將這些塊合并成一個文件。
。4)在Web 操作系統(tǒng)中,自動啟動該文件關(guān)聯(lián)的應(yīng)用程序,顯示文件內(nèi)容。
寫文件的流程:用戶對文件進(jìn)行修改,并提交保存請求,WEB 操作系統(tǒng)會將用戶修改后的文件自動上傳到云中。另外,用戶也可以自主選擇上傳文件到云存儲系統(tǒng)。(1)用戶使用瀏覽器客戶端,訪問運存儲的web 操作系統(tǒng),自動啟動相關(guān)聯(lián)的程序修改并保存想要訪問的文件,使得eyeOS 向Hadoop 節(jié)點發(fā)出上傳文件請求。(2)管理節(jié)點接收到文件上傳請求,自動計算文件大小,查找系統(tǒng)數(shù)據(jù)節(jié)點存儲狀況,分配存儲空間。(3)客戶端上傳文件塊到各個數(shù)據(jù)節(jié)點,完成文件的修改存儲。
五、結(jié)論
歸根到底,云存儲是分布式存儲技術(shù)的發(fā)展和延續(xù)。透過廣域網(wǎng),云存儲實現(xiàn)比傳統(tǒng)的分布式存儲更透明、更快速、更可靠的遠(yuǎn)程存儲訪問技術(shù)。
本文實現(xiàn)了構(gòu)建私有云存儲平臺上云存儲的管理與應(yīng)用,以hadoop 開源平臺實現(xiàn)了一個以Web 操作系統(tǒng)為云存儲接口的云存儲系統(tǒng)。下一步將繼續(xù)對系統(tǒng)進(jìn)行逆向測試、壓力測試、兼容性測試等實用性方面的測試。以及進(jìn)一步優(yōu)化的工作。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:私有云存儲平臺技術(shù)及應(yīng)用
本文網(wǎng)址:http://www.oesoe.com/html/consultation/10839712727.html