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