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