在计算机上保留 nfs 挂载的本地副本

在计算机上保留 nfs 挂载的本地副本

当笔记本电脑位于家庭网络上时,我会安装所有主目录以及笔记本电脑上的其他内容。我想知道当我的笔记本电脑断网时是否有办法保留 nfs 挂载的本地副本。

一个好处是能够合并更改的文件夹和文件等。

答案1

离线缓存是一回事,但您所要求的却更加困难。如果在服务器和客户端上都修改了文件,而两台计算机未连接,则必须有人决定保留哪个版本,或合并两个版本。当两台机器重新连接时要求这种用户输入不太适合文件系统模型。

有几个NFS 缓存设施,但大多数都是为在线缓存而设计的,以加快访问速度。当任意一方修改文件时,它们需要服务器和客户端之间进行通信,因此它们不适合离线场景。同样适用于AFFS

人们正在努力构建一个支持离线操作的可用分布式文件系统:

  • 结尾是一个分布式文件系统,具有许多高级功能,特别是支持断开连接的操作。它是一个相对较老的项目,相当成熟,并且集成在 Linux 内核中。当客户端离线时,其修改会存储在队列中。当客户端重新连接时,如果可能的话,这些修改会被集成,并且 Coda 附带了工具来在发生冲突时协助合并。
  • 楚穆夫斯是一个相对较新的项目。它在现有的分布式文件系统(例如 NFS)之上添加了断开连接的操作。我认为它还没有完全准备好投入生产。

我不相信文件系统是解决这个问题的正确位置。冲突处理很困难并且需要用户输入。

对于低技术含量的解决方案,我建议齐奏,双向文件同步器。在服务器和笔记本电脑上保留文件的本地副本。连接笔记本电脑后和断开连接前,立即同步运行以同步两侧。 Unison 会告诉您是否存在冲突(如果没有冲突,则会默默运行);只要您在连接和断开连接时始终同步,就不会发生冲突。

提供更多服务但确实需要一些学习的解决方案是使用一些分布式版本控制软件。在每台计算机上保留一个存储库,每当更改文件时就提交,并且不要忘记尽可能推送/拉取更改。

答案2

如果您想保留文件并同步它们,只需创建一个本地副本并使用 rsync 同步 NFS 挂载和本地副本。

相关内容