阿里雲盤資源共享站:阿里雲圖片存儲

簡介: 以上為大家分享了阿里雲容器存儲的技術創新,包括 DADI 鏡像加速技術,為容器規模化啟動奠定了很好的基礎,ESSD 雲盤提供極致性能,CNFS 容器網絡文件系統提供極致的用戶體驗。

作者:徐立

雲原生的創新源泉

雲原生趨勢下,應用容器化比例正在快速增長,Kubernetes 也已成為雲原生時代新的基礎設施。 Forrester 預測到 2022 年,全球組織/公司在生產環境運行容器化應用。從今天不足 30%的比例將大幅度提升到超過 75%,企業應用容器化的趨勢勢不可擋。我們可以看到兩個普遍的現象。首先,在雲上託管 Kubernetes 已經成為企業上雲及運行容器的優先選擇。另外,用戶使用容器的方式也在改變,從無狀態應用到核心企業應用再到數據智能應用,越來越多的企業使用容器來部署生產級別、複雜度高和高性能計算的有狀態應用。比如 Web 服務、內容資料庫、數據庫,甚至 DevOps、AI/大數據應用等。

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

隨着基礎設施從物理機到虛擬機,到以 Kubernetes 為代表的容器環境,甚至到 Serverless 的逐漸演進,今天的計算和應用正在面臨巨大的變化。這種變化使得資源粒度越來越細,生命周期越來越短,計算按需使用。

從用戶視角來看雲原生帶來的存儲變化,最明顯的就是用戶使用存儲界面發生上移,和應用不直接相關的存儲服務從應用層下沉到雲平台,用戶更關心應用。

舉例來說,傳統形態用戶需要關心所有硬件和軟件,逐漸過渡到用戶關心虛擬機、操作系統和整個應用軟件棧,到今天在 Serverless 里演變成用戶只關心應用業務和代碼。系統資源從物理資源層、虛擬化資源層上升到應用開發層,用戶無需關心底層的基礎設施。

在這樣的技術體系下,存儲的能力的演變主要體現在以下 3 個方面:

1、高密虛擬機時代,一個虛擬機就對應一個完整的存儲空間,可以用其存儲整個應用所需要的所有數據相關的訪問和存儲需求。在Serverless 函數計算環境,應用被切分為一個個函數,對應的資源都需要存儲管理,因此,存儲的密度發生了很大的變化,存儲密度更高。

2、彈性隨着應用拆分的粒度越來越細化,存儲密度逐漸提升,Serverless 函數計算大規模實例需要高並發啟動,存儲需要極致彈性的能力。

3、極速從Serverless 函數計算的角度來看,函數是整個進程的一個部分,生命周期自然變短。由此出現大量短生命周期的容器實例。隨着生命周期越來越短,需要存儲快速掛載/卸載,快速訪問。

隨着服務界面發生上移,存儲管控界面被重塑,內置存儲和外置存儲變得更加清晰。Serverless 環境里,用戶可見界面是外置存儲(包括文件存儲和對象存儲),而內置存儲(包括鏡像存儲和臨時存儲)對用戶是不可見的,內置存儲由阿里雲來管理,提供了創新的機會。

鏡像加速的技術創新

阿里巴巴容器規模化部署的挑戰

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

阿里巴巴容器規模化部署主要面臨的挑戰體現在以下幾個方面:

1、業務體量大。集群規模大,高達十萬量級;所有應用全部容器化,並且應用鏡像大,通常以數十 GB 大小為主。

2、更快的部署速度。業務規模持續增長,要求雲平台可以快速的部署應用,才能夠處理業務增長,尤其雙十一大促時緊急擴容,難以事前對各服務準確預估容量。

3、然而大規模的創建或者更新容器集群依然很慢,主要原因是容器部署鏡像的下載和解壓很慢,主要的技術挑戰如下:

  • 時間開銷大:時間開銷 ∝ 鏡像大小 * 節點數;一千節點就需要存一千份鏡像;
  • CPU 時間開銷大:gzip解壓慢,且只能串行解壓;
  • I/O 壓力大:下載、解壓兩輪寫盤,包括眾多節點同時寫盤,對雲盤產生「共振」;
  • 內存佔用擾動:對宿主機 page cache 產生嚴重擾動;
  • 但是有效數據佔比少:啟動時平均僅需鏡像數據的6.4%。

應對以上技術挑戰,大規模容器部署的關鍵需求抽象總結為三點:

1、按需:下載解壓速度足夠快、數據按需訪問和按需傳輸。

2、增量分層:數據解耦,通過 OCI-Artifacts 標準 overlayfs 把層次做劃分,增量數據,時間資源使用更有效。

3、Remote Image :採用遠程鏡像技術,改變鏡像格式,同時減少本地資源的消耗。

Remote Image 技術方案對比

Remote Image 主要有兩種技術實現的方式,一種是基於文件系統,第二種是基於塊設備。Remote Image 技術方案對比如下圖所示:

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

基於文件系統的 Remote Image 技術的主要特點是直接提供文件系統接口,是容器 Image 的自然擴展。複雜度高,穩定性、優化和高級功能的實現難度大。在通用性上,和操作系統綁定,能力固定,不一定匹配所有應用。同時攻擊面較大。行業代表主要是 Google CRFS,Microsoft Azure Project Teleport,AWS SparseFS。

基於塊設備實現的 Remote Image 技術的主要特點是可配合常規文件系統一起使用,如 ext4;普通容器、安全容器、虛擬機均可直接使用。複雜度、穩定性、優化和高級功能更容易實現。在通用性上,與操作系統和文件系統解綁,應用可自由選擇最合適的文件系統,如 NTFS,作為依賴打包進 Image。並且攻擊面較小。

阿里巴巴選擇了 Date Accelerator for Disaggregated Infrastructure (簡稱為 DADI),同時進行了規模性驗證。

阿里巴巴自研容器鏡像加速技術 DADI

DADI 是阿里巴巴的獨創性的技術方案。DADI 鏡像服務是一種可以做到敏捷又彈性部署應用的分層塊級鏡像服務。DADI 徹底摒棄了傳統容器啟動的瀑布類型(即下載、解包、啟動),實現了遠程鏡像的細粒度按需加載,容器啟動前不在需要部署鏡像,容器在創建後可以立即啟動。

DADI 的數據路徑如下圖所示,虛線之下是內核態,虛線之上是用戶態。DADI 將鏡像抽象為虛擬塊設備,並在其上容器應用掛載常規文件系統如 ext4。當用戶應用讀取數據時候,讀取請求先通過常規的文件系統處理,文件系統將請求轉換為虛擬塊設備的一次或者多次讀取。對塊設備的讀取請求被轉發到用戶態的 DADI 模塊,最後轉換為一個或者多個 Layer 的隨機讀取。

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

DADI 鏡像採用塊存儲+分層技術,每層只記錄被增量修改的數據塊,支持壓縮以及實時的按需解壓縮;支持按需傳輸,只傳輸用到的數據塊下載使用;DADI 還可以採用 P2P 傳輸架構,一傳十、十傳百,在大規模集群內將網絡流量均衡到所有多個節點上去。

DADI 關鍵技術解讀

DADI 增量鏡像可以通過基於塊+分層技術來實現,其中每個層對應於一個 LBA 的變更。DADI 的關鍵技術包括遠程鏡像的細粒度按需傳輸,高效的在線解壓縮,基於 trace 讀取,用於處理突發工作的 P2P 傳輸技術。DADI 在提高部署應用的敏捷性和彈性方面非常有效。

1、分層塊設備 Overlay Block Device

每層記錄被增量修改的變長數據塊 LBA,不涉及文件/文件系統的概念,以 512 位元組為最小粒度。快速索引,支持變長記錄,以節省內存,各記錄的 LBA 不重疊,支持高效的區間查詢。

2、原生支持可寫層

提供追加寫文件和隨機寫稀疏文件兩種模式構建 DADI 鏡像。只讀層,每個只讀都可以按照不同類型的大小,每層查詢區間,速度極快。可寫層由存儲原始數據(Raw Data)和存儲索引(Index)兩部分組成,接受 append only 組織而成。

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

3、ZFile 壓縮格式

標準壓縮文件格式,例如 gz,bz2,xz 等,無法高效的進行隨機讀寫操作,無論讀取壓縮文件中的哪一部分,都需要從頭部開始解壓,為了支持 layer blob 的壓縮並同時支持遠程鏡像的按需讀取,DADI 引入了 ZFile 壓縮格式。ZFile 的壓縮格式如下圖所示,按固定大小數據塊壓縮,只解壓讀到的數據塊,支持多種有效的壓縮算法,包括 lz4,zstd,gzip 等,採用通用格式,不綁定於 DADI。

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

4、基於 Trace 預取

記錄應用過程中的讀取日誌、只記位置、不記數據本身。在應用冷啟動時,若已有 trace 記錄,則 DADI 將根據trace提前把數據預取回本地,採用高並發讀取,更加高效。Trace 作為一個特殊的 layer 存於 image,專門用於加速,用戶不可見,未來可容納其他加速文件。如下圖綠色部分表示加速層、容納 trace 文件以及其他文件。

5、按需 P2P 傳輸

在我們的生產環境中,有幾個關鍵應用程序已經部署在數千台服務器上,並且包含高達數 GB 的 Layer,這些應用程序的部署給 Registry 和網絡基礎設施帶來了巨大壓力。為了更好的處理此類大型應用,DADI 將最近使用的數據塊緩存在每個宿主機的本地磁盤上,採用 P2P 的方式在主機之間傳輸數據。

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

1、採用樹形拓撲結構分發數據

  • 各個節點均緩存最近使用過的數據塊
  • 跨節點請求大概率命中父節點自己的 cache
  • 未命中的請求會遞歸向上傳遞,直到 registry

2、拓撲結構由 root 節點動態維護

  • 每個 layer 單獨一個傳輸拓撲

3、每個機房單獨部署一組 root

  • 多節點高可用架構
  • 基於一致性哈希的分工

大規模啟動耗時測試

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

我們將 DADI 容器啟動延遲與 .tgz 鏡像、Slacker、CRFS、LVM 和 P2P 鏡像下載進行了比較,使用 DockerHub.com 上的 WordPress 鏡像,我們觀測單實例的冷啟動延遲,所有服務器和主機位於同一數據中心。如左圖所示,結果表明,使用 DADI 可以明顯減少容器的冷啟動時間。

我們在公共雲上創建了 1000 個 VM,並將他們用做容器的主機。在每個主機上啟動 10 個容器,總共 10000 個容器。測試使用 Python 編寫的一個小程序 Agility,訪問 HTTP 服務器並在服務端記錄時間。如右圖所示,結果表明 DADI 的冷啟動在 3 秒之內快速完成。

DADI 在阿里巴巴的規模化運行

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

DADI 已經在阿里巴巴集團規模化運行,在阿里巴巴的生產環境內大規模部署。數據顯示 DADI 在 10000個宿主機上啟動 10000 個容器僅需3-4 秒。DADI 完美應對雙十一大促洪峰,目前在阿里巴巴集團內部已經部署了接近十萬台服務器宿主機,支持集團 Sigma、搜索、UC 等業務在線、離線應用超過 2 萬個,極大提高了應用發佈、擴容效率,體驗如絲般順滑。我們在全球最大的電子商務平台之一的生產環境中使用 DADI 的經驗表明,DADI 在提高部署應用的敏捷性和彈性方面非常有效。

擁抱開源,釋放雲原生技術紅利

現在,DADI 正在通過貢獻社區的方式更好地釋放雲原生技術紅利,也希望與更多企業和開發者共建容器鏡像標準。

目前 DADI 已經開放了支持 Contained(docker 尚不支持 remote image),支持節點直連 Registry + 本地緩存技術,支持構建、轉換鏡像。

未來還會開放 P2P 按需傳輸:將 P2P 子系統重新設計為 Registry 的延伸,將支持共享存儲,如 nfs、hdfs、ceph、glusterfs 等,全局 Registry +機房共享存儲 + 節點本地緩存 + P2P 數據傳輸,構建機房內緩存。

大家可通過查看以下 Github 的鏈接了解更多信息:

  • 控制平面 (for containerd):
https://github.com/alibaba/accelerated-container-image
  • 數據平面(overlaybd):
https://github.com/alibaba/overlaybd

容器持久存儲的技術演進

存儲接入技術面臨的挑戰

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

上面我們談到了 Serverless 應用架構的新範式,現在我們看到一個趨勢,從虛擬機到普通容器,再逐漸演變為神龍裸金屬部署安全容器。從存儲的布局角度來看,其面臨的顯而易見的挑戰是更加高密和多租戶。

容器接入技術趨勢:計算層基於 ECS + 普通容器的架構向基於神龍 + 安全容器架構演進,單節點密度達到 2000,單實例規格最小粒度內存 128MB,1/12 CPU。容器接入技術的趨勢,帶來了 I/O 資源放大的挑戰。

阿里雲存儲在端接入上有自己的思考,存儲分為內置存儲(鏡像和臨時存儲)和外置存儲(文件系統/共享文件系統、大數據文件系統、數據庫文件系統等)。

存儲系統如何和底層更好的連接?存儲接入容器的方式是通過 virtio 的能力卸載到神龍Moc 卡上,神龍 Moc 卡 + virtio 的通路和底層存儲服務更好的聯動。

持久存儲 – 面向現代化應用的彈性供給雲盤 ESSD

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

ESSD 雲盤為用戶提供高可用、高可靠、高性能的塊級隨機訪問服務,並提供原生快照數據保護和跨域容災等豐富的企業特性。

面向現代化應用的彈性供給雲盤 ESSD 具備兩個關鍵特性:

  • 雲盤掛載密度提升 4 倍,單實例最大支持 64 塊雲盤
  • 性能與容量完全解耦,用戶需求不需要預先設定,按需而定。

舉例來說,為了應對很多用戶面臨的問題:無法準確預估業務峰值,在性能配置上難以做好精準規劃。如果性能配置預留過高,會造成日常資源的大量閑置浪費;而如果性能預留不足,業務突發洪峰會造成業務受損。我們推出了 ESSD Auto PL 雲盤,它支持性能指定配置的同時,支持按業務負載自動伸縮,單盤可以自動提升到最高 100 萬 IOPS 性能,為不可預期的突發訪問提供安全便捷的性能自動配置。

持久存儲 – 容器網絡文件系統 CNFS

針對容器中使用文件存儲的優勢和挑戰,阿里雲存儲團隊與容器服務團隊共同推出了容器網絡文件系統 CNFS,內置在阿里雲託管的 Kubernetes 服務 ACK 中。CNFS 通過將阿里雲的文件存儲抽象為一個 K8s 對象(CRD)進行獨立管理,包括創建、刪除、描述、掛載,監控及擴容等運維操作,使用戶可以在享受容器使用文件存儲帶來的便捷的同時,提高文件存儲的性能和數據安全,並提供容器一致的聲明式管理。

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

CNFS 在可訪問性、彈性擴容、性能優化、可觀測性、數據保護、聲明式等六個方面針對容器存儲進行了深度優化,使其與開源方案相比具有以下明顯優勢:

  • 在存儲類型方面,CNFS 支持文件存儲,目前支持阿里雲文件存儲 NAS
  • 支持 Kubernetes 兼容的聲明式生命周期管理,可以一站式管理容器和存儲
  • 支持 PV 的在線擴容、自動擴容,針對容器彈性伸縮特性優化
  • 支持更好的和 Kubernetes 結合的數據保護,包括 PV 快照、回收站、刪除保護、數據加密、數據災備等
  • 支持應用級別的應用一致性快照,自動分析應用配置和存儲依賴,一鍵備份、一鍵還原
  • 支持 PV 級別監控
  • 支持更好的訪問控制,提高共享文件系統的權限安全,包括目錄級 Quota、ACL
  • 提供性能優化,針對文件存儲的小文件讀寫,提供更優化的性能
  • 成本優化,提供低頻介質及轉換策略,降低存儲成本

最佳實踐

數據庫容器化使用 ESSD 雲盤高密掛載的最佳實踐

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

數據庫容器化使用 ESSD 雲盤高密掛載的業務場景主要面臨的需求是:數據庫部署模式從虛擬機向容器化發展,持續提升彈性和可移植性,簡化部署。容器部署密度隨着 CPU 核數線性增長,需要持久化存儲提升掛載密度。數據庫作為 IO 密集型業務,對單機存儲性能提出更高要求。

我們的解決方案是數據庫使用 g6se 存儲增強型實例,單實例提供最高 64 塊雲盤掛載密度,g6se 存儲增強型實例,提供最高 100 萬 IOPS,4GB 存儲吞吐,適配單機高密部署的性能需求。 數據庫容器化使用 ESSD 雲盤高密掛載的優勢是:

  • 高密掛載:相比上代實例,雲盤掛載密度提升 400%,提升數據庫實例單機部署密度。
  • 高性能:單機最高 100 萬 IOPS,多個雲盤之間 IO 天然隔離,提供穩定可預期讀寫性能。
  • 高彈性:ESSD 雲盤 支持 IA 快照,快照立即可用實現只讀實例的秒級創建。
  • 高可靠性:雲盤基於 9 個 9 數據庫可靠性設計,同時支持快照、異步複製等數據保護手段,解決軟硬件故障帶來的數據安全風向。

Prometheus 監控服務使用文件存儲的最佳實踐

阿里雲徐立:面向容器和 Serverless Computing 的存儲創新

Prometheus 的實現方式是Prometheus server 主要用於抓取和存儲數據。Client libraries 可以用來連接 server 並進行查詢等操作,push gateway 用於批量,短期的監控數據的歸總節點,主要用於業務數據彙報等。不同 exporter 用於不同場景下的數據收集,如收集 MongoDB 信息 MongoDB exporter。

Prometheus 的核心存儲 TSDB ,類似 LSM tree 的存儲引擎。我們看到一個趨勢,存儲引擎多節點數據同步,需要引入 Paxos 一致性協議。中小型客戶在管理引擎的時候,管理一致性協議的時候難度非常大,架構將計算和存儲分離,計算是無狀態的,TSDB 的存儲的引擎釋放給分佈式文件系統,天然需要 NAS 共享文件系統。

Prometheus 監控服務使用文件存儲的優勢是:

  • 共享高可用:多 Pod 共享 NAS 持久化存儲,計算節點 Failover 實現容器應用的高可用。
  • 0 改造:分佈式 POSIX 文件系統接口,無需任何改造
  • 高性能:支持並發訪問,性能滿足瞬間拉起索引查詢,同步進行數據加載以及低時延索引查詢 + 寫入
  • 高彈性:存儲空間不需預配置,按需使用,按量計費,適配容器彈性能力

總結

面向容器和 Serverless Computing 的存儲創新發展驅動了存儲視角的新變化,整個存儲界面上移,開發者更加專屬於應用本身,基礎設施的運維盡量被託管。存儲供給的特性更加高密、彈性、極速。

以上為大家分享了阿里雲容器存儲的技術創新,包括 DADI 鏡像加速技術,為容器規模化啟動奠定了很好的基礎,ESSD 雲盤提供極致性能,CNFS 容器網絡文件系統提供極致的用戶體驗。

隨時雲原生創新序幕拉開,雲原生存儲創新剛剛走出第一步,相信和各位行業專家一起開創和 Reinvent 存儲的創新機會。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/218742.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 00:33
下一篇 2024-12-09 00:33

相關推薦

發表回復

登錄後才能評論