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