文/于翔
虛擬技術降低分布式存儲系統部署成本
文/于翔
校園網存儲系統可充分利用虛擬化與分布式技術的特點,采用多層次的模塊化應用,使整個存儲系統從硬件架構到軟件的應用方式變得更加靈活和易擴展,同時又因為虛擬化與分布式技術本身的安全特性,系統在數據安全性上具有先天優勢,從而實現低成本部署數據存儲服務系統,為校園網絡建設提供低成本、高擴容的存儲保證。
天津城市建設學院通過Ubuntu系統搭建開源的Hadoop存儲應用基礎,在服務器虛擬化平臺上運行,從而獲得能夠擁有更快、更穩定、更安全的硬件保障,使用iSCSI技術,盡可能降低存儲部署成本,使其能夠方便靈活地被使用。該系統是基于虛擬化的分布式校園網存儲系統,利用VMware虛擬化平臺將服務器硬件存儲資源進行整合,通過建立Lun將服務器的磁盤陣列進行劃分,組成多個磁盤邏輯,然后通過在Lun上安裝Ubuntu操作系統及搭建iSCSI服務器端,使得存儲硬件資源能夠靈活地應用在Hadoop系統中。Hadoop將部署在虛擬化硬件平臺上構成一個分布式的文件系統,通過WebDAV協議建立與客戶端服務器的應用通信。用戶可以通過訪問客戶端服務器將文件通過WebDAV以HTTPS方式傳輸到Hadoop存儲集群中保存。
該系統的設計充分利用虛擬化與分布式技術的特點,采用多層次的模塊化應用使得整個存儲系統從硬件架構到軟件的應用方式都變得靈活和易擴展,同時又因為虛擬化與分布式技術本身的安全特性,系統在數據安全性上具有先天優勢,從而實現數據存儲服務的部署低成本,為校園網絡建設提供低成本、高擴容的存儲保證。


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