HDFS、Ceph、GFS、GPFS、Swift、Lustre……容器云選擇哪種分布式存儲更好?
容器云在使用分布式存儲時,HDFS、CEPH、GFS、GPFS、Swift等分布式存儲哪種更好?
公司在進行容器云技術選型,想了解相應的分布式存儲如何匹配,HDFS、CEPH、GFS、GPFS、Swift等分布式存儲,采用哪種更好,主要場景是容器存儲應用日志、配置文件、非結(jié)構(gòu)化數(shù)據(jù)文件等。
問題來自@yin986 某保險軟件架構(gòu)設計師,下文來自twt社區(qū)眾多同行實踐經(jīng)驗分享。
@Steven99 軟件架構(gòu)設計師:
日志文件隨著時間會是個很大的量,所以建議考慮統(tǒng)一的日志中心存儲處理,可以用es等,備份到hdfs。
配置文件在量上通常不是個問題,可以考慮配置中心統(tǒng)一管理,無需額外存儲。
非結(jié)構(gòu)化數(shù)據(jù)通常是大量的文件,可以采用傳統(tǒng)nas或分布式對象存儲,當然資金充??梢圆少徍玫拇鎯?,存儲性能很重要,根據(jù)業(yè)務重要程度選擇不同的存儲。
@Garyy 某保險系統(tǒng)工程師:
容器存儲的持久化,對于有狀態(tài)數(shù)據(jù)的容器使用場景來說至關重要。因此,在技術選型的時候,需要明確存儲的具體需求。存儲按照數(shù)據(jù)類型來分,可以分為塊存儲,對象存儲,文件存儲。我們傳統(tǒng)的環(huán)境中,使用最多的還是塊存儲和文件存儲。隨著IT的更新?lián)Q代,現(xiàn)在對于對象存儲(非結(jié)構(gòu)化數(shù)據(jù))的需求日益旺盛,對象存儲在對一些Key-Value型數(shù)據(jù)的存儲有著天然的優(yōu)勢,再加上其分布式,副本/糾刪碼等可以匹配傳統(tǒng)存儲的特性,日益成為溫數(shù)據(jù)/冷數(shù)據(jù)存儲的不二之選。
HDFS/CEPH/GFS/GPFS/Swift這類分布式存儲,按照存儲的類型來區(qū)分,HDFS/GPFS/GFS屬于文件存儲,CEPH屬于統(tǒng)一存儲--即塊/對象/文件統(tǒng)一體,Swift屬于對象存儲-目前屬于OpenStack下面的一個子項目。
1)HDFS
Hadoop分布式文件系統(tǒng)(HDFS)被設計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。但同時,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應用。HDFS放寬了一部分POSIX約束,來實現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。
HDFS有著高容錯性(fault-tolerant)的特點,并且設計用來部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)來訪問應用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現(xiàn)流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
2)GFS
GFS是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進行訪問的應用。它運行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。
3)GPFS
GPFS(General Parallel File System ,GPFS) 是 IBM 公司第一個共享文件系統(tǒng),起源于 IBM SP 系統(tǒng)上使用的虛擬共享磁盤技術( VSD )。作為這項技術的核心, GPFS 是一個并行的磁盤文件系統(tǒng),它保證在資源組內(nèi)的 所有節(jié)點可以并行訪問整個文件系統(tǒng);而且針對此文件系統(tǒng)的服務操作,可以同時安全地在 使用此文件系統(tǒng)的多個節(jié)點上實現(xiàn)。GPFS 允許客戶共享文件,而這些文件可能分布在不同節(jié)點的不同硬盤上;它提供了許多標準的 UNIX 文件系統(tǒng)接口,允許應用不需修改或者重新編輯就可以在其上運行。
4)CEPH
Ceph是一個可靠地、自動重均衡、自動恢復的分布式存儲系統(tǒng),根據(jù)場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設備存儲和文件系統(tǒng)服務。在虛擬化領域里,比較常用到的是Ceph的塊設備存儲,比如在OpenStack項目里,Ceph的塊設備存儲可以對接OpenStack的cinder后端存儲、Glance的鏡像存儲和虛擬機的數(shù)據(jù)存儲,比較直觀的是Ceph集群可以提供一個raw格式的塊存儲來作為虛擬機實例的硬盤。
Ceph相比其它存儲的優(yōu)勢點在于它不單單是存儲,同時還充分利用了存儲節(jié)點上的計算能力,在存儲每一個數(shù)據(jù)時,都會通過計算得出該數(shù)據(jù)存儲的位置,盡量將數(shù)據(jù)分布均衡,同時由于Ceph的良好設計,采用了CRUSH算法、HASH環(huán)等方法,使得它不存在傳統(tǒng)的單點故障的問題,且隨著規(guī)模的擴大性能并不會受到影響。
5)Swift
Swift 最初是由 Rackspace 公司開發(fā)的高可用分布式對象存儲服務,并于 2010 年貢獻給 OpenStack 開源社區(qū)作為其最初的核心子項目之一,為其 Nova 子項目提供虛機鏡像存儲服務。Swift 構(gòu)筑在比較便宜的標準硬件存儲基礎設施之上,無需采用 RAID(磁盤冗余陣列),通過在軟件層面引入一致性散列技術和數(shù)據(jù)冗余性,犧牲一定程度的數(shù)據(jù)一致性來達到高可用性和可伸縮性,支持多租戶模式、容器和對象讀寫操作,適合解決互聯(lián)網(wǎng)的應用場景下非結(jié)構(gòu)化數(shù)據(jù)存儲問題。
@fanyqing 某銀行 高級工程師:
1)Ceph的特點
Ceph支持對象存儲、塊存儲和文件存儲服務,故稱為統(tǒng)一存儲。
采用CRUSH算法,數(shù)據(jù)分布均衡,并行度高,不需要維護固定的元數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)具有強一致,確保所有副本寫入完成才返回確認,適合讀多寫少場景。
去中心化,MDS之間地位相同,無固定的中心節(jié)點。
Ceph存在一些缺點:
去中心化的分布式解決方案,需要提前做好規(guī)劃設計,對技術團隊的要求能力比較高。
Ceph擴容時,由于其數(shù)據(jù)分布均衡的特性,會導致整個存儲系統(tǒng)性能的下降。
2)GFS特點
適合大文件場景的應用,特別是針對GB級別的大文件,適用于數(shù)據(jù)訪問延時不敏感的搜索類業(yè)務。
中心化架構(gòu),只有1個master處于active狀態(tài)。
緩存和預取,通過在client端緩存元數(shù)據(jù),盡量減少與master的交互,通過文件的預讀取來提升并發(fā)性能。
高可靠性,master需要持久化的數(shù)據(jù)會通過操作日志與checkpoint的方式存放多份,故障后master會自動切換重啟。
3)HDFS的特點(vs GFS)
分塊更大,每個數(shù)據(jù)塊默認128MB;
不支持并發(fā),同一時刻只允許一個寫入者或追加者;
過程一致性,寫入數(shù)據(jù)的傳輸順序與最終寫入順序一致;
Master HA,2.X版本支持兩個NameNode,(分別處于Active和Standby狀態(tài)),故障切換時間一般幾十秒到數(shù)分鐘。
HDFS適合的應用場景:
適用于大文件、大數(shù)據(jù)處理,處理數(shù)據(jù)達到 GB、TB、甚至PB級別的數(shù)據(jù)。
適合流式文件訪問,一次寫入,多次讀取。
文件一旦寫入不能修改,只能追加。
HDFS不適合的場景:
低延時數(shù)據(jù)訪問。
小文件存儲。
并發(fā)寫入、文件隨機修改。
4)Swift特點
原生的對象存儲,不支持實時的文件讀寫、編輯功能。
完全對稱架構(gòu),無主節(jié)點,無單點故障,易于大規(guī)模擴展,性能容量線性增長。
數(shù)據(jù)實現(xiàn)最終一致性,不需要所有副本寫入即可返回,讀取數(shù)據(jù)時需要進行數(shù)據(jù)副本的校驗。
是OpenStack的子項目之一,適合云環(huán)境的部署。
Swift的對象存儲與Ceph提供的對象存儲區(qū)別:客戶端在訪問對象存儲系統(tǒng)服務時,Swift要求客戶端必須訪問Swift網(wǎng)關才能獲得數(shù)據(jù)。而Ceph可以在每個存儲節(jié)點上的OSD(對象存儲設備)獲取數(shù)據(jù)信息; 在數(shù)據(jù)一致性方面,Swift的數(shù)據(jù)是最終一致,而Ceph是始終跨集群強一致性)
5)Lustre特點
支持數(shù)萬個客戶端系統(tǒng),支持PB級存儲容量,單個文件最大支持320TB容量。
支持RDMA網(wǎng)絡,大文件讀寫分片優(yōu)化,多個OSS能獲得更高的聚合帶寬。
缺少副本機制,存在單點故障。如果一個客戶端或節(jié)點發(fā)生故障,存儲在該節(jié)點上的數(shù)據(jù)在重新啟動前將不可訪問。
適用高性能計算HPC領域,適用于大文件連續(xù)讀寫。
幾種主流分布式存儲技術的特點比較如下:
























