隨著云計算在全球范圍內的高速發展,谷歌、亞馬遜等企業的崛起,特別是"互聯網+"深入融合背景下的業務云化需求,傳統企業在數據中心建設中被動地徘徊在傳統存儲陣列與分布式存儲兩種體系存儲架構之間。這兩種存儲結構并沒有絕對的優劣之分,而大數據的繁盛讓分布式存儲架構近幾年中獲得了前所未有的關注。
傳統存儲于分布式系統
傳統SAN以高度的可靠性、穩定性和功能豐富性,在應用實踐中獲得了廣泛認可。隨著數據量不斷增加,企業對于數據存儲可擴展性提出要求,分布式存儲系統逐步成為擴展性強、價格低廉的選擇。
考量分布式存儲的關鍵技術主要包括:全局名字空間、緩存一致性、安全性、可用性和可擴展性。從數據形態來劃分,主要有:結構化數據、非機構化數據和半結構化數據。
GFS、AFS和Lustre成為主流的三種分布式存儲文件系統。其中,GFS(Google file system)被稱為谷歌文件系統,其性能、可擴展性、可靠性和可用性都收到了肯定,主要部件包括一個Master和n個chunkserver,和Chunk Server(數據塊服務器)同時可以被多個客戶Client訪問。
GFS架構
不同于傳統的文件系統,GFS不再將組建錯誤當成異常,而是將其看做一種常見情況予以處理。對待文件的大小一直是文件系統要考慮的問題,對于任何一種文件系統,成千上萬的幾KB的系統,總會壓死內存,所以,對于大型的文件, 管理要高效,對于小型文件也要支持,但是并沒有進行優化。
在GFS中chunk server大小被固定為64MB,這樣的塊規模比一般的文件系統的塊規模要大得多,可以減少元數據metadata開銷,減少Master的交互,但太大的塊規模也會產生內部碎片,或者同一個Chunk中存在多個小文件可能產生訪問熱點。
GFS主要運行在大量運行Linux系統的普通機器上,從而降低了其硬件成本。但一系列冗余備份、快速恢復等技術保證其正常和高效運行,GFS也是實現非結構化數據的主要技術和文件系統。
AFS是Andrew File System的簡稱。AFS將文件系統的可擴展性放在了設計和實踐的首要位置,因此AFS擁有過很好的擴展性,能夠輕松支持數百個節點,甚至數千個節點的分布式環境。AFS由卡內基美隆大學最初設計開發,目前已經相當成熟,用于研究和部分大型網絡之上。
AFS概況
AFS主要組建包括:Cells、AFS clients、基本存儲單元Volumes、AFS servers和Volume replication。AFS實現的是模塊化的,并不要求在每臺服務器上運行所有服務器進程。AFS擁有良好可擴展性,客戶端華村能夠帶來性能的提升和可用性的提高、AFS的缺點在于管理員界面友好性不足,需要更多的專業知識來支持AFS。
Lustre是HP,Intel,Cluster File System公司聯合美國能源部開發的Linux集群并行文件系統,名稱來源于Linux和Clusters。同時Lustre也是一個遵循GPL許可協議的開源軟件,Lustre也被稱為平行分布式文件系統,常用于大型計算機集群和超級電腦中。
Lustre架構圖
Lustre的主要組建包括:元數據服務器(Metadataservers, MDSs)、對象存儲服務器(objectstorage servers, OSSs)和客戶端。其中MDSs提供元數據服務,MGS管理服務器提供Lustre文件系統配置信息,OSS對象存儲服務器expose塊設備提供數據。
Lustre文件系統針對大文件讀寫進行了優化,能夠提高性能的IO能力;在源數據獨立存儲、服務和網絡失效的快速恢復、基于意圖的分布式鎖管理和系統可快速配置方面優異。