解讀 YRCloudFile 容器持久化存儲的破局之路

解讀 YRCloudFile 容器持久化存儲的破局之路

嘉賓:王鵬飛,焱融云 CTO

引言:

近年來,容器技術(shù)和云原生應(yīng)用越來越多地占據(jù)企業(yè)級市場,有狀態(tài)容器業(yè)務(wù)也開始得到廣泛使用,包括結(jié)構(gòu)化數(shù)據(jù)庫、非結(jié)構(gòu)化數(shù)據(jù)庫、數(shù)據(jù)分析、內(nèi)容管理、CI/CD、海量數(shù)據(jù)共享等業(yè)務(wù)場景需要對容器的數(shù)據(jù)進行持久化,容器持久化存儲成為企業(yè) IT 系統(tǒng)的剛需。近日,CNCF 發(fā)布了最新版本的 Cloud Native Landscape,焱融云 YRCloudFile 被列入云原生全景圖譜,位于云原生存儲象限中,這是國內(nèi)首個被收錄的容器持久化存儲產(chǎn)品。InfoQ 記者專訪到了焱融云 CTO 王鵬飛,揭秘這家成立3年多的創(chuàng)業(yè)公司是如何憑借技術(shù)實力在競爭激烈的分布式存儲市場取得一席之地的。

正文:

“經(jīng)歷了華為、中興事件后,更加深了我們對自研的重視”

互聯(lián)網(wǎng)的規(guī)模越來越大,并發(fā)請求也越來越高,傳統(tǒng)的集中式存儲并不能很好地滿足各種場景的需求,于是分布式儲存系統(tǒng)得以廣泛應(yīng)用。王鵬飛提到,“2011年我在IBM工作的時候就開始接觸到分布式存儲,一直到現(xiàn)在,其實我經(jīng)歷了分布式存儲整個蓬勃發(fā)展的過程”。隨著互聯(lián)網(wǎng)經(jīng)濟的迅速發(fā)展,帶動各行各業(yè)的應(yīng)用呈爆發(fā)式增長,對存儲的需求也越來越高,場景劃分越來越細。這是焱融云創(chuàng)立的一個出發(fā)點,就是要做一款好的分布式存儲。

據(jù)王鵬飛介紹,目前市場上做分布式存儲的公司主要集中在大廠,比如浪潮、NetApp、華為等。其他一些相對而言較小的公司,主要利用 GlusterFS、CephFS 甚至 Lustre 等一些開源的分布式文件系統(tǒng)。焱融云從2017年開始推出基于高性能分布式文件的容器存儲。YRCloudFile 的定位是統(tǒng)一管理所有服務(wù)器磁盤并提供統(tǒng)一命名空間的文件系統(tǒng),采用分布式架構(gòu),單集群最多可以支撐上萬個 client 同時訪問。YRCloudFile 可以幫助企業(yè)達到對數(shù)據(jù)的自主可控,其統(tǒng)一命名空間的特點在于,用戶無需感知下層存儲的物理結(jié)構(gòu)以及部署架構(gòu);對上層應(yīng)用而言,它是一個統(tǒng)一的海量文件系統(tǒng)存儲空間。

YRCloudFile 是國內(nèi)首家進入CNCF Landscape Cloud-Native Storage 的容器存儲產(chǎn)品,無論在接口適配、生態(tài)合作,還是容器存儲特殊場景的支持上,焱融云在國內(nèi)都處于領(lǐng)先地位。在性能上,YRCloudFile 在最新發(fā)布的 IO500 存儲系統(tǒng)性能測試榜單中,也進入了全球 Storage Vendor的前十。無論對大文件順序讀寫,還是對小文件的操作性能上,YRCloudFile 都通過 IO500 的測試得到了驗證。

談及如何在大廠夾擊、競爭激烈的存儲市場保持競爭優(yōu)勢,王鵬飛提到了三點:

首先是自研。經(jīng)歷過中興、華為等事件后,科技公司對自研的感受變得更加深刻,只有自己的,才是長久的。焱融云的存儲團隊有豐富的存儲系統(tǒng)開發(fā)、維護等經(jīng)驗,核心團隊成員在金山云、百度等做過多年的存儲開發(fā),可以說在人員配置上,焱融云具備了自研的底氣。

其次是性能。YRCloudFile 存儲層軟件對 IO 路徑進行了深度優(yōu)化,可以充分發(fā)揮出底層硬件的特性,配合整個系統(tǒng)的緩存技術(shù),提供更高的性能。同時針對新的網(wǎng)絡(luò)、硬盤技術(shù),比如 RDMA、NVMe 都進行了完美的適配。王鵬飛提到,“前段時間與 Mellanox 以及 E8Storage 分別發(fā)布了聯(lián)合測試報告,同等硬件條件下,性能比某大廠同類產(chǎn)品要高出50%”。

還有一點是對容器場景的支持。YRCloudFile 可以適配 Kubernetes 的各種版本,無論創(chuàng)建方式是動態(tài)創(chuàng)建還是靜態(tài)創(chuàng)建,都可與容器平臺緊密結(jié)合。

容器持久化存儲逐現(xiàn)崢嶸

近幾年容器的熱度持續(xù)上升。在2018年11月,OpenStack Summit 更名為 Open Infrastructure Summit,對此官方給出的解釋是擁抱開源、擁抱K8S、擁抱容器化。這也從另一個角度證明,容器化已經(jīng)成為 IaaS 平臺的事實標準。

從2018年Gartner技術(shù)趨勢圖中也可以發(fā)現(xiàn),專門針對容器應(yīng)用場景的持久化存儲 Container-Native Storage 正處于明顯上升趨勢,其特點是:首先它專門為支持容器而設(shè)計;其次它能夠滿足容器應(yīng)用的擴展以及性能需求;第三它與容器管理系統(tǒng)深度整合;最后它支持大量系統(tǒng)的并行訪問。

解讀 YRCloudFile 容器持久化存儲的破局之路

  2018年Gartner技術(shù)趨勢圖

伴隨著 K8S 和容器化的發(fā)展,越來越多的用戶有了靈活的業(yè)務(wù)選擇能力。與此同時,對于業(yè)務(wù)數(shù)據(jù)的困擾也隨之而生。存儲在容器內(nèi)部的任何數(shù)據(jù),在容器被銷毀以后,這些數(shù)據(jù)將自動消失,例如網(wǎng)站頁面、配置文件、數(shù)據(jù)庫和大數(shù)據(jù)應(yīng)用等。因此,在企業(yè)真正運行環(huán)境中,如何實現(xiàn)容器持久化存儲一直是業(yè)界的熱點問題。

容器持久化存儲面臨的挑戰(zhàn)

從Kubernetes官方社區(qū)支持的存儲列表中可以看到,目前容器持久化存儲分為兩類,一種是塊存儲,例如 Ceph、OpenEBS 等;另一種是文件類存儲,如 GlusterFS、CephFS 等。當然還有很多傳統(tǒng)的存儲設(shè)備等。但絕大部分的存儲是早在容器普及之前就已經(jīng)出現(xiàn)了,換句話說,大部分存儲不是為容器持久化而設(shè)計和開發(fā)的。

目前容器持久化存儲主要面臨的挑戰(zhàn)有四點:

缺乏存儲軟件和工具

擔心數(shù)據(jù)丟失

現(xiàn)有存儲擴展性差

傳統(tǒng) SAN/NAS 陣列靈活性和容器場景針對性差

具體來看,如果是塊存儲類型,如CephRBD,首先會面臨一個多掛載的問題,使其無法提供ReadWriteMany(RWX)這一非常重要的訪問方式,這對一些應(yīng)用的部署方式會產(chǎn)生影響;其次,在 Kubernetes 工作節(jié)點(Worker Node)發(fā)生故障,需要對有狀態(tài) Pod 進行跨節(jié)點遷移時,Kubernetes 需要對塊設(shè)備進行 umount/deattach/reattach /remount 操作,這是一個耗時并且易錯的過程,這就阻礙了容器的快速恢復(fù)。以上兩點是 CephRBD 這種塊存儲用作容器存儲時面臨的問題。而對于文件類存儲,如GlusterFS,在大量的小文件以及目錄層次復(fù)雜時將面臨著較大的性能壓力。

容器持久化存儲是 YRCloudFile 的“殺手锏”

容器平臺天生適合無狀態(tài)應(yīng)用,如Web前端、Nginx 代理等,這1是從2017年 Kubernetes 蓬勃發(fā)展以來,用戶利用容器平臺的典型場景。但隨著平臺的成熟、使用的深入,越來越多的用戶期望將其他的應(yīng)用遷移到容器平臺內(nèi),如典型的數(shù)據(jù)庫、數(shù)據(jù)共享等。

這就面臨一個難題,如何為這類有狀態(tài)的應(yīng)用提供存儲?很明顯本地存儲是不合適的,因為隨著容器的遷移,這些數(shù)據(jù)將無法做到應(yīng)用的跟隨,客戶需要一個能夠適配容器場景的存儲。王鵬飛提到,“我們在面對一些客戶時,他們當前往往考慮的是如何把應(yīng)用放到容器上去,而對于底層存儲的選擇只限于能夠工作即可。但很快他們就會發(fā)現(xiàn),只滿足于能夠工作是遠遠不夠的,一個好的存儲非常重要”。

YRCloudFile 架構(gòu)設(shè)計

YRCloudFile 是一款有元數(shù)據(jù)服務(wù)的分布式文件存儲產(chǎn)品,支持元數(shù)據(jù)服務(wù)和數(shù)據(jù)服務(wù)的線性水平擴展。元數(shù)據(jù)服務(wù)節(jié)點數(shù)可以支持多達256個,數(shù)據(jù)服務(wù)節(jié)點可以支持多達1024個,客戶端節(jié)點可以支持上萬個。能夠支持海量文件存儲,文件數(shù)據(jù)可以支持千億級別,容量可擴展到EB級別。支持RDMA協(xié)議,能夠提供亞毫秒級別的延遲。支持文件切片和數(shù)據(jù)冗余,能夠提供良好的帶寬。支持冷熱數(shù)據(jù)分層,在保證高性能的同時,能夠節(jié)約成本。支持容器存儲,能夠完美兼容CSI/FlexVolume接口。YRCloudFile 對接容器編排平臺如下圖所示。

解讀 YRCloudFile 容器持久化存儲的破局之路

  YRCloudFile 對接容器編排平臺

YRCloudFile 的容器化支持

可以說,YRCloudFile 對容器具有天然的支持優(yōu)勢。主要體現(xiàn)4在訪問模式上,YRCloudFile 支持三種訪問模式:RWO、ROX、RWX,滿足各種應(yīng)用對存儲的使用要求,并且針對不同的訪問方式做了深度優(yōu)化。

YRCloudFile 是最早支持CSI容器存儲接口的存儲產(chǎn)品之一,而 CSI 是整個容器生態(tài)的標準存儲接口,可以平滑支持 Kubernetes V1.13及以后的版本。針對CSI接口出現(xiàn)故障,比如存儲鏈路中斷、網(wǎng)絡(luò)故障等時,YRCloudFile 創(chuàng)造性地開發(fā)了對故障的動態(tài)感知功能,即當CSI狀態(tài)出現(xiàn)問題時,K8S 會標記該Node,從而避免 Master 節(jié)點把新建有狀態(tài) Pod 分發(fā)到該 CSI 故障 Node,而不影響整個集群效率。

雙活數(shù)據(jù)中心,是YRCloudFile容器存儲的又一亮點,該功能使得跨數(shù)據(jù)中心部署業(yè)務(wù)的復(fù)雜度大大降低,其容器存儲雙活如下圖所示。

解讀 YRCloudFile 容器持久化存儲的破局之路

  容器存儲雙活部署設(shè)計

其設(shè)計思路是:管理員在YRCloudFile上創(chuàng)建一個跨數(shù)據(jù)中心的存儲池pool1,當依賴持久化數(shù)據(jù)的業(yè)務(wù)需要跨數(shù)據(jù)中心部署,且希望獲得雙活特性時,可以將PV通過storageclass配置在pool1中。這樣,寫入該PV的數(shù)據(jù)會同時分布到兩個數(shù)據(jù)中心,任何一個數(shù)據(jù)中心發(fā)生火災(zāi)或電力中斷等災(zāi)難故障時,pool1在另一個數(shù)據(jù)中心的數(shù)據(jù)副本都可以繼續(xù)提供讀寫服務(wù)。同時,借助YRCloudFile支持有狀態(tài)容器快速恢復(fù)和遷移的特性,可以幫助管理員快速地將故障數(shù)據(jù)中心上運行的業(yè)務(wù)遷移至安全的數(shù)據(jù)中心。

客戶除了需要依賴雙活容器存儲池進行跨數(shù)據(jù)中心部署的應(yīng)用,也有只需要部署在某一數(shù)據(jù)中心內(nèi)的應(yīng)用,這種應(yīng)用只要把數(shù)據(jù)存放在應(yīng)用所在的數(shù)據(jù)中心即。這時,管理員可以在同一個YRCloudFile集群的統(tǒng)一命名空間內(nèi),創(chuàng)建另外一個新的存儲池pool2,pool2的數(shù)據(jù)副本策略設(shè)置為同一個數(shù)據(jù)中心。管理員通過YRCloudFile提供的另一個storageclass,即可將PV創(chuàng)建在pool2。這樣,有狀態(tài)應(yīng)用容器所生成的數(shù)據(jù)副本,就都管理在pool2內(nèi),數(shù)據(jù)的讀和寫都發(fā)生在本數(shù)據(jù)中心了。YRCloudFile 的雙活容器存儲、本地優(yōu)先讀、雙活存儲池加本地存儲池統(tǒng)一管理的功能,大大增強了 IT架構(gòu)的靈活性。

除了以上之外,YRCloudFile 還做了很多其他的工作。首先,把K8S的存儲(PV/PVC/Pod)呈現(xiàn)在了YRCloudFile管理界面,提供可視化功能,用戶可以在管理界面清楚了解Pod、PV 使用量、PVC 關(guān)聯(lián)關(guān)系。并且能通過名稱、大小、Label 等對 PV/PVC/Pod 進行搜索和篩選,方便用戶管理。

其次,可針對實際應(yīng)用中大量PV場景下,提供PV Hot Spot 功能,對熱點PV進行跟蹤和定位,保障系統(tǒng)的穩(wěn)定運行。 并且能針對每一個 PV 設(shè)置性能告警功能,對重點需要監(jiān)控的PV,設(shè)置PV性能告警閾值,實現(xiàn)細粒度的管理和監(jiān)控。

第三,YRCloudFile 還提供了QoS功能。用戶可以通過參數(shù)設(shè)置限制 PV 的 IOPS 及 BandWidth;從而達到有效利用存儲資源的效果,保障關(guān)鍵應(yīng)用的性能。

解讀 YRCloudFile 容器持久化存儲的破局之路

  YRCloudFile 的QoS功能示意

第四,YRCloudFile 還提供 PV Insight 功能,以圖形化的方式,從三個維度(數(shù)據(jù)層次、文件大小、數(shù)據(jù)溫度)幫助用戶對業(yè)務(wù)進行分析和調(diào)整。

第五,YRCloudFile 提供了 PV Resize 功能,當企業(yè)需要調(diào)整 PV 配置額外存儲但又無法忍受服務(wù)中斷時間時,通過 PV Resize 功能,不需要將應(yīng)用程序或服務(wù)脫機,只需一個簡單的操作,即可以調(diào)整PV的大小。

最后,YRCloudFile 還提供自定義的Prometheus exporter,向 Prometheus server 提供集群監(jiān)控數(shù)據(jù),并且提供基于 Grafana 的集群監(jiān)控 Web 展現(xiàn)模板。用戶可以統(tǒng)一觀察到所有集群的狀態(tài),從而提高運維的效率。

YRCloudFile的其他創(chuàng)新優(yōu)勢

YRCloudFIle 的高性能

CephFS 是構(gòu)建在 RADOS 基礎(chǔ)上的,而Ceph的OSD性能損耗比較大,越是性能好的硬件,體現(xiàn)出來的性能損耗則越大。同時 CephFS 的多 MDS 架構(gòu)實現(xiàn)非常復(fù)雜,尤其是當文件數(shù)量大了之后,其體現(xiàn)出來的性能跟理論值差距非常大。NAS的性能主要受限于NAS網(wǎng)關(guān)的數(shù)量和NFS協(xié)議,通常情況下,NAS網(wǎng)關(guān)只有2~4個,因此帶寬受到很大限制,同時NFS的協(xié)議消耗也比較大。

根據(jù)大量的實踐和測試,最終 YRCloudFIle 采用輕量級的數(shù)據(jù)模型和動態(tài)子樹的多MDS方案,與Ceph不同的是,YRCloudFIle不會在內(nèi)存中維護 B+ tree,而是將其持久化到磁盤中,結(jié)果就是相對簡潔穩(wěn)定。即使在百億級的文件數(shù)量場景,性能衰減也很小。同時 YRCloudFile 采用專有客戶端進行數(shù)據(jù)訪問,避免了 NFS 協(xié)議的消耗,性能有保障。

YRCloudFIle 有效應(yīng)對海量小文件場景

隨著移動終端使用頻繁,文件碎片化越來越嚴重,以前一些傳統(tǒng)的存儲并不能很好地支撐小文件的場景。比如一個傳統(tǒng)存儲,在運行大文件讀寫的時候性能非常好,但隨著場景的復(fù)雜化,導(dǎo)致各種各樣應(yīng)用都需要把數(shù)據(jù)放到存儲里,從而產(chǎn)生了大量的小文件,不管是查詢還是訪問,性能降低得很明顯。這是傳統(tǒng)存儲技術(shù)面臨的問題,即如何存儲小文件。以GlusterFS舉例,在典型的用戶場景,即存儲的都是大文件(例如日志)時,工作良好;但是當容器內(nèi)需要產(chǎn)生海量小文件時,性能上就無法滿足需求了。

YRCloudFile可以同時支持海量小文件存儲和大文件存儲,這在業(yè)界還是比較少見的。其具體實現(xiàn)思路是:

首先,基于元數(shù)據(jù)服務(wù)可以隨時擴展的特性。由于元數(shù)據(jù)信息存在磁盤里面,所以可以通過元數(shù)據(jù)集群規(guī)模的擴大來支撐海量小文件,比如現(xiàn)在有幾千萬個小文件,2個元數(shù)據(jù)節(jié)點就夠了;如果有幾億個元數(shù)據(jù),可以將元數(shù)據(jù)擴展成4個甚至更多。

其次,通過動態(tài)算法實現(xiàn)負載均衡。YRCloudFile 會根據(jù)整個集群元數(shù)據(jù)的分布的情況,包括流量信息等,通過把這些信息分散在不同的元數(shù)據(jù)節(jié)點里,使得一個目錄里即使有非常海量的小文件也不會影響訪問效率,這樣相當于消除了某一個元數(shù)據(jù)節(jié)點的熱點問題,實現(xiàn)負載均衡,充分利用底層多個元數(shù)據(jù)節(jié)點的服務(wù)能力。

第三點就是使用自定義協(xié)議。為了充分利用 YRCloudFile 本身提供的一些性能,焱融云開發(fā)了客戶端,通過自己開發(fā)的協(xié)議,提高通信效率,也提高了對小文件讀寫的性能。

加入CNCF云原生全景圖譜后,YRCloudFile 的未來?

YRCloudFile 在近期發(fā)布的幾個版本中,逐漸豐富了對容器的整合能力;并推出了支持數(shù)據(jù)的冷熱分層的智能分層功能,在提供同樣性能的基礎(chǔ)上為用戶節(jié)省更多的成本;同時也支持了Harbor HA,從生態(tài)的角度讓拼圖更加完整。

對于YRCloudFile 的未來規(guī)劃,王鵬飛提到兩點:首先,焱融云會保持高性能的分布式文件系統(tǒng)以及容器存儲的方向,無論是對新技術(shù)的支持,還是本身軟件的優(yōu)化,會一直持續(xù)進步。

再者,焱融云會全面擁抱Cloud Native這個大家庭,包括自身產(chǎn)品的容器化方案的能力,到與 Harbor、Etcd以及Promethues 等軟件的整合,將專注于容器存儲本身,加強與容器平臺的廠商合作?!?關(guān)賀宇)

極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-07-12
解讀 YRCloudFile 容器持久化存儲的破局之路
嘉賓:王鵬飛,焱融云 CTO引言:近年來,容器技術(shù)和云原生應(yīng)用越來越多地占據(jù)企業(yè)級市場,有狀態(tài)容器業(yè)務(wù)也開始得到廣泛使用,包括結(jié)構(gòu)化數(shù)據(jù)庫、非結(jié)構(gòu)化數(shù)據(jù)庫、數(shù)據(jù)

長按掃碼 閱讀全文