ossfs 2.0是一款專門用於通過掛載方式高效能訪問OSS(Object Storage Service)的用戶端,它具備出色的順序讀寫能力,可充分發揮OSS的高頻寬優勢。
效能提升
ossfs 2.0相較於ossfs 1.0在順序讀寫和高並發小檔案讀取方面均實現了顯著的效能提升。更多有關ossfs 2.0效能說明,請參見效能測試。
順序寫入效能:在單線程大檔案順序寫入情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了近18倍。
順序讀取效能:在單線程或多線程(4線程)大檔案順序讀取情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了3倍以上。
小檔案並發讀取效能:在高並發(128線程)讀取小檔案的情境下,ossfs 2.0的頻寬相較於ossfs 1.0提升了20倍以上。
適用情境
ossfs 2.0適用於對儲存訪問效能要求較高的情境,比如AI訓練、推理、巨量資料處理、自動駕駛等新型計算密集型負載。這類工作負載主要涉及順序和隨機讀取、順序(僅支援追加)寫入操作,並且無需依賴完整的 POSIX 語義。
運行環境
ossfs 2.0基於FUSE(使用者態檔案系統,Filesystem in Userspace)開發。
系統架構 | 作業系統 | 系統版本 | 下載地址 |
x86_64 | CentOS | CentOS 7、CentOS 8 | |
Alibaba Cloud Linux | Alibaba Cloud Linux 2、Alibaba Cloud Linux 3 | ||
Ubuntu | Ubuntu 20.04 LTS及後續LTS版本 | ||
Debian | Debian 11及以上版本 | ||
aarch64 | Alibaba Cloud Linux | Alibaba Cloud Linux 3 |
使用限制
許可權要求:需確保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的服務端讀寫能力。
通過端到端的讀寫鏈路最佳化,提供了高效的大檔案順序讀寫能力。
通過高效的中繼資料管理能力,提供了高效的小檔案並發載入能力。
通過配置fstab的方式,提供了開機自動掛載OSS Bucket的能力。
POSIX API支援情況
以下為ossfs 1.0與ossfs 2.0對於常用POSIX API的支援情況。
功能分類 | 操作/功能 | ossfs 1.0 | ossfs 2.0 |
檔案基礎操作 |
| ||
| |||
| |||
檔案讀寫 |
| ||
| 支援隨機寫入(需配置磁碟緩衝區) | 僅支援順序寫入(無需磁碟緩衝) | |
| (可調整檔案大小) | 僅支援清空檔案 | |
檔案元操作 |
| ||
| |||
| |||
目錄操作 |
| ||
| |||
| |||
許可權與屬性 |
| ||
| |||
| |||
| |||
擴充功能 |
| ||
| |||
|