【問題描述】目前,公司在進行容器云技術(shù)選型,計劃采用商業(yè)產(chǎn)品,已接觸華為、RANCHER、阿里等產(chǎn)品提供商,現(xiàn)想了解相應(yīng)的分布式存儲如何匹配,HDFS、CEPH、GFS、GPFS、Swift等分布式存儲,采用哪種更好,主要場景是容器存儲應(yīng)用日志、配置文件、非結(jié)構(gòu)化數(shù)據(jù)文件等,請各位大神持續(xù)指導(dǎo)。(@yin986 軟件架構(gòu)設(shè)計師 某保險)
@Steven99 軟件架構(gòu)設(shè)計師
日志文件隨著時間會是個很大的量,所以建議考慮統(tǒng)一的日志中心存儲處理,可以用es等,備份到hdfs。
配置文件在量上通常不是個問題,可以考慮配置中心統(tǒng)一管理,無需額外存儲。
非結(jié)構(gòu)化數(shù)據(jù)通常是大量的文件,可以采用傳統(tǒng)nas或分布式對象存儲,當(dāng)然資金充??梢圆少徍玫拇鎯?,存儲性能很重要,根據(jù)業(yè)務(wù)重要程度選擇不同的存儲。
@Garyy 某保險系統(tǒng)工程師
容器存儲的持久化,對于有狀態(tài)數(shù)據(jù)的容器使用場景來說至關(guān)重要。因此,在技術(shù)選型的時候,需要明確存儲的具體需求。存儲按照數(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)被設(shè)計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。但同時,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,來實現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。
HDFS有著高容錯性(fault-tolerant)的特點,并且設(shè)計用來部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現(xiàn)流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
2.GFS
GFS是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進行訪問的應(yīng)用。它運行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務(wù)。
3.GPFS
GPFS(General Parallel File System ,GPFS) 是 IBM 公司第一個共享文件系統(tǒng),起源于 IBM SP 系統(tǒng)上使用的虛擬共享磁盤技術(shù)( VSD )。作為這項技術(shù)的核心, GPFS 是一個并行的磁盤文件系統(tǒng),它保證在資源組內(nèi)的 所有節(jié)點可以并行訪問整個文件系統(tǒng);而且針對此文件系統(tǒng)的服務(wù)操作,可以同時安全地在 使用此文件系統(tǒng)的多個節(jié)點上實現(xiàn)。 GPFS 允許客戶共享文件,而這些文件可能分布在不同節(jié)點的不同硬盤上;它提供了許多標(biāo)準(zhǔn)的 UNIX 文件系統(tǒng)接口,允許應(yīng)用不需修改或者重新編輯就可以在其上運行。
4.CEPH
Ceph是一個可靠地、自動重均衡、自動恢復(fù)的分布式存儲系統(tǒng),根據(jù)場景劃分可以將Ceph分為三大塊,分別是對象存儲、塊設(shè)備存儲和文件系統(tǒng)服務(wù)。在虛擬化領(lǐng)域里,比較常用到的是Ceph的塊設(shè)備存儲,比如在OpenStack項目里,Ceph的塊設(shè)備存儲可以對接OpenStack的cinder后端存儲、Glance的鏡像存儲和虛擬機的數(shù)據(jù)存儲,比較直觀的是Ceph集群可以提供一個raw格式的塊存儲來作為虛擬機實例的硬盤。
Ceph相比其它存儲的優(yōu)勢點在于它不單單是存儲,同時還充分利用了存儲節(jié)點上的計算能力,在存儲每一個數(shù)據(jù)時,都會通過計算得出該數(shù)據(jù)存儲的位置,盡量將數(shù)據(jù)分布均衡,同時由于Ceph的良好設(shè)計,采用了CRUSH算法、HASH環(huán)等方法,使得它不存在傳統(tǒng)的單點故障的問題,且隨著規(guī)模的擴大性能并不會受到影響。
5.Swift
Swift 最初是由 Rackspace 公司開發(fā)的高可用分布式對象存儲服務(wù),并于 2010 年貢獻給 OpenStack 開源社區(qū)作為其最初的核心子項目之一,為其 Nova 子項目提供虛機鏡像存儲服務(wù)。Swift 構(gòu)筑在比較便宜的標(biāo)準(zhǔn)硬件存儲基礎(chǔ)設(shè)施之上,無需采用 RAID(磁盤冗余陣列),通過在軟件層面引入一致性散列技術(shù)和數(shù)據(jù)冗余性,犧牲一定程度的數(shù)據(jù)一致性來達(dá)到高可用性和可伸縮性,支持多租戶模式、容器和對象讀寫操作,適合解決互聯(lián)網(wǎng)的應(yīng)用場景下非結(jié)構(gòu)化數(shù)據(jù)存儲問題。