文/于翔
虛擬技術(shù)降低分布式存儲(chǔ)系統(tǒng)部署成本
文/于翔
校園網(wǎng)存儲(chǔ)系統(tǒng)可充分利用虛擬化與分布式技術(shù)的特點(diǎn),采用多層次的模塊化應(yīng)用,使整個(gè)存儲(chǔ)系統(tǒng)從硬件架構(gòu)到軟件的應(yīng)用方式變得更加靈活和易擴(kuò)展,同時(shí)又因?yàn)樘摂M化與分布式技術(shù)本身的安全特性,系統(tǒng)在數(shù)據(jù)安全性上具有先天優(yōu)勢(shì),從而實(shí)現(xiàn)低成本部署數(shù)據(jù)存儲(chǔ)服務(wù)系統(tǒng),為校園網(wǎng)絡(luò)建設(shè)提供低成本、高擴(kuò)容的存儲(chǔ)保證。
天津城市建設(shè)學(xué)院通過(guò)Ubuntu系統(tǒng)搭建開(kāi)源的Hadoop存儲(chǔ)應(yīng)用基礎(chǔ),在服務(wù)器虛擬化平臺(tái)上運(yùn)行,從而獲得能夠擁有更快、更穩(wěn)定、更安全的硬件保障,使用iSCSI技術(shù),盡可能降低存儲(chǔ)部署成本,使其能夠方便靈活地被使用。該系統(tǒng)是基于虛擬化的分布式校園網(wǎng)存儲(chǔ)系統(tǒng),利用VMware虛擬化平臺(tái)將服務(wù)器硬件存儲(chǔ)資源進(jìn)行整合,通過(guò)建立Lun將服務(wù)器的磁盤(pán)陣列進(jìn)行劃分,組成多個(gè)磁盤(pán)邏輯,然后通過(guò)在Lun上安裝Ubuntu操作系統(tǒng)及搭建iSCSI服務(wù)器端,使得存儲(chǔ)硬件資源能夠靈活地應(yīng)用在Hadoop系統(tǒng)中。Hadoop將部署在虛擬化硬件平臺(tái)上構(gòu)成一個(gè)分布式的文件系統(tǒng),通過(guò)WebDAV協(xié)議建立與客戶端服務(wù)器的應(yīng)用通信。用戶可以通過(guò)訪問(wèn)客戶端服務(wù)器將文件通過(guò)WebDAV以HTTPS方式傳輸?shù)紿adoop存儲(chǔ)集群中保存。
該系統(tǒng)的設(shè)計(jì)充分利用虛擬化與分布式技術(shù)的特點(diǎn),采用多層次的模塊化應(yīng)用使得整個(gè)存儲(chǔ)系統(tǒng)從硬件架構(gòu)到軟件的應(yīng)用方式都變得靈活和易擴(kuò)展,同時(shí)又因?yàn)樘摂M化與分布式技術(shù)本身的安全特性,系統(tǒng)在數(shù)據(jù)安全性上具有先天優(yōu)勢(shì),從而實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)服務(wù)的部署低成本,為校園網(wǎng)絡(luò)建設(shè)提供低成本、高擴(kuò)容的存儲(chǔ)保證。
存儲(chǔ)系統(tǒng)采用底層云存儲(chǔ)技術(shù)與應(yīng)用層iSCSI技術(shù),為用戶提供跨系統(tǒng)應(yīng)用平臺(tái)支持。工作原理如圖1所示。
系統(tǒng)由多臺(tái)數(shù)據(jù)存儲(chǔ)服務(wù)器通過(guò)iSCSI網(wǎng)絡(luò)構(gòu)成一個(gè)龐大的數(shù)據(jù)存儲(chǔ)服務(wù)集群,每臺(tái)存儲(chǔ)服務(wù)器都由磁盤(pán)陣列通過(guò)iSCSI協(xié)議與點(diǎn)播服務(wù)器建立通信,在點(diǎn)播服務(wù)器本地生成一個(gè)磁盤(pán)鏡像。虛擬化的VMware將服務(wù)器硬件存儲(chǔ)資源進(jìn)行整合,通過(guò)建立Lun將服務(wù)器的磁盤(pán)陣列進(jìn)行劃分,組成多個(gè)磁盤(pán)邏輯,然后通過(guò)在Lun建立存儲(chǔ)資源池并提供給應(yīng)用服務(wù)器。
采用VMware ESXi Server虛擬系統(tǒng)作為應(yīng)用服務(wù)器集群底層系統(tǒng),各應(yīng)用服務(wù)器系統(tǒng)可在VMware虛擬系統(tǒng)上建立邏輯上的關(guān)聯(lián)。VMware允許多個(gè)操作系統(tǒng)并行運(yùn)行在一臺(tái)高性能服務(wù)器上,與多個(gè)高性能服務(wù)器運(yùn)行同一任務(wù),同時(shí)通過(guò)網(wǎng)絡(luò)對(duì)操作系統(tǒng)進(jìn)行備份和管理,能夠依據(jù)應(yīng)用服務(wù)使用狀況對(duì)操作系統(tǒng)實(shí)施遷移和復(fù)制,從而擴(kuò)大網(wǎng)絡(luò)應(yīng)用處理帶寬。
我們?cè)赩Mware層上安裝Ubuntu系統(tǒng)平臺(tái)以及搭建Hadoop分布式存儲(chǔ)系統(tǒng)。Hadoop系統(tǒng)能將數(shù)據(jù)同時(shí)分割成許多小塊和備份,并通過(guò)點(diǎn)播服務(wù)器(NameNode)將其存放于不同的數(shù)據(jù)存儲(chǔ)服務(wù)器中。在Hadoop的系統(tǒng)中有一臺(tái)Master,它主要負(fù)責(zé)NameNode的工作以及JobTracker的工作。JobTracker的主要職責(zé)就是啟動(dòng)、跟蹤和調(diào)度各個(gè)Slave的任務(wù)執(zhí)行。每一臺(tái)Slave通常具有Data Node的功能并負(fù)責(zé)TaskTracker的工作。TaskTracker根據(jù)應(yīng)用要求來(lái)結(jié)合本地?cái)?shù)據(jù)執(zhí)行Map任務(wù)以及Reduce任務(wù)。
在NameNode上部署WebDAV(Webbased Distributed Authoring and Versioning)應(yīng)用,實(shí)現(xiàn)應(yīng)用服務(wù)器對(duì)存儲(chǔ)資源的通信,從而讓用戶調(diào)用Hadoop上的數(shù)據(jù)。WebDAV是基于HTTP 1.1的一個(gè)通信協(xié)議。它為HTTP 1.1添加了一些擴(kuò)展(就是在GET、POST、HEAD等幾個(gè)HTTP標(biāo)準(zhǔn)方法以外添加了一些新的方法),使得應(yīng)用程序可以直接將文件寫(xiě)到應(yīng)用服務(wù)器(Application Server)上,從而替代傳統(tǒng)的FTP傳輸文件模式。
整個(gè)存儲(chǔ)系統(tǒng)硬件設(shè)備由多臺(tái)應(yīng)用服務(wù)器與iSCSI存儲(chǔ)陣列以總線型網(wǎng)絡(luò)構(gòu)成。應(yīng)用服務(wù)器上安裝VMware ESXi系統(tǒng),通過(guò)嵌入VMkernel代碼,讓該系統(tǒng)通過(guò)標(biāo)準(zhǔn)網(wǎng)絡(luò)適配器連接iSCSI存儲(chǔ)設(shè)備,在資源池中建立iSCSI SAN資源。在VMware ESXi的平臺(tái)上根據(jù)應(yīng)用需求虛擬出兩個(gè)服務(wù)器集群(如圖2),一部分集群作為應(yīng)用群,為系統(tǒng)提供內(nèi)網(wǎng)DNS服務(wù)、應(yīng)用服務(wù)、監(jiān)控服務(wù)等;另一部分作為Hadoop集群,作為整個(gè)系統(tǒng)的應(yīng)用存儲(chǔ)平臺(tái)為用戶提供存儲(chǔ)操作。兩個(gè)集群在存儲(chǔ)應(yīng)用上主要通過(guò)WebDAV協(xié)議建立通信。
該系統(tǒng)采用硬件層虛擬化與軟件層分布式存儲(chǔ)系統(tǒng)的方式,目的是實(shí)現(xiàn)整個(gè)存儲(chǔ)系統(tǒng)在硬件資源與軟件資源上的分布式靈活部署特點(diǎn)。通過(guò)硬件虛擬化可以合理地調(diào)配硬件資源,使用Hadoop的存儲(chǔ)平臺(tái)可以根據(jù)需求在已有的硬件平臺(tái)上實(shí)現(xiàn)分布式多點(diǎn)多片存儲(chǔ),在保證系統(tǒng)可擴(kuò)容前提下,對(duì)數(shù)據(jù)儲(chǔ)存的容災(zāi)性和整個(gè)系統(tǒng)穩(wěn)定性上有了新的提升。
基于服務(wù)器虛擬化(VMware)系統(tǒng),制作出的云存儲(chǔ)陣列,其中“云主機(jī)”控制云系統(tǒng)內(nèi)的服務(wù)器集群,進(jìn)行數(shù)據(jù)的寫(xiě)入與讀出,由“云主機(jī)”提供的API接口(主要是WebDAV協(xié)議也可采用其他協(xié)議)進(jìn)行與客戶應(yīng)用服務(wù)器之間的數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)備災(zāi)、數(shù)據(jù)應(yīng)用,這樣能夠盡可能地利用“云”的效率。
在圖2中,系統(tǒng)應(yīng)用主要分為存儲(chǔ)服務(wù)與應(yīng)用服務(wù)兩部分。存儲(chǔ)服務(wù)主要以Hadoop系統(tǒng)為主,通過(guò)應(yīng)用服務(wù)中的局域網(wǎng)D N S構(gòu)建頭結(jié)點(diǎn)與存儲(chǔ)結(jié)點(diǎn)關(guān)系,在局域網(wǎng)內(nèi)建立私有云存儲(chǔ)集群。WebDAV部署在Hadoop頭結(jié)點(diǎn)服務(wù)器上,通過(guò)建立映射可在Windows或Linux系統(tǒng)上建立本地文件夾,從而實(shí)現(xiàn)為應(yīng)用服務(wù)器提供存儲(chǔ)服務(wù)功能。用戶通過(guò)訪問(wèn)應(yīng)用服務(wù)器間接獲得云存儲(chǔ)資源,例如:一臺(tái)擁有WebDAV協(xié)議共享網(wǎng)絡(luò)硬盤(pán)的考試報(bào)名系統(tǒng),其MSSQL數(shù)據(jù)庫(kù)存儲(chǔ)在Hadoop中,隨著用戶注冊(cè)信息的逐年增加,系統(tǒng)可根據(jù)容量需求進(jìn)行分布式擴(kuò)容存儲(chǔ)容量。
本系統(tǒng)通過(guò)集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量不同類型的存儲(chǔ)設(shè)備通過(guò)應(yīng)用軟件集合起來(lái)協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能的一個(gè)系統(tǒng)。通過(guò)虛擬化技術(shù)將iSCSI與云存儲(chǔ)系統(tǒng)結(jié)合,為大型企業(yè)和機(jī)構(gòu)提供異地?cái)?shù)據(jù)存儲(chǔ)服務(wù),并且通過(guò)云存儲(chǔ)系統(tǒng)平臺(tái)為企業(yè)提供跨平臺(tái)服務(wù)應(yīng)用解決方案,實(shí)現(xiàn)部署靈活、可擴(kuò)展性和安全性高的特點(diǎn),從而降低數(shù)據(jù)存儲(chǔ)、應(yīng)用和維護(hù)成本。
(作者單位為天津城市建設(shè)學(xué)院)
Hadoop
Hadoop這個(gè)名字不是一個(gè)縮寫(xiě),它是一個(gè)虛構(gòu)的名字。該項(xiàng)目的創(chuàng)建者,Doug Cutting如此解釋Hadoop:“這個(gè)名字是我孩子給一個(gè)棕黃色的大象樣子的填充玩具命名的。我的命名標(biāo)準(zhǔn)就是簡(jiǎn)短,容易發(fā)音和拼寫(xiě),沒(méi)有太多的意義,并且不會(huì)被用于別處。小孩子是這方面的高手?!?/p>
Hadoop 由 Apache Software Foundation 公司于2005 年秋天作為L(zhǎng)ucene的子項(xiàng)目Nutch的一部分正式引入。它受到最先由Google Lab開(kāi)發(fā)的Map/Reduce和Google File System(GFS)的啟發(fā)。2006年3月份,Map/Reduce和Nutch Distributed File System(NDFS) 分別被納入稱為Hadoop的項(xiàng)目中。Hadoop是最受歡迎的在Internet上對(duì)搜索關(guān)鍵字進(jìn)行內(nèi)容分類的工具,但它也可以解決許多要求極大伸縮性的問(wèn)題。例如,如果要grep一個(gè)10TB的巨型文件,會(huì)出現(xiàn)什么情況?在傳統(tǒng)的系統(tǒng)上,這將需要很長(zhǎng)的時(shí)間。但是Hadoop在設(shè)計(jì)時(shí)就考慮到這些問(wèn)題,采用并行執(zhí)行機(jī)制,因此能大大提高效率。
Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。但是Hadoop是以一種可靠、高效、可伸縮的方式進(jìn)行處理的。Hadoop是可靠的,因?yàn)樗僭O(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,因此它維護(hù)多個(gè)工作數(shù)據(jù)副本,確保能夠針對(duì)失敗的節(jié)點(diǎn)重新分布處理。Hadoop是高效的,因?yàn)樗圆⑿械姆绞焦ぷ?,通過(guò)并行處理加快處理速度。Hadoop還是可伸縮的,能夠處理PB級(jí)數(shù)據(jù)。此外,Hadoop依賴于社區(qū)服務(wù)器,因此它的成本比較低,任何人都可以使用。Hadoop帶有用Java語(yǔ)言編寫(xiě)的框架,因此運(yùn)行在Linux生產(chǎn)平臺(tái)上是非常理想的。Hadoop上的應(yīng)用程序也可以使用其他語(yǔ)言編寫(xiě),比如 C++。