出于各种维护、稳定性和备份原因,我需要用不依赖共享磁盘的东西替换 10 个节点(10 个 Linux 主机)ocfs2 共享文件系统。客户端应用程序是仅 Linux 环境中的 PHP。
现在每个 PHP 客户端都从数据库中请求一个唯一的 ID,并在共享磁盘上创建一个具有该 ID/名称的文件。数据库存储所有文件元数据。以类似的方式访问现有文件。
我想用 putfile(id, '/tmp/path') 和 getfile(id, '/tmp/path') 通过网络调用文件服务器来替换共享磁盘解决方案。客户端我可以使用 tmpfs 中的文件。服务器应该处理压缩等。这也将使我摆脱 PHP 客户端依赖项,我可以直接从其他一些应用程序以及 Windows Delphi 应用程序中使用文件服务器。
理论上,基于 FTP 的解决方案甚至可以工作,尽管它可能表现不佳。还是我不信任旧的 FTP 协议是错误的?
我目前有超过 3000 万个文件 ID,其中大多数只有几 KB,但最大的例外是 300MB,总共只有 320GB。PHP 客户端还使用 gzip 和 tar 进行一些压缩和分组,这一切都非常笨拙。
我希望找到像 memcachedb 这样快速简单的东西,但对于文件。我发现的最接近的是 hadoop 的 hdfs,但我认为这不是正确的解决方案。
有什么建议吗?我错过了什么明显的东西?