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