Object Storage Service是阿里雲提供的低成本的海量共用儲存空間,適合儲存寫入後較少修改的資料,例如圖片、音視頻等非結構化資料。ACK支援將OSS Bucket作為儲存卷掛載到Pod上,滿足持久化儲存需求。
OSS介紹
Object Storage Service是一款海量、安全、低成本、高可靠的雲端儲存體服務,具備高資料持久性、高資料可用性等特點。OSS提供標準、低頻訪問、歸檔、冷歸檔等多種儲存類型,可以覆蓋從熱到冷的各種資料存放區情境。您可以結合OSS計費、資料訪問頻率等選擇合適的儲存類型。更多資訊,請參見選型指導和儲存類型。
關於OSS的計量計費方式,請參見計費概述。
適用情境
低成本的海量共用儲存空間,適合儲存寫入後較少修改的資料。
常見適用情境如下:
共用資料情境
OSS為共用儲存,支援多個Pod同時訪問一份資料。OSS中的資料不會隨Pod刪除而清空,可用於Pod之間共用資料。
設定檔、圖片、各類視頻等媒體檔案等多讀少寫情境
OSS適合儲存非結構化資料,如設定檔、圖片、音視頻等。如業務需要變更檔案內容,請選擇ossfs1.0儲存卷,對POSIX操作的相容性更佳。
AI推理、資料分析等大並發批處理情境
OSS的高服務端頻寬適合大並發批處理,比如AI訓練、資料分析、自動駕駛等新型計算密集型負載及工作流程。這類工作負載主要涉及順序和隨機讀取、順序(僅支援追加)寫入操作,請選擇ossfs2.0儲存卷獲得更高吞吐。
具有較高鑒權、容災需求的資料安全情境
OSS支援3AZ同城冗餘容災及KMS等服務端加密能力,並支援MD5校正,保證資料上傳下載的完整性,同時支援RAM及OSS Bucket Policy兩種對象層級的鑒權方式。
若您需要通過OSS儲存卷實現寫操作,建議使用ossfs 1.0儲存卷,並升級到1.91及以上版本。更多資訊,請參見ossfs 1.0新版本功能介紹及效能壓測。
對於讀寫分離情境,可以參考OSS儲存讀寫分離最佳實務提升資料訪問效能。
選擇用戶端
OSS儲存卷可通過用戶端檔案系統(Filesystem in Userspace,簡稱FUSE)或虛擬塊裝置實現Object Storage Service的本地掛載。相較於傳統的本機存放區和Block Storage,其在POSIX操作相容性方面存在一定限制。
目前OSS儲存卷支援的用戶端如下。更多資訊,請參見用戶端選型參考。
用戶端 | 類型 | 說明 | 依賴的儲存群組件版本 |
FUSE | 始終支援。具體請參見ossfs 1.0版本說明。 | ||
FUSE | 支援完整讀和順序追加寫操作。適用多讀情境,大幅提升資料讀取效能。更多資訊,請參見ossfs 2.0概述。 | CSI組件版本為v1.33.1及以上。 | |
虛擬塊裝置 | 目前版本僅支援唯讀情境。使用虛擬塊裝置解決FUSE在海量小檔案唯讀情境的效能瓶頸。 | 除CSI組件外,還需部署strmvol-csi-driver組件。 |
使用說明
如需掛載OSS Bucket中的子目錄,建議直接使用PV中的
path欄位,而非subpath方式。若業務需要使用subpath或subpathExpr配置,為避免因許可權配置錯誤等原因導致掛載異常,請先查閱使用subpath或subpathExpr方式掛載OSS儲存卷異常。OSS儲存卷掛載根路徑不支援
chmod、chown操作,可通過配置項mp_umask實現。更多資訊,請參見OSS儲存掛載許可權問題。
注意事項
以下注意事項主要針對通用讀寫情境(ossfs 1.0),ossfs 2.0和strmvol用戶端由於僅支援部分POSIX操作(主要為讀操作),基本不涉及。
隨機或者追加寫檔案實際為在本地產生新檔案重新上傳至OSS服務端,由於OSS儲存特性,請注意以下事項:
檔案、檔案夾的rename操作非原子。
請盡量避免並發多寫,或直接在掛載路徑下進行壓縮、解壓縮等操作。
重要多寫情境依賴使用者自行協調各個用戶端的行為。對於寫操作導致的中繼資料和資料的不一致性問題,ACK不承諾保障。
此外,還需注意以下限制:
不支援永久連結(Hard Link)。
不支援掛載Archive Storage、冷Archive Storage或者深度冷Archive Storage類型的Bucket。
readdir操作預設會發送大量headObject請求以擷取路徑下的所有對象的擴充資訊。當目標路徑下的檔案較多時,可能會影響ossfs的整體效能。若在讀寫情境中對檔案的許可權等屬性不敏感,可開啟
-o readdir_optimize參數進行最佳化。具體請參見新增readdir最佳化功能。CSI plugin為v1.20.7以下版本時,僅檢測本地修改,而不能檢測其他用戶端或工具的外部修改。
CSI版本小於1.28時,ossfs以進程形式直接運行在節點上。支援的節點作業系統為CentOS、Alibaba Cloud Linux、ContainerOS和龍蜥作業系統。如果節點作業系統不支援,請升級CSI組件。