全部產品
Search
文件中心

Container Service for Kubernetes:strmvol儲存卷概述

更新時間:May 07, 2025

strmvol儲存卷通過虛擬塊裝置的形式掛載Object Storage Service資料,最佳化海量OSS小檔案的讀取效能。

方案概述

Object Storage Service具有支援海量資料存放區、按需付費的彈性成本以及基於HTTP協議的便捷訪問特性。容器化情境下通常採用FUSE(Filesystem in Userspace)方案掛載Object Storage Service資料,但對於小檔案讀取情境,您可以採用虛擬塊裝置方案,以strmvol(Streaming Volume的縮寫)儲存卷的形式掛載Object Storage Service資料。

strmvol儲存卷通過虛擬塊裝置直接存取OSS資料,消除了FUSE中介層的效能瓶頸,將資料訪問路徑直接下沉至儲存驅動層,以提升訪問速度。這一方案尤其適用於需要快速遍曆百萬級小檔案的情境,例如AI訓練集載入、時序日誌分析等業務。

FUSE方案特點

基於FUSE實現的檔案系統(如ossfs)方案。方案特點如下:

  • 能感知OSS服務端資料的變化(若關閉元資訊緩衝,則資料的變更是即時的)。

  • 支援寫操作,支援檔案系統的擴充資訊如gid、uid等。

  • 單次讀寫系統請求都將經過FUSE層傳遞到ossfs等用戶端,對于海量小檔案遍曆等請求量峰值較高的情境,會有明顯的額外效能開銷。

  • ossfs用戶端在早期CSI版本中以進程形態運行在所在節點上,當前CSI版本中,ossfs用戶端以單獨的Pod運行在叢集中,運行在同一節點且掛載了同一PV的Pod將共用一個ossfs用戶端進行OSS訪問。

虛擬塊裝置方案特點

基於底層虛擬塊裝置及核心態檔案系統(如erofs)方案。方案特點如下:

  • 初始化期間將拉取OSS Bucket掛載點下的所有檔案元資訊並構建索引。目前的版本中,暫不支援運行期間OSS服務端資料的同步。

  • 針對唯讀情境,不支援OSS對象的擴充資訊解析。

  • 規避FUSE層的效能開銷。使用預設的記憶體大小作為資料的儲存介質,加速小檔案情境的預取速度。

  • 除了CSI組件,本方案還會部署一個名為strmvold的DaemonSet,負責管理節點上建立的虛擬塊裝置。虛擬塊裝置掛載至節點後佔用預設的節點資源實現資料緩衝。

適用情境

如果您的業務滿足以下特性,可以採用本文介紹的虛擬塊裝置方案(即strmvol儲存卷)。

說明

FUSE方案適用於絕大多數通用情境。具體使用方式請參見使用ossfs 1.0靜態儲存卷使用ossfs 1.0動態儲存裝置卷使用ossfs 2.0儲存卷

  • 資料已儲存在OSS Bucket中,且在業務運行期間資料無更新需求。

  • 業務對檔案系統的擴充資訊不敏感。

  • 唯讀情境,尤其是海量小檔案或隨機讀情境。

運行方式

使用strmvol儲存卷需要在應用市場部署strmvol-csi-driver組件。部署該組件會產生以下資源:

資源名稱

資源類型

功能

strmvold

DaemonSet

負責管理節點上建立的虛擬塊裝置。

strmvol-csi-plugin

DaemonSet

實現strmvol儲存卷的掛載和卸載能力。

strmvol-csi-provisioner

Deployment

實現strmvol儲存卷的動態建立能力。