什么時候需要網絡文件系統 ?
- 做嵌入式的同學經常會使用 NFS 將 host 上的某個目錄掛載到開發板上,方便 host 上編譯構建后能直接在板子上運行,減少手工拷貝操作。
- 網站開發時,在 host 上利用 IDE 進行開發后,發到線上機器上運行測試時,使用網絡文件系統能更快的減少數據同步,提高開發效率。
- C/C++ 等大型項目開發時,團隊使用統一的開發機構建代碼時,使用網絡文件系統能夠掛載開發機文件到本地,你可以方便的使用易用的圖形化編輯器寫代碼。
- 各種各樣的原因,你需要使用網絡文件系統,但是你的網絡夠快嗎?網路文件系統還能再快嗎?
NFS 還是 SSHFS ?
- 筆者用過 NFS,也用過 SSHF,都挺不錯。但是在網絡條件不理想的時候,卡頓現象非常明顯。
- 網絡條件不夠理想時使用圖形化的軟件編輯遠程文件體驗很差,尤其是使用 oh my zsh 這樣重量級的插件工作在遠端的目錄時。
- 網上曾有人對比過 NFS 和 SSHFS (http://www.admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS),SSHFS 確實相對來說很不錯。
- 直到筆者用上了 oxfs 以后,這個問題終於緩解了 :)
Oxfs 介紹
- Oxfs 是一個類似與 SSHFS 的用戶態網絡文件系統,底層數據傳輸基於 SFTP 協議。
- Oxfs 引入異步刷新策略解決網絡速度與用戶操作文件速度不匹配引起的卡頓問題。
- Oxfs 寫文件時,會首先寫入本地緩存文件,並提交異步更新任務將內容更新到遠程主機上。
- 同樣的,讀文件時優先從本地緩存文件中進行讀取。
- Oxfs 的數據緩存最終落到磁盤,即便是重新掛載,依舊可以利用歷史緩存。
- 同樣的,Oxfs 也引入了文件屬性,目錄結構的 Memory 緩存,功能上對齊了 SSHFS。
- 可以說,Oxfs 是替代 SSHFS 的一個更好選擇 :)
Oxfs 用法
- Oxfs 的安裝非常簡單。
$ pip install oxfs
- Oxfs 的用法也很簡單。
$ mkdir remote
$ sudo oxfs -s user@xxx.xxx.xxx.xxx -m remote -r /home/oxfs -p /tmp/oxfs
-s
配置遠程主機訪問的地址和用戶,要求遠程主機上配置了當前機器的 SSH 公鑰。-m
設置本地掛載點。-r
設置要掛載到本地的遠程主機目錄。-p
設置 Oxfs 運行時工作目錄,用於數據緩存。
Oxfs 性能
- 摘錄來自 Oxfs 主頁。
- Oxfs vs Sshfs
- Sshfs performance (default parameters).
- Sshfs enable the kernel cache by default, that's why re-read is deadly fast.
- Oxfs performance (default parameters).
- Oxfs just enable the fuse auto_cache flag.
更多詳情,可以訪問 Oxfs 主頁:oxfs.io
我的博客即將同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=1wjy7f6lv2t1c