Hadoop虛擬化影響大數據存儲 SAN成優選?
大數據時代,Hadoop將會會大規模部署于企業之中。VMware新的vSphere Big Data Extensions (BDE) 將其開源項目Serengeti商業化,使企業管理員能夠隨心所欲地玩轉虛擬Hadoop集群。
現在,VMware已經明確表示,將要全力支持虛擬化Hadoop在企業vSphere環境中的工作負載。
然而,Hadoop的所有工作是在大量的分布式數據之上智能地映射并行計算工作。群集部署和操作對虛擬化管理員來說變得非常容易。但在虛擬環境中存儲可以有效地從計算客戶端抽離,設計底層存儲架構時有一些重要的復雜性和機會需要考慮。在虛擬環境中運行Hadoop的一些具體問題,包括考慮如何配置虛擬數據節點,如何最好地利用hypervisor服務器的本地DAS,以及何時考慮利用外部SAN/NAS。
大數據,虛擬化
虛擬化Hadoop背后的主要思想,是獲得以虛擬機部署Hadoop scale-out(橫向擴展)節點的優勢,而不是折騰商品化的物理服務器。集群可以按需置備,彈性擴張或收縮。多個虛擬Hadoop的節點可以托管在hypervisor物理服務器,虛擬機可以很容易地為一個給定的應用程序分配更多或更少的資源。hypervisor級別的HA/FT能力,可以被帶到承擔生產的Hadoop應用程序。VMware的BDE甚至包括QoS算法,以幫助動態排序集群優先級,必要時收縮低優先級的集群,確保高優先級的集群的服務水平。
顯然,虛擬化Hadoop的大問題之一性能。Hadoop的價值在于它如何有效地執行分布式數據塊上的并行算法。Hadoop的優勢,使用HDFS(Hadoop分布式文件系統)將大數據散布在多個節點,然后將并行計算任務放到每個數據節點進行初步的處理(MapReduce的“映射”部分由作業和任務跟蹤器實現)。
這個設計,每個scale-out物理節點,承載本地計算和數據共享,意在支持如搜索這樣的應用。這些應用可能經常需要抓取大量大型數據集的所有數據,這些數據集通常由低水平半或非結構化的文本和文件構成。
一般情況下,每個HDFS數據節點將由hypervisor直接分配物理主機服務器的DAS磁盤。然后HDFS將在數據節點上復制數據,默認復制兩份到不同的數據節點上。在一個物理集群上,副本由定義放置在不同的服務器節點(每臺服務器一個數據節點)。HDFS也知道,將第二個副本放在不同“機架”的節點,以幫助避免機架級的損失。
在虛擬化的世界中,Hadoop必須意識到虛擬節點的hypervisor分組,以保證良好的物理數據布局和后續工作/任務分配。這個虛擬的認識是通過Hadoop Virtual Extensions(HVE)實現,VMware將其貢獻到Apache Hadoop 1.2。
Hadoop Virtual Extensions
Hadoop Virtual Extensions打破了應用和物理主機之間的虛擬抽象。但在某些方面,Hadoop平臺可以看作是虛擬化的另一層,增加橫向擴展的數據和計算管理到hypervisor。
HVE本質上是在Hadoop層級的節點和機架之間插入一個新級別的“節點組”。節點組代表了一套虛擬的Hadoop節點,在每個給定的hypervisor服務器上,幫助告知Hadoop和HDFS管理算法。
其效果是,即使在虛擬環境中,Hadoop也可以保持“數據局部性”的知識,以保持計算任務靠近所需的數據提高性能,并為容錯確保最佳的復制位置。#p#
數據節點選項
當你虛擬化Hadoop節點,你也可以選擇從數據節點分離計算(任務跟蹤器,等等),并把他們分別放在不同的虛擬機。如果計算節點和數據節點的虛擬機仍然駐留在相同的hypervisor服務器,他們可以有效地在虛擬網絡“內存”溝通,并不會受到任何顯著的物理網絡延遲的影響。 HVE可以確保數據保持本地的關系以提高性能。
計算節點和數據節點分離,為您提供了正交尺度和配置多個計算節點共享單一的數據節點的選項。這種新的靈活性,允許優化物理服務器主機的資源利用率,雖然為每個應用程序尋得合適的比值可能需要大量的實驗。
虛擬化和分離數據節點還有其他的好處。不僅多個計算節點可以從一個群集訪問給定的數據節點,而且虛擬化意味著可以托管和配置多個Hadoop集群訪問相同的數據節點。
事實上,HDFS可以作為服務提供,當作一個更永久的數據存儲庫來管理,而各種計算“應用”可以動態地飄來飄去。通過這種方式,HDFS現在可以作為向外擴展的虛擬存儲設備提供服務。
大數據SAN?
物理Hadoop架構的成本令人信服的理由之一是避免昂貴的SAN,尤其是數據集變得更加巨大。然而,在虛擬環境中,考慮用SAN存儲一些大數據集可能是有意義的。
原因之一是,通過VMware的BDE GUI配置只計算的虛擬Hadoop集群是很簡單的,但要環繞大數據集仍然是一個挑戰。通過托管數據到外部共享存儲上,配置虛擬Hadoop的托管變得幾乎微不足道。并且hypervisor的功能,如DRS和HA也可以被充分利用。帕特·基辛格(Pat Gelsinger)在EMC World 2013大會上爽快地展示了使用外部的Isilon存儲玩轉虛擬Hadoop集群。

考慮SAN存儲另一個原因是,如果你有數據治理的顧慮。HDFS是不容易備份、保護或審計的。而SAN建有強大的數據保護(RAID比一式三份的復制使用更少的磁盤)和快照功能。這很容易保護一些大數據應用至關重要的數據,如有必要可以回滾。關注確保高性能網絡,從SAN 的性能當然也可以獲得比DAS服務器提供更高的吞吐量。
這里還值得一提的是磁盤故障恢復,因為大數據在大量的磁盤上,故障變得相當普遍。
在一個正常的Hadoop集群,一個本地磁盤故障會關閉相應的節點,然后Hadoop在它周圍繼續工作。但在一個虛擬的環境中,磁盤故障可能會關閉數據節點,但多個虛擬數據節點可以配置于每個hypervisor服務器。磁盤發生故障,虛擬數據節點不會關閉hypervisor上任何的其他虛擬Hadoop節點。
利用SAN存儲,高可用的Hadoop應用程序可能永遠不會知道磁盤故障曾經發生。
虛擬化Hadoop很瘋狂?
有許多理由為什么虛擬化Hadoop在很多使用場景有意義。作為一個虛擬的工作負載,Hadoop在一套廣泛的使用場景可以實現堪比物理主機的預期性能,同時有助于進一步鞏固和優化IT基礎架構投資。
此時,一千節點群集,有多個PB級連續使用的數據,不太可能是虛擬化的候選者。不過,我們認為,大多數組織有一些大數據的機會,數據量在10-20TB之間,他們可以從這些數據中提取價值,如果他們的IT可以提供向外擴展(scale-out)的分析解決方案,作為具有成本效益的服務。
通過虛擬Hadoop的能力,一個單一的大數據集可以很容易地共享在多個虛擬Hadoop集群之間。這創造了一個相同的存儲服務于多個客戶端的機會。消除大數據集的多個副本,降低數據遷移量,并確保更高的可用性和數據保護,Hadoop變得更易于管理,并且易于作為支持企業生產的應用。
事實上,在企業Hadoop很多的預期使用場景,托管虛擬化Hadoop到更少但相對較貴的虛擬服務器,包括潛在的昂貴的存儲選項,其總體擁有成本(TCO)仍然比采用商品化服務器構建專用的物理集群更加低廉。開源的人群開始把目光投向競爭的“Project Savannah”項目,希望把類似的功能引入OpenStack/ KVM。
共享和聯合節點的因素,易于管理,彈性配置,靈活的服務,共享數據服務和更高的可用性,可以導致成本比較有利。但我們認為,創建一個完整的Hadoop集群on demand的能力,有效地“精簡置備”是足夠誘人,對于許多在現有的vSphere平臺上低風險嘗試vSphere Big Data Extensions的組織。我們相信這將導致顯著的采納。