當前位置:
首頁 > 科技 > 容器雲存儲的需求分析和方案選型

容器雲存儲的需求分析和方案選型

作者:汪照輝 王作敬 中國銀河證券股份有限公司 信息技術部IT研發中心

容器雲平台存儲不僅僅是數據的持久化存儲,也包括容器雲平台自身的存儲需求以及鏡像存儲需求,甚至需要考慮雲上中間件,比如Kafka等對存儲的需求。

互聯網公司的金融業務對金融行業的發展帶來的巨大衝擊和挑戰,逼迫金融行業不得不考慮互聯網金融業務和移動業務的發展,這又對技術平台和技術能力提出了新的要求和挑戰。互聯網金融業務和移動業務要求對業務需求快速響應,甚至是小時、分鐘級,這就要求能實現業務的敏捷響應、敏捷開發、持續集成、持續部署、持續改進,實現自動化的運維、容錯、異常修復、彈性伸縮、灰度發布等能力,要支持這些能力,環境一致性要求、基礎設施服務平台等要求需要滿足,才能在激烈的競爭中生存下來。金融公司業務的發展趨勢,恰如如逆水行舟,不進則退,不得不採用新的技術和平台。

容器雲平台提供了環境一致性能力、支持彈性伸縮、灰度發布、藍綠部署等能力,又和DevOps開發運維一體化方法論、微服務架構契合,實現持續集成、持續部署、持續監控、持續反饋、持續改進閉環。另外大數據、AI等應用的部署運維也需要考慮構建共同的基礎設施服務平台,容器雲生逢其時。

隨著容器技術的成熟和容器雲平台的實際落地,越來越多的企業已經建設或者嘗試正在建設容器雲平台。容器雲平台如何管理並使用好基礎資源CPU、內存、存儲、網路等資源是其關鍵的能力之一,而存儲作為容器雲平台的基礎設施資源,保證著容器雲數據的安全,使數據能安全持久的存儲、查詢、不丟失。

不過容器技術和容器雲平台對存儲的使用與原來相比是不同的,容器內部存儲是不支持持久化數據存儲,這就需要考慮採用外部存儲掛載到容器上,在容器遷移、消亡、重啟等活動中保證數據的安全。數據是企業的核心資產,在激烈的市場競爭中,已經越來越體現出其巨大的價值。因此,在建設容器雲平台的時候,是必須要考慮容器的存儲的,如:存儲方式、存儲介質、存儲產品、存儲數據量、性能需求等。此外,容器雲平台存儲不僅僅是數據的持久化存儲,也包括容器雲平台自身的存儲需求以及鏡像存儲需求,甚至需要考慮雲上中間件,比如Kafka等對存儲的需求。


一、容器存儲方式

存儲資源是容器雲的基礎設施資源之一,保證著容器雲平台的正常運行和數據持久化能力。容器雲存儲的方式有容器內部存儲方式、容器宿主機磁碟存儲方式、容器遠程卷存儲方式等。


1、容器內部存儲方式

容器內部存儲即容器的讀寫層,但在容器銷毀時讀寫層也銷毀,在讀寫層的數據會丟失,就象內存中的數據,應用進程關閉,內存中數據就會清空。容器內部存儲方式只可作為容器運行時臨時的存儲方式。


2、容器宿主機本地磁碟存儲方式

容器宿主機本地磁碟存儲是使用本地存儲卷,其是對本機磁碟的映射。本地卷不可創建快照。優點是不需要獨立存儲,創建操作簡單,讀寫效率高。缺點是不能在節點間實現容器漂移。


3、容器遠程卷存儲方式

遠程卷包括NFS和分散式遠程存儲卷,NFS的創建需要增加設備、讀寫許可權、設備目錄的信息;分散式存儲卷包括Ceph、GlusterFS、ScaleIO、Portworx等。


二、容器雲存儲的重要性

存儲是容器雲平台提供的基礎資源之一,要安全穩定的使用容器雲平台,對容器雲平台的存儲資源,在採用和實施容器雲平台之前,需要提前做些研究和規劃,因為:

1.數據是企業的重要資產,保證數據不丟失,數據完整,才能更好的開展業務。

2.容器和虛擬機或物理機技術實現側重不同,容器側重無狀態應用,要支持有狀態應用,數據存儲必須基於業務需求提前進行考慮和規劃。

3.容器雲是基礎平台,涉及平台組件、鏡像、應用、中間件等多個方面,每個方面都可能有不同的存儲需求。要獲得理想的性能和結果,需要全面的考慮每個方面,存儲等作為基礎設施資源,更是必不可少的部分。

4.容器是用來承載應用的,這點要深刻理解。應用各個層次的數據具有潛在的價值,捕獲並處理、存儲、分析這些數據是獲取價值的步驟。因此,應用數據的持久化是容器雲平台支撐業務應用的重要的基礎能力之一。建好基礎,才能更好的服務於業務應用。

凡事預則立,不預則廢。說明了規劃計劃的重要性。臨時抱佛腳總會對業務產生或多或少的影響,容器雲是基礎設施平台,存儲是容器雲的基礎資源,基礎設施資源決定上層應用服務的能力,目前IaaS層還無法直接為容器雲平台提供需要的所有存儲資源,和 IaaS的對接也存在技術難點,沒有完整的數據就難以快速響應業務需求,難以快速超越或者跟隨對手,大數據、AI等技術支撐的雲上業務應用就難以順利實施。

說到底,數據、還是數據!是核心資產,需要重視其安全的保存和備份、重視其存儲方式、介質、存儲性能等影響。


三、容器雲存儲需要考慮的幾個方面

在採用容器雲平台時,存儲的使用大概有這幾個方面需要考慮:容器雲平台自身需要的存儲、應用數據持久化存儲、鏡像存儲、中間件部署需要的存儲。最重要的是容器雲平台自身的存儲和數據持久化存儲。數據持久化存儲數據量有些公司可能會比較大,有些可能較小。在有大量存儲需求的時候就更要做好規劃。數據存儲很重要的一點是支持容器遷移,隨容器遷移。不同的業務應用對存儲的需求不同,所以這裡沒有明確的標準,需要根據實際情況來確定。越重要的數據存儲的安全性要求越高。

1.容器雲平台自身的存儲:容器雲平台自身有很多組件,比如ETCD,會存儲容器雲平台的狀態和配置信息,其對存儲的性能有較高的要求。etcd一旦出現意外,容器雲平台可能癱瘓,所以etcd的存儲對穩定性、安全性、性能等方面要求比較高。同時可能還需考慮etcd的集群部署。

2.應用數據持久化存儲:包括宿主機本地存儲卷和遠程存儲卷。本地存儲卷是對本機磁碟的映射,本地卷容量和讀寫性能由磁碟的規格和性能決定,本地卷不可創建快照。優點是不需要獨立存儲,創建操作簡單,讀寫效率高;缺點是不能在節點間實現容器漂移。遠程卷包括NFS和分布是遠程存儲卷,通常是容器雲平台的首選。

3.鏡像存儲:鏡像倉庫用於存儲應用鏡像和中間件鏡像等所需的空間。

4.中間件部署需要的存儲:運行某些中間件需要的存儲需求。不同的中間件可能對存儲有不同的需求。


四、持久化存儲需求

作為用戶,我們關注存儲其實更多的是關注數據持久化存儲,數據是核心資產,重要數據必須持久化存儲並備份,而容器的內部存儲難以做到持久化,本地存儲又難以遷移,所以更多的話是採用遠程存儲捲來滿足持久化存儲需求。這是因為:

1.從業務角度,應用運行時異常,狀態、數據等存儲起來用於恢復或重試執行。

2.日誌數據是業務跟蹤、查詢、統計、分析等的重要基礎,所有的操作都要基於數據的持久化存儲。

3.容器彈性伸縮特性非常切合微服務擴縮需求,日誌、運行時數據、結果等跟隨容器遷移且不隨容器銷毀而消失。

4.Kafka、mysql等需要持久化的存儲支持來部署並保存數據。

5.數據量累積,會帶來質變影響。

6.大數據業務、AI業務等基於容器雲的部署需求。

大數據、人工智慧都需要數據來支撐,所以這塊的數據存儲量將會越來越大。比如每天的日誌數據可能就有幾十個G,幾百個G,這些數據經過清洗處理分析,可能會帶來新的價值增長點,也會帶來越來越多的新業務創新。但隨著數據量的累積,也會給存儲帶來壓力。所以不同的數據可能需要考慮採用不同的存儲方案。這可能有涉及到數據的治理問題了。遠程卷有NFS、NAS、SAN、Ceph、GusterFS等產品可以選擇,不同需求選擇不同的產品。

鏡像對存儲的需求相對簡單,鏡像通常也是需要不斷的更新的。不過鏡像需要考慮不同環境鏡像庫的鏡像存儲。通常情況下,鏡像倉庫可以非容器化部署,相對來說主機存儲資源管理起來會更方便。

中間件存儲更多是因為中間件部署時,不同中間件對存儲的需求可能不同。最典型的比如Kafka,需要多塊磁碟、文件系統使用XFS以及Mount 文件系統時使用noatime選項等以達到更好的性能。這就需要基於不同的組件來確定選擇什麼樣的存儲。不過在容器雲上實現目前還不是特別便利。可以考慮非容器部署。


五、無容器存儲思路

目前說起容器雲存儲,大家都會想到Ceph或GlusterFS等。我們PoC測試的時候也隨大流測試了一下。大家都說這麼配,所以我們也就這麼配了。不過後來想想,我們mount存儲卷,目的是為了數據持久化,為了有狀態應用。但是如果按照雲原生的理念,不是為了雲而硬性遷雲,可能不需要太多存儲資源。還有就是數據可以通過實時數據流方式採集到數據中心或數據處理終端,讓數據運轉起來、流轉起來,而不是僅僅存儲起來,充分開發數據的價值。沉睡和靜止的數據無法帶來價值,運轉起來的數據才有價值,實時性越高的數據越有價值。這也是構建大數據平台大數據分析的價值。

從這個角度來說,我們可以讓數據運轉起來,不用都存儲於磁碟,或者在容器雲平台可以採用這種思想,把數據從容器中拋出來,然後再進一步處理或存儲。這樣存儲資源的使用可能就簡單多了。比如應用服務日誌,可以直接從容器中把日誌信息從日誌文件或標準輸出中採集到,然後扔到ES或Kafka等消息中間件。這個功能由容器雲平台來提供,用戶也就不需要關心實現的細節。更重要的是,通過ES或Kafka可以實時進行數據的進一步處理,也避免數據在容器平台持久化存儲的一些問題。

這只是個人的一點想法,具體的可能更多還是要考慮數據在容器雲平台的持久化存儲。相應的產品和技術,大家討論的也挺多,這裡就不贅述。

六、容器雲存儲方案選擇

採用容器雲選擇存儲時,需要基於實際的業務需求來確定,深刻理解容器雲平台是用來承載應用的,是為企業業務應用服務的。這也是我們在選擇容器雲產品時一再強調的。我們採用容器雲不是為了容器,而是為了業務應用,為了業務。不同業務對存儲的需求不同。有安全性要求比較高的,也有可以容忍數據丟失的等。不同的業務需求,採取的存儲方案、存儲產品就會不同,因為產品不一樣,所付出的資金代價是不一樣的。

選擇產品時還需要考慮企業自身的技術實力,開源產品有開源產品的優點,商用產品也有商用產品的優點,對於像我們這樣的金融公司來說,更多要考慮的是數據的安全性,在採用開源產品時就會很謹慎,後期服務是一個很重要因素。得有公司來兜底,哪怕多花些錢,買個心安。

另外還要考慮是否有能力駕馭選擇產品或技術。開源產品對技術能力要求比較高,選擇開源產品,最好有相應的技術人員儲備。開源產品技術領先,版本迭代變化也比較快,需要有相應的人力去把控。如果做不到這點,選擇商用產品是合適的,雖然成本高點,但經過了眾多企業的技術驗證。特別對傳統企業來說,技術實力一時還比較難達到要求,無法把控產品,最好不要輕易使用開源的產品。

還有可能需要考慮容器雲產品和架構方案,以及是否有IaaS層的技術支持,IaaS層採用的技術等方面。


七、存儲、容器雲和大數據

我們考慮存儲不僅僅是容器雲需要,大數據平台也需要,存儲可以單獨作為一塊來考慮,可以不綁在容器雲項目上。綜合容器雲平台,大數據平台建設,統一來考慮存儲資源的建設,可能會更好些。我們的最終目的是能為容器雲平台提供存儲資源也就夠了。

溫馨提示:

求知若渴, 虛心若愚

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

深度解析伺服器科普知識
Gartner 2018新技術成熟度曲線

TAG:架構師技術聯盟 |