歡迎光臨
每天分享高質量文章

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

作者:汪照輝 王作敬 中國銀河證券股份有限公司 信息技術部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層採用的技術等方面。

七、儲存、容器雲和大資料

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

溫馨提示:

請搜索“ICT_Architect”“掃一掃”二維碼關註公眾號,點擊原文鏈接獲取電子書詳情

求知若渴, 虛心若愚

赞(0)

分享創造快樂