在今天,我們頻繁地地接觸到“大數據”這個術語。不過業內還是對大數據究竟是什么缺少一種標準化的定義。那么,大數據對數據存儲基礎架構中有意味著什么呢?
企業戰略集團(ESG)對大數據作出的定義是“大小規模超過常規處理能力邊界的數據集,它使得你不得不采取非常規手段。”簡單來講,我們可以將大數據這個詞使用在任何突破了傳統IT處理支撐日常業務運作能力邊界的數據集合上。
這些邊界可能會出現在以下幾種情況下:
•過高的交易數據量導致傳統的數據存儲系統達到了瓶頸,無法及時地完成各項運作任務。簡單來說其無法提供應對如此多的I/O請求的處理能力。在有些時候,用戶環境內的磁盤轉速無法應對所有的I/O請求。這往往使得用戶在每塊磁盤驅動器上放置很少一部分數據并采取“短擊控制”。這意味著通過使用磁盤的很少一部分來增加每GB數據的整體轉速,即使用更多的磁盤驅動器來處理I/O。這種情況也會導致用戶部署許多存儲系統并行使用,但卻因為性能瓶頸而不使用其全部的容量。或兩者兼而有之。這種方式代價高昂,是的購買了過多的磁盤驅動器而其中的絕大部分是空的。
•數據(單獨的記錄、文件或對象)尺寸使得傳統的系統沒有足夠的吞吐量及時傳輸數據。這可能只是由于沒有足夠的帶寬來處理交易量。但帶寬所帶來的挑戰卻非常嚴謹。我們看到許多企業采用“短擊控制”來增加系統帶寬,也增加了驅動器數量,而這又導致了低利用率和增加開銷的問題。
•整個卷容量超過了傳統的存儲系統容量所能承受的閾值。簡單來講就是存儲系統無法提供足夠的容量來處理卷內的數據。這會導致存儲蔓延成幾十或上百個存儲堆棧,又由數以十計或百計的管理節點進行管理,造成利用率低下,并消耗了大量的占地空間、能源和制冷。
這些癥狀同時出現時就會變得非常嚴重——沒有什么可以證明用戶不會同時面臨大文件所組成的大量數據,并且要求大量I/O的要求。事實上,大數據這個詞最開始出現在一些特殊的垂直行業的IT需求討論中,諸如醫療和娛樂行業組織,以及石油和天然氣公司。
支持大數據的存儲基礎架構
我們正在存儲基礎架構中尋求一種全新的變革方式來處理和大數據相關的日益增長的數據容量。每一種方式的特點都不盡相同,但又互有重疊。
在對I/O敏感的高交易量事務處理中,ESG發現應用了大量可以通過增加磁盤進行縱向擴展的基礎架構方式。這種系統是諸如EMC VMAX、IBM DS800以及HDS VSP等公司最傳統的解決方案。
在大文件尺寸的應對方面,前沿的企業在幾年之前就開始采用橫向擴展的系統,配置足夠的帶寬來處理大文件尺寸,從而解決大數據的問題。這類系統包括DataDirect Networks、Hewlett-Packard Ibrix、Isilon(現被EMC收購)以及Panasas等。這些系統通過縱向擴展(增加磁盤數量)以及橫向擴展(增加帶寬和處理器能力)來滿足性能所需。隨著大數據尺寸的問題變得日益常見,這些系統中的一部分也在尋求更為主流的商業應用。這些更主流的環境中通常混合著I/O和吞吐量敏感的高性能要求,因此橫向擴展和縱向擴展的能力都必須具備。
最后,在內容容量方面,我們正看到橫向擴展、基于對象的存儲基礎架構系統可以在單個簡易的管理系統中更輕松地擴展至數以百億的數據對象。這類系統的優勢在于其更易于管理和跟蹤魯棒的元數據,并且設計可以使用高密度、低成本的硬盤驅動器,就像Dell 的DX那樣。
關于Hadoop
沒有哪項大數據的應用和分布式計算毫無關系。分布式計算所具有的以合理的成本加快業務分析周期(從數周縮短至數小時甚至分鐘)的能力對企業非常有吸引力。這種開源的技術通常運行在廉價的服務器上,使用并不昂貴的直連存儲(DAS)。
分布式計算用于處理大量的數據,并且由兩部分構成:映射化簡(MapReduce)和分布式文件系統(HDFS)。映射化簡處理管理計算機任務的工作,而HDFS自動化地管理數據存儲于哪一個計算機群(從而降低開發設備的負載)。當一項計算任務啟動后,映射化簡接管這項任務,并將其分解成可以并行運行的子任務。映射化簡會向HDFS查詢運行各項子任務的數據存儲位置,而后將這些子任務發送到數據存儲所在的計算節點。其實,它是將計算任務發送到數據端。各項子任務的結果會送回映射化簡中心,進行整合并推導出最后的結論。
相比之下,傳統系統需要一臺非常大型而昂貴的服務器,配置足夠強勁的計算能力,以及一臺同樣代價高昂的存儲陣列來完成相同的任務。傳統系統需要以一種相對連續的方式讀取所有所需數據、運行分析操作并獲取結論,在相同的數據量下,相比基于分布式計算的映射化簡任務處理方式需要更長的處理時間。
這其中的不同可以這樣簡單概括。假如一家雜貨店中有20個人要通過同一個收銀臺。假如每個人購買價值200美元的商品,并且需要2分鐘來完成其所有采購貨物的掃描。那么即便是最佳雇員也需要40分鐘來處理這4,000美元的貨物采購。不過如果采用分布式計算的方式:會有10個收銀臺,每個收銀臺只是配置一位低成本,兼職的高校學生,其處理每一項交易需要額外的50%時間(3分鐘)。那么同樣20個人只需要6分鐘,而你仍可以獲取4,000美金。從業務角度來看,將一項工作時間從40分鐘壓縮到6分鐘意味著什么?利用多出的34分鐘你又可以完成多少額外的工作?你可以進行更多的調研并對于市場趨勢有更快的了解?這在業務方面就類似于你無須等待很久就能夠得到所要的分析結果。
分布式計算也并非完美的方案。集群文件系統非常復雜,并且很多時候這種復雜性隱藏在HDFS管理員端建立分布式集群并使其高效運行需要花費大量的時間。此外,在HDFS中,保持所有數據位置(元數據)路徑的數據映射(或稱為命名節點,NameNode)在最新發布的Apache分布式計算中存在單點故障——其中一部分重要問題將會在下一個計劃發布的主版本中解決。數據保護也依靠管理員進行控制;數據復制設置決定了每個數據文件在集群內復制的次數。默認的設置是3次,而這會使得整體容量較實際使用容量擴大了3倍。而且這只是本地集群內部的保護;遠程站點內的備份容災在現有版本的分布式計算中還未被考慮。要記住目前市場上還沒有分布式計算的大牌專家;不過,諸如Cloudera、EMC以及MapR等公司目前在培訓方面扮演著重要角色,而成形的專業團隊仍需時日。這也是不應當被忽略的一件事。最近的研究顯示利用這方面外部咨詢服務的成本每年高達250,000美元。
大數據,更大的事實
以上各類不足,結合上該商業領域的巨大潛在市場,使得諸如EMC、IBM和NetApp等大型存儲廠商關注著大數據的市場機會。各家廠商都發布了(或者其指日可待)設計用于分布式計算環境的存儲系統,在可管理性、可擴展性以及數據保護方面幫助用戶克服HDFS的欠缺點。其中大部分可以用開放式接口(比如NFS和CFS)替換HDFS存儲層,而另一些提供其自有的映射化簡框架版本,提供較開源分布更好的性能。一些提供可以填補開源HDFS差異的特性,比如通過標準的NFS和CFS接口在其它應用之間共享數據的能力,或者是數據保護和容災方面的功能。
NetApp則采取了一種完全不同的方式。其內置了開源的分布式計算標準,并在數據節點上使用DAS。不同于以分布式計算的名義使用自有的文件系統,NetApp在低端的Engenio平臺上使用SAS連接的JBOD充當DAS。而在命名節點方面,其使用NFS直連的FAS箱來提供從一個故障命名節點的快速恢復。這是“兩個領域最佳”的混合的解決問題的方式。
市場是否會愿意購買更為可靠或更具應用潛力的工具,這仍有待觀察,現在斷言還為時過早。
大數據是真實的存在的,并且各不相同:不同類型的大數據需要不同的存儲方式。如果你已經面臨大數據的各項問題,面臨一些阻礙,這表示你應當采取一些不同的方式,和供應商談論需求的最佳的途徑是直指問題本身,而不要圍繞著大數據這個話題。你應當談論業務問題和案例情況,這有助于將問題細化到某一特殊的負載上。這樣你就能快速找到對應的存儲解決之道了。