ossfs 2.0是基於用戶端檔案系統(Filesystem in Userspace, FUSE)的用戶端,能將阿里雲Object Storage Service服務OSS掛載成本地檔案系統,業務容器能像訪問本地檔案一樣通過POSIX操作訪問OSS資料。ossfs 2.0相較於ossfs 1.0在順序讀寫和高並發小檔案讀取等方面實現了效能提升,適用於對儲存訪問效能要求較高的情境(如AI訓練和推理、巨量資料處理、自動駕駛等)。
效能提升
ossfs 2.0相較於ossfs 1.0在順序讀寫和高並發小檔案讀取方面均實現了顯著的效能提升。更多有關ossfs 2.0效能說明,請參見效能測試。
順序寫入效能:在單線程大檔案順序寫入情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了近18倍。
順序讀取效能
在單線程大檔案順序讀取情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了約8.5倍。
在多線程(4線程)大檔案順序讀取情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了5倍以上。
小檔案並發讀取效能:在高並發(128線程)讀取小檔案的情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了280倍以上。
適用情境
ossfs 2.0適用於對儲存訪問效能要求較高的情境,比如AI訓練、推理、巨量資料處理、自動駕駛等新型計算密集型負載。這類工作負載主要涉及順序和隨機讀取、順序(僅支援追加)寫入操作,並且無需依賴完整的 POSIX 語義。
使用限制
許可權要求:需確保AccessKey對目標Bucket或首碼(prefix)相關資源擁有全部許可權,否則可能導致掛載失敗或功能異常。
儲存類型限制:不支援掛載Archive Storage、冷Archive Storage、深度冷Archive Storage類型的Bucket。
檔案名稱限制:檔案名稱長度上限255字元(遵循Linux限制),OSS中超過此限制的檔案或目錄在掛載點內不可見。
檔案讀取限制:新寫入的檔案必須在檔案關閉後才會上傳到OSS。如果讀取一個正在寫入、尚未關閉的檔案,可能導致報錯。
檔案寫入限制:不支援隨機寫入,不支援並發寫入同一個檔案。寫入分區大小預設是8388608位元組(8 MiB),即最大支援83886080000位元組(78.125 GiB)的檔案寫入。分區大小可根據掛載選項upload_buffer_size配置。
檔案重新命名操作(非原子性)
檔案:先拷貝後再執行遠端檔案的刪除操作。
目錄:對所有檔案執行拷貝操作後,再批量執行源檔案的刪除操作。目錄重新命名時預設限制子孫檔案數量為200 萬,限制的子孫檔案數量可根據掛載選項rename_dir_limit配置。
並發寫入一致性:多用戶端同時掛載同一Bucket並寫入同一檔案時,無法保證資料一致性。
POSIX API相容性:部分相容,具體請參見POSIX API支援情況。
功能介紹
功能特性
提供基礎的POSIX相容性,聚焦於發揮OSS的服務端讀寫能力。
通過端到端的讀寫鏈路最佳化,提供了高效的大檔案順序讀寫能力。
通過高效的中繼資料管理能力,提供了高效的小檔案並發載入能力。
POSIX API支援情況
以下為ossfs 1.0與ossfs 2.0對於常用POSIX API的支援情況。
功能分類 | 操作/功能 | ossfs 1.0 | ossfs 2.0 |
檔案基礎操作 |
| ||
| |||
| |||
檔案讀寫 |
| ||
| 支援隨機寫入(需配置磁碟緩衝區) | 僅支援順序寫入(無需磁碟緩衝) | |
| (可調整檔案大小) | 僅支援清空檔案 | |
檔案元操作 |
| ||
| |||
| |||
目錄操作 |
| ||
| |||
| |||
許可權與屬性 |
| ||
| |||
| |||
| |||
擴充功能 |
| ||
| |||
|
運行方式
ossfs 2.0用戶端以容器的形式運行在ack-csi-fuse命名空間下的Pod中。
相關文檔
通過靜態PV和PVC將OSS Bucket 掛載為 ossfs 2.0 儲存卷,詳見使用ossfs 2.0靜態儲存卷。
通過動態PV將OSS Bucket掛載為 ossfs 2.0 儲存卷,詳見使用ossfs 2.0動態儲存裝置卷。