大多數有關大數據分析的討論均涉及由網絡流量,交易數據庫或者程序輸出產生的以百萬數量計的小文件。但事實上是,有關大數據的討論不應局限于此,我們也需要關注如何處理大型文件和大型數據。使用場景會包含“大數據歸檔”以及類似的應用,在針對大文件存儲的存儲設計時,也需要將其獨一無二的特性考慮進去。
大文件數據應用配置存儲重要嗎?
大文件數據的定義
通常說來,大文件數據會包含圖片或者影像數據,一般會是電影或者電視。這些場景的制作過程會產生大量的數據,但最終的產品卻不一定會占用如此大的空間。通常針對不同的觀看平臺和市場會有不同格式和類型的數據源。并且這類型的數據還在不斷增長,隨著新興技術的發展,高清,3D,4K等等場景的需求,在增加影片分辨率的同時也在增加對這類數據存儲處理的需求。影像市場的發展也帶動了電腦攝像頭以及廉價的攝影器材市場。有關于這類會動的圖片,文件大小與影片長度相關,是幾小時的還是幾天的錄制。另外,攝像工具的分辨率也和文件大小相關,例如需要和手機級別的百萬像素攝像頭拍出來的照片放在個人存儲上看的效果類似。
不可移動的物體:當存儲系統達到了無法再擴展的容量的時候,或者訪問延時和吞吐量達到極限的時候,通常就到了需要遷移到新系統的時候。然而對于大文件數據應用而言,遷移幾乎是不可能實現的。很少有業務或者組織會允許足夠的宕機時間來遷移數PB級別的數據,尤其是當新數據還在不斷往里寫入的時候。就像那個術語“不可移動的物體”,大文件歸檔有一天真的可能大到傳統架構無法管理。
就像修房子那樣,一旦架構建立好且進入運行,通常就很難改變。正因為如此,大文件數據存儲架構設計之初就需要考慮最大可能的升級靈活度,且升級過程中盡可能小影響。
長期保留:對數據長期保留的需求不僅限于大文件數據應用,任何文件到了10GB或者100GB以上的時候,對這些數據的保留就很快成為了一個問題。數據保留問題與大小關系不大,但問題是人們需要保留的這些數據通常都是影像數據。例如像視頻或者音頻數據。
長期數據保留一直以來均來自法規的需求,而現在長期保留數據的需求則可能來自于對這些數據的重新使用或者從安全角度考慮。一個好例子就是監控錄像。過去錄像由于法規需求就都歸檔保存起來,而現在保存則是因為要分析消費者的消費行為習慣。
為了存儲這些數據也同時意味著增加運營商的成本消耗。要將成百TB級別的數據保存數年不是一件小事,但是更需要考慮的是保存這些數據所需要耗費的電力,存儲空間以及即便是最廉價的磁盤存儲上的花費。
人力消耗:在許多的大數據分析應用里,由于分析是由計算機產生的,因此數據大都存儲在相同的數據中心里,并通過Hadoop集群進行管理。但是對大文件數據場景,這些數據通常是人為分析,但人并不會住在數據中心里。當人們希望在家里的平板電腦上分析或者在回家路上用智能手機進行分析時,存儲架構就需要以更合適的方式交付數據。
大多數文件都是按順序分析的,故而需要流化操作,通常通過低帶寬的連接方式,并且這些大數據文件也不能被切片和重組。為了能支持這樣的類型,許多大文件數據存儲池都會需要一個隨機訪問存儲池,這樣當開始傳輸的時候就可以連續不斷的傳輸數據,同時也緩存剩下的數據。但是數據存儲層需要足夠的大且足夠的可擴展,因為不僅需要能包含文件的第一部分,還需要能支撐歸檔不斷增長的需求。
設計大文件數據存儲系統
為了應對大文件數據所特有的挑戰,存儲架構的設計需要特別的考慮。比如說,不可移動的對象方面的挑戰意味著需要將靈活性最大可能的考慮進去。除此之外,架構本身也需要允許存儲系統能夠在線擴展,以類似搭積木的方式。不僅作為一個可擴展存儲,這些系統通常需要囊括多種類型的存儲型號以及全局文件系統。它們需要能夠在磁帶存儲最長名稱的數據,并且為了特定的應用增加磁盤存儲節點。這種混合類型的存儲方式可能需要磁盤不僅具有高性能,高容量,有時候甚至需要和閃存盤混合使用。
舉例說明,SGI公司的DMF能夠實現橫向和縱向的擴展,意味著一方面可以并行擴展以增加性能處理節點,同時容量上也能同時擴展以保證成本維持在恒定單位水平。這類模塊化的架構同樣包括了后端的并行數據處理節點能夠提供快速的文件訪問后端資源能力。帶來的結果是,雖然是同一品牌的產品,在不同場景和需求下部署出來的結果也是不盡相同的。
一家大型提供天氣分析服務的政府機構在過去的20年中經理了數據爆發式增長的過程。如今他們所管理的數據總量已經超過了60PB,系統后端每天需要處理近300TB的數據,與此同時需要提供超過每秒100GB的文件訪問吞吐能力給NFS客戶端。正是在基于SGI公司的DMF系統的52個1U服務器節點配置才能讓他們完成這樣的任務,每個1U節點提供2GB每秒的吞吐量給前端客戶端。6個1U后端數據處理節點以光纖通道的方式提供60GB每秒數據的吞吐服務,這樣使得數據能在后端不同層級的存儲之間移動。在這樣的方式下,整個架構就以最優化且最省成本的方式以滿足不斷增加的性能要求。
LTFS線性文件系統讓磁帶成為大文件數據的選擇
LTFS線性磁帶文件系統是基于文件開放格式的跨平臺文件系統,它本身由LTO聯盟開發并兼容不同類型的LTO磁帶。通過在每個磁帶上創建索引分區,LTFS允許存放在磁帶上的文件可以類似磁盤的方式實現搜索功能。明確說來,這類型文件仍然是需要被線性傳輸的,但LTFS本身增強了磁帶在這方面的功能。除此,LTFS還實現了每個磁帶盒“自我描述”功能,用戶能很快大致知道磁帶里面的文件是什么。
磁帶對于大文件數據系統尤其重要
考慮到對大文件數據存儲池大小的需求,以及事實上許多數據本身并沒有明確的過期時間,就暗示了我們使用磁帶的可能性。傳統方式下很難從經濟角度考慮存放這些數據的可能性,此外還有電力成本的損壞,空調的費用以及存放這些設備所需的物理空間租賃費用等等。
除了成本方面的考量,磁帶本身也有不少讓人羨慕的性能優勢,尤其是在處理大文件需要將流數據從資源池中拿出和放入的時候。拿LTO-6舉個例子,能夠提供每秒160MB的文件吞吐能力。若能良好的設計,前端放上足夠隨機訪問的存儲,例如閃存,磁帶就可以以較為有效的方式作為大文件數據的存儲。
傳統看來,基于磁帶的歸檔方式還是有些復雜。大文件以文件的形式存放在文件系統上,而磁帶卻不能以文件的形式存放。因此這些架構需要能夠基于文件的接口到用戶和應用前端的特殊的歸檔軟件以實現,同時也需要能夠與后端的磁帶驅動器通信。如今,線性磁帶文件系統LTFS,作為開放系統磁帶接口,簡化磁帶訪問的同時也能提升其靈活度。
然而大文件數據存儲需要不僅僅是磁帶庫和磁盤緩存的組合。假設對大文件有訪問方面的需求,對象存儲系統就是很好的選擇因為它們通常具有很好的橫向擴展能力,能高效的擴展到上PB級別,相比傳統基于RAID的存儲系統更有效率。
對象存儲的優勢 大文件數據存儲系統現在的構建模式為多磁盤層級以滿足實時分析及快速訪問形式,亦有磁帶層級作為長期歸檔層級使用。例如像昆騰公司的對象存儲系統Lattus,能夠提供足夠大容量的存儲空間給前端,甚至還能提供大容量的基于磁帶的大文件資源池以支撐全局可用性,常用于動畫制作以及廣播行業。使用復雜的分析技術,這些公司可以實現將文件按照地理區域存放,這樣就可以以就近原則訪問這些數據,此外在訪問前,甚至可以實現“批量遷移”至合適的存儲層級上。