在寻找扩展caching的networking文件系统来加速文件访问

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

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

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

因为这只是个人使用,我不愿意花很多钱。 免费的解决scheme将是首选。 此外,服务器需要在Linux上运行,并且我至less需要Windows的客户端。

编辑:我自从成立OpenAFS(一个相当复杂的过程)。 这似乎迎合了我的大部分需求。 文件在本地caching,加快了对caching文件的访问。 当然,第一次访问文件的速度仍然很慢。 我期待未来的OpenAFS发行计划的断开AFS ,因为这将允许预先caching文件。 这对于编辑诸如相机RAW等大型文件组合是完美的。

您可以使用FS-CachecachingNFSv4的读取和写入操作。 红帽已经写好了文档 。

FS-Cache是​​一个持久的本地caching,可以被文件系统用来从networking上获取数据并将其caching在本地磁盘上。 这有助于最大限度地减less从networking上安装的文件系统(例如NFS)访问数据的用户的networkingstream量。

在断开模式下工作的文件系统的问题是1)并发访问和2)同步。 如果你不需要并发访问,只需要一个可移动的硬盘驱动器并随身携带。 如果您确实需要并发访问,那么您将遇到同步问题,因为使用本地副本的客户如何告诉其他客户端networking上的副本现在已过时? 如果你仔细想一下,你所获得的同步越接近,拥有caching的点越less。 所以,这两个极端是通常胜利的; 你可以得到一个便携式驱动器或使用不caching的文件系统。

对于你的照片,你可能真正想要的是一个本地索引,这样你就可以在索引本地search,但从networking中获取实际的文件。 这是一个比文件系统本身更高层次的操作,所以你没有find你要找的东西就是你正在寻找错误的东西。 :)你可能应该正在寻找图像索引程序; 我记得,这是一个已经以多种方式解决的问题。

对于一个更一般的解决scheme,受Subversion或CVS或类似的启发可能会相当好。