寻找具有扩展缓存以加速文件访问的网络文件系统

Bre*_*els 5 nfs dropbox samba openafs

我正在运行一个存储我的文档的小型家庭服务器。该服务器中的磁盘采用 RAID 1 配置(使用 Linux md),并且它还会定期备份到外部硬盘驱动器以确保我不会丢失它们。但是,我总是使用 SMB 共享从家庭网络上的其他计算机访问文件,这会导致相当大的速度损失(尤其是通过 WLAN 连接时)。这在编辑大文件(例如数码相机 RAW)时非常烦人。

我一直在寻找解决这个问题的方法。它必须提供某种本地缓存来加速文件访问。客户端最好不要在服务器上保留所有数据的副本,因为它包含大量照片,其中大部分我不会经常访问。相反,它应该只缓存访问的文件并将更改同步回后台。理想情况下,它还可以进行一些智能预读(例如,缓存与当前打开的文件位于同一目录中的文件),但我认为这要求有点高。同步应该是自动的(在文件更改时)。在我的用例中不太可能发生冲突的文件更改(同时在不同的客户端上),但我希望它们处理得当(通知用户)。

到目前为止,我遇到了以下选项:

  • 类似于 Dropbox 的东西。iFolder似乎是唯一接近的东西,但它的声誉(稳定性)和要求让我望而却步。

  • 分布式文件系统,例如OpenAFS。我不确定这会加快文件访问速度。对于我需要的东西来说,这可能是矫枉过正。

  • 也许 NFS 甚至 Samba 提供了这些可能性。我读了一些关于 Windows 的Offline Files,但它的操作似乎有限(至少在 Windows XP 上)。

由于这只是供个人使用,我不愿意花很多钱。免费的解决方案将是首选。此外,服务器需要在 Linux 上运行,我需要一个至少适用于 Windows 的客户端。

编辑:我已经设置了 OpenAFS(一个非常复杂的过程)。它似乎满足了我的大部分需求。文件在本地缓存,加快了对缓存文件的访问。当然,首次访问文件仍然很慢。我期待着为未来的 OpenAFS 版本计划的Disconnected AFS,因为这将允许预缓存文件。这将非常适合编辑大文件集,例如相机 RAW。

小智 0

在断开连接模式下工作的文件系统的问题是 1) 并发访问和 2) 同步。如果您不需要并发访问,只需购买一个可移动硬盘并随身携带即可。如果您确实需要并发访问,那么您将会遇到同步问题,因为使用本地副本的客户端如何告诉其他客户端网络上的副本现在已经过时了?如果您考虑一下,您越接近同步,拥有缓存的意义就越小。因此,两个极端通常会获胜;您可以获取便携式驱动器或使用不缓存的文件系统。

对于您的照片,您可能真正需要的是本地索引,以便您可以在索引中本地搜索,但从网络获取实际文件。这是在比文件系统本身更高的级别上运行的东西,所以你没有找到你正在寻找的东西的原因是你正在寻找错误的东西。:) 您可能应该寻找图像索引程序;据我记得,这个问题已通过多种方式得到解决。

对于更通用的解决方案,受 Subversion 或 CVS 或类似的启发的东西可能会工作得相当好。