ossfs 能讓您在Linux系統中把OSS bucket 掛載到本地檔案系統中,您能夠便捷地通過本地檔案系統操作OSS 上的對象,實現數據的共用。
主要功能
ossfs 基於s3fs 構建,具有s3fs 的全部功能。主要功能包括:
- 支援POSIX 檔案系統的大部分功能,包括檔案讀寫,目錄,連結操作,許可權,uid/gid,以及擴充屬性(extended attributes)
- 通過OSS 的multipart 功能上傳大檔案。
- MD5 校驗保證資料完整性。
局限性
ossfs提供的功能和性能和本地檔案系統相比,具有一些局限性。具體包括:
- 隨機或者追加寫檔案會導致整個檔案的重寫。
- 元數據操作,例如list directory,性能較差,因為需要遠端存取OSS伺服器。
- 檔案/檔案夾的rename操作不是原子的。
- 多個客戶端掛載同一個OSS bucket時,依賴用戶自行協調各個客戶端的行為。例如避免多個客戶端寫同一個檔案等等。
- 不支援hard link。
- 不適合用在高並發讀/寫的場景,這樣會讓系統的load升高。
安裝及使用
- 安裝包下載
Linux發行版 下載 Ubuntu 16.04 (x64) ossfs_1.80.5_ubuntu16.04_amd64.deb Ubuntu 14.04 (x64) ossfs_1.80.5_ubuntu14.04_amd64.deb CentOS 7.0 (x64) ossfs_1.80.5_centos7.0_x86_64.rpm CentOS 6.5 (x64) ossfs_1.80.5_centos6.5_x86_64.rpm 由於低版本的Linux發行版本核心版本比較低,ossfs進程在運行過程中容易出現掉線或者其他問題,因此建議用戶將作業系統升級到CentOS 7.0或者Ubuntu 14.04以及以上版本。
- 安裝方法
- 對於Ubuntu,安裝命令為:
sudo apt-get update sudo apt-get install gdebi-core sudo gdebi your_ossfs_package
- 對於CentOS6.5及以上,安裝命令為:
sudo yum localinstall your_ossfs_package
- 對於CentOS5,安裝命令為:
sudo yum localinstall your_ossfs_package --nogpgcheck
- 對於Ubuntu,安裝命令為:
- 使用方法
設定bucket name 和 AccessKeyId/Secret資訊,將其存放在/etc/passwd-ossfs 檔案中,注意這個檔案的許可權必須正確設定,建議設為640。
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs
將OSS bucket mount到指定目錄。ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
樣本
將
my-bucket
這個bucket掛載到/tmp/ossfs
目錄下,AccessKeyId是faint
,AccessKeySecret是123
,oss endpoint是http://oss-cn-hangzhou.aliyuncs.com
echo my-bucket:faint:123 > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir /tmp/ossfs ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com
注意 如果您使用在阿里雲購買的雲虛擬機器主機(ECS)來提供ossfs服務, 您可以使用內網網域名稱,比如在這個例子您可以將oss endpoint 改成 oss-cn-hangzhou-internal.aliyuncs.com
,這樣可以節省頻寬方面的費用。OSS的內網網域名稱請參考訪問網域名稱和資料中心。卸載bucket
fusermount -u /tmp/ossfs
更多詳細內容請參考:GitHub ossfs
版本日誌
請參考:GitHub ChangeLog