從一份Gartner報(bào)告談容器原生存儲(chǔ)
從Garnter的報(bào)告談起
筆者接觸存儲(chǔ)產(chǎn)品比較早。從最初的HP MSA、EVA、XP、IBM DS8800等高端硬件存儲(chǔ),到GPFS、vSAN、Gluster等軟件定義存儲(chǔ)。而近兩年,筆者隨著閱歷和見識(shí)的增加,在看待技術(shù)方案上,比以前理性和客觀。所以給客戶的建議,也往往更加中肯一些。
在存儲(chǔ)界,每一種存儲(chǔ)的產(chǎn)品,都有其各自的優(yōu)勢(shì)。沒有兼顧容量大、性能高、功能強(qiáng)、價(jià)格低的四方面的完美方案,那樣宣傳和賣假藥的沒有分別。而我們用某一項(xiàng)技術(shù)和方案,也是用其長(zhǎng)而避其短。
前兩天看到了一份Gartner發(fā)布的名為《Critical Capabilities for Distributed File Systems》報(bào)告。該報(bào)告介紹和對(duì)比了幾個(gè)主流分布式文件系統(tǒng)的方案,并做出評(píng)判和打分。筆者認(rèn)為比較客觀,本文就此展開討論。
Gartner針對(duì)分布式文件系統(tǒng)的評(píng)判,基于5個(gè)使用場(chǎng)景,如下:
場(chǎng)景1:歸檔
場(chǎng)景2:備份
場(chǎng)景3:高性能運(yùn)算
場(chǎng)景4:大目錄
場(chǎng)景5:數(shù)據(jù)分析
在上述排名中,整體上看,整體排在前面的,顯然IBM的Spectrum Scale和Dell EMC Isilon整體表現(xiàn)不分伯仲。 EMC Isilon是包含硬件的解決方案,IBM Spectrum Scale前身是GPFS,是軟件定義存儲(chǔ)解決方案。在EMC和IBM后,Redhat GlusterFS在一些場(chǎng)景中占據(jù)優(yōu)勢(shì)。
可能一些朋友對(duì)GlusterFS了解不是很多。這里大致進(jìn)行一下介紹。
Gluster是紅帽2011年10月收購(gòu)的一個(gè)軟件定義存儲(chǔ)產(chǎn)品。
目前,Gluster是一個(gè)開源項(xiàng)目(http://www.gluster.org/)。Redhat Gluster的最新版本是3.3。
既然我們談?dòng)萌酥L(zhǎng),先看看Gartner對(duì)Gluster的正面評(píng)價(jià):
和社區(qū)版GlusterFS相比,Redhat GlusterFS具有更強(qiáng)的穩(wěn)定性、功能也更強(qiáng)。Redhat GlusterFS PB級(jí)存儲(chǔ)擴(kuò)展容量、具有快照、本地復(fù)制、異地復(fù)制的功能。GlusterFS支持多種對(duì)外協(xié)議:SMB、CIFS、NFS、FUSE。Gluster支持在物理機(jī)、虛擬機(jī)(KVM、vSphere等)、公有云上的部署。Gluster最多可以擴(kuò)展到128個(gè)節(jié)點(diǎn)。
GlusterFS對(duì)于對(duì)容量要求比較大的客戶而言,是一個(gè)非常好的選擇。Gartner的觀點(diǎn)是:GlusterFS最適用的場(chǎng)景有:富媒體、備份和恢復(fù)以及近線歸檔。
那么,GlusterFS的短處是什么?Gartner的觀點(diǎn)是:GlusterFS并未針對(duì)小型和隨機(jī)I / O工作負(fù)載進(jìn)行優(yōu)化,缺少對(duì)壓縮和重復(fù)數(shù)據(jù)刪除的本地支持。所以,對(duì)于關(guān)系型數(shù)據(jù)庫(kù),隨機(jī)小I/O很高的場(chǎng)景,仍然建議使用集中存儲(chǔ)。
從技術(shù)角度看,Gartner對(duì)GlusterFS的評(píng)判基本中肯。而實(shí)際上,除了Gartner提到的三個(gè)場(chǎng)景外,GlusterFS與紅帽KVM方案RHV對(duì)接,可以為KVM Hypervisor提供共享存儲(chǔ)空間,也是一個(gè)非常實(shí)用的場(chǎng)景。將虛擬機(jī)的數(shù)據(jù)文件存放在GlusterFS上,正好發(fā)揮了它對(duì)于大文件存儲(chǔ)和讀寫的優(yōu)勢(shì)。
除了適用于富媒體、備份和恢復(fù)以及近線歸檔、對(duì)接KVM虛擬化之外,GlusterFS還有一個(gè)重要是使用場(chǎng)景:容器。
Container-native storage 容器原生存儲(chǔ)
我們先看一個(gè)問題:容器到底需要什么樣的存儲(chǔ)?
我們知道,K8S已經(jīng)成為容器編排工具的標(biāo)準(zhǔn)。因此,容器需要的存儲(chǔ):
1.該存儲(chǔ)必須原生支持K8S
2.該存儲(chǔ)支持容器讀寫模式必須要全面
3.該存儲(chǔ)最好同時(shí)支持本地方式和公有云方式,以便容器可以靈活遷移。
第一點(diǎn),GlusterFS在較早版本就已經(jīng)開始與K8S集成:
第二點(diǎn),基于各種存儲(chǔ)創(chuàng)建PV以后,對(duì)容器(Pod)的讀寫模式支持列表如下:
我們看到,GlusterFS同時(shí)支持ReadWriteOnce、ReadOnlyMany、ReadWriteMany三種訪問方式。
三種訪問方式描述如下:
ReadWriteOnce – the volume can be mounted as read-write by a single node
ReadOnlyMany – the volume can be mounted read-only by many nodes
ReadWriteMany – the volume can be mounted as read-write by many nodes
真正做過(guò)容器云的項(xiàng)目的同學(xué)都比較清楚,ReadWriteMany模式,對(duì)于容器的伸縮的重要性非常高。容器的存儲(chǔ)做不到ReadWriteMany方式訪問,容器的彈性伸縮猶如紙上談兵。
第三點(diǎn),Gluster對(duì)公有云和本地存儲(chǔ)模式的統(tǒng)一支持。
實(shí)際上,GlusterFS在比較早的時(shí)候,就已經(jīng)支持幾類公有云:
GlusterFS與Openshift 3.7集成的新功能
最近,紅帽發(fā)布了Openshift3.7。Openshift3.7與Gluster的集成功能得到進(jìn)一步增強(qiáng),主要有四大提升。我們依次看一下。
第一大提升:
由于GlusterFS增加了Brick-mutliplexing功能(http://blog.gluster.org/brick-multiplexing-in-gluster-3-10/),這使得GlusterFS在支持Openshift的時(shí)候,PV的密度可以比以前增加三倍。也就是說(shuō),三個(gè)節(jié)點(diǎn)的Gluster集群,可以提供超過(guò)1000個(gè)PV,300個(gè)基于block的PV(關(guān)于Gluster對(duì)塊的支持,在后面會(huì)做介紹)。
第二大提升:
Gluster對(duì)Openshift的支持,不僅可以使用傳統(tǒng)的文件系統(tǒng)方式(FUSE),也可以為Openshift提供塊接口。
Gluster增加iscsi接口的目的,是為了提高ElasticSearch,PostgreSQL、Cassandra等Openshift內(nèi)部數(shù)據(jù)庫(kù)組件的性能。
Gluster在后續(xù)3.6版本,還會(huì)添加S3接口 ,目的是允許在OpenShift中運(yùn)行的應(yīng)用程序,訪問以對(duì)象方式存儲(chǔ)在GlusterFS卷上的數(shù)據(jù)。
第三大提升:
Gluster目前支持包含組件和應(yīng)用在內(nèi)的,所有和Openshift相關(guān)的內(nèi)容。
在Openshift中,需要用到外部持久存儲(chǔ)的組件有:
日志系統(tǒng)數(shù)據(jù)、監(jiān)控系統(tǒng)數(shù)據(jù)、集成鏡像庫(kù)、外部鏡像倉(cāng)庫(kù)、應(yīng)用持久數(shù)據(jù)。
在之前的Openshift版本,Gluster對(duì)五類數(shù)據(jù)提提供的存儲(chǔ)訪問方式都是FUSE方式。但我們知道,在日志系統(tǒng)數(shù)據(jù)、監(jiān)控系統(tǒng)數(shù)據(jù)里,其實(shí)是有數(shù)據(jù)庫(kù)elasticsearch 和cassandra 的,對(duì)數(shù)據(jù)庫(kù)而言,訪問存儲(chǔ)的最佳方式是塊設(shè)備。因而在Openshift3.7中,Gluster可以以iSCSI方式為這兩類數(shù)據(jù)庫(kù)提供持久存儲(chǔ),這樣可以提升數(shù)據(jù)庫(kù)性能。
第四大提升
在Openshift3.7中,glusterfs和Openshift超融合模式的安裝,更加加單。也就是Openshift和Gluster可以一起部署。
最后,針對(duì)Openshift的應(yīng)用場(chǎng)景,我們對(duì)GlusterFS、Ceph RBD以及NFS的優(yōu)缺點(diǎn)進(jìn)行分析:
綜合以上參數(shù),Openshift平臺(tái)優(yōu)先Gluster,Openstack優(yōu)先Ceph RBD,當(dāng)不考慮成本及易用性的角度可以用NFS。
總結(jié):
如本文開頭所說(shuō),沒有任何一個(gè)技術(shù)是完美的。我們?cè)谧黾夹g(shù)選擇的時(shí)候,要用其長(zhǎng)處。
GlusterFS作為分布式文件系統(tǒng),在傳統(tǒng)的富媒體、備份和恢復(fù)以及近線歸檔具有一定優(yōu)勢(shì)。此外,GlusterFS和紅帽的KVM虛擬化RHV,也是紅帽最佳搭檔方案。而在容器風(fēng)靡天下的今天,GlusterFS與K8S實(shí)現(xiàn)了完美集成,可以非常好地支持容器云,并且為紅帽O(jiān)penshift容器云提供了大量的增強(qiáng)功能。
順便說(shuō)一句,對(duì)于客戶核心數(shù)據(jù)庫(kù)和對(duì)IOPS要求非常高的應(yīng)用,建議客戶使用集中式存儲(chǔ)。Gluster并不是適用于所有場(chǎng)景的存儲(chǔ)方案,我們不是賣假藥的。