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