在Linux或任何其他* NIX平台上有一种方法可以使用本地文件系统备份caching在本地安装远程文件系统。
我有一些S3需要访问的存档数据。 他们被访问的方式是; 一旦被触摸,应用程序需要将其从S3读取几次。
我知道我可能会要求文件系统来做caching数据的应用程序工作; 但麻烦的是我没有控制应用程序来修改它。
这在以前使用CacheFS的Solaris下运行良好; 本地硬盘空间被分配为缓冲区,其中caching经常访问的NFS安装文件的内容,并且如果CacheFS服务确定NFS服务器上的内容因为被caching而保持不变,则从该缓冲区中提供服务。 当我在Solaris下使用它时,它运行良好。
根据CacheFS上的维基百科页面 ,它被移植到(重写?)Linux,最近的版本已经在去年。
我不能评论Linux的实现,但假设它做了Solaris的工作,我认为这可能是你正在寻找的。
s3fs有一个caching选项。
如果通过“use_cache”选项启用,s3fs会自动维护由use_cache指定的文件夹中的文件的本地caching。 每当s3fs需要在s3上读写文件时,它首先将整个文件下载到由use_cache指定的文件夹中并对其进行操作。 当保险丝释放()被调用时,s3fs将重新上传文件到s3,如果它已被更改。 s3fs使用md5校验和以最大限度地减less从s3下载。 注意:这是不同的统计caching(见下文)。
本地文件caching通过计算和比较md5校验和(ETag HTTP头)来工作。
use_cache指定的文件夹只是一个本地caching。 它可以随时删除。 s3fs按需重新构build。 注意:这个目录的增长是无限的,可以填充一个依赖于存储桶的文件系统,并读取到这个存储桶。
你有没有考虑过像DRBD这样的文件系统镜像文件系统? 如果不是DRBD,那么还有其他的可以使用,它可能会给你一个跳转点,谷歌。
它并不是真正意义上的高速caching,但它会在本地复制数据并将更改传输到远程系统。 无论是否实用,取决于您对文件做了多less修改,以及您为什么首先使用S3。
有sshfs这可能是你在找什么。 我粗略的理解sshfs就像使用encryption的NFS挂载。