什麽时候须要网络文件系统 ?缓存
作嵌入式的同窗常常会使用 NFS 将 host 上的某个目录挂载到开发板上,方便 host 上编译构建后能直接在板子上运行,减小手工拷贝操做。
网站开发时,在 host 上利用 IDE 进行开发后,发到线上机器上运行测试时,使用网络文件系统能更快的减小数据同步,提升开发效率。
C/C++ 等大型项目开发时,团队使用统一的开发机构建代码时,使用网络文件系统可以挂载开发机文件到本地,你能够方便的使用易用的图形化编辑器写代码。
各类各样的缘由,你须要使用网络文件系统,可是你的网络够快吗?网络文件系统还能再快吗?网络
小编用过 NFS,也用过 SSHF,都挺不错。可是在网络条件不理想的时候,卡顿现象很是明显。
网络条件不够理想时使用图形化的软体编辑远程文件体验不好,尤为是使用 oh my zsh 这样重量级的插件工做在远端的目录时。
网上曾有人对比过 NFS 和 SSHFS (http://www.admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS),SSHFS 确实相对来讲很不错。
直到用上了 Oxfs 之后,卡顿问题终于缓解了 :)编辑器
Oxfs 是一个相似与 SSHFS 的用户态网络文件系统,底层数据传输基于 SFTP 协议。
Oxfs 引入非同步刷新策略解决网络速度与用户操做文件读速度不匹配引发的卡顿问题。
Oxfs 写文件时,会首先写入本地缓存文件,并提交非同步更新任务将内容更新到远程主机上。
一样的,读文件时优先从本地缓存文件中进行读取。
Oxfs 的数据缓存最终落到磁碟,即使是从新挂载,依旧能够利用历史缓存。
一样的,Oxfs 也引入了文件属性,目录结构的 Memory 缓存,功能上对齐了 SSHFS。
能够说,Oxfs 是替代 SSHFS 的一个更好选择 :)测试
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 运行时工做目录,用于数据缓存ip