ossfs 2.0是一款專門用於通過掛載方式高效能訪問OSS(Object Storage Service)的用戶端,它具備出色的順序讀寫能力,可充分發揮OSS的高頻寬優勢。
效能提升
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 語義。
運行環境
ossfs 2.0基於FUSE(使用者態檔案系統,Filesystem in Userspace)開發。目前支援x86_64架構,核心版本大於等於3.10的Alibaba Cloud Linux和CentOS系統。
作業系統 | 系統版本 | 系統架構 | 核心版本 | 下載地址 | 安裝教程 |
Alibaba Cloud Linux | Alibaba Cloud Linux (2系列) | x86_64 | 4.19 | ||
Alibaba Cloud Linux (3系列) | x86_64 | 5.10 | |||
CentOS | CentOS(7系列) | x86_64 | 3.10 | ||
CentOS(8系列) | x86_64 | 4.18 |
使用限制
許可權要求:需確保AccessKey對目標Bucket或首碼(prefix)相關資源擁有全部許可權,否則可能導致掛載失敗或功能異常。
儲存類型限制:不支援掛載Archive Storage、冷Archive Storage、深度冷Archive Storage類型的Bucket。
檔案名稱限制:檔案名稱長度上限255字元(遵循Linux限制),OSS中超過此限制的檔案或目錄在掛載點內不可見。
檔案讀取限制:新寫入的檔案必須在檔案關閉後才會上傳到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 |
檔案基礎操作 |
| 支援 | 支援 |
| 支援 | 支援 | |
| 支援 | 支援 | |
檔案讀寫 |
| 支援 | 支援 |
| 支援隨機寫入(需配置磁碟緩衝區) | 僅支援順序寫入(無需磁碟緩衝) | |
| 支援(可調整檔案大小) | 僅支援清空檔案 | |
檔案元操作 |
| 支援 | 支援 |
| 支援 | 支援 | |
| 支援 | 支援 | |
目錄操作 |
| 支援 | 支援 |
| 支援 | 支援 | |
| 支援 | 支援 | |
許可權與屬性 |
| 支援 | 支援 |
| 支援 | 支援(操作不報錯,但設定不生效) | |
| 支援 | 支援(操作不報錯,但設定不生效) | |
| 支援 | 支援 | |
擴充功能 |
| 支援 | 不支援 |
| 支援 | 不支援 | |
| 不支援 | 不支援 |