我正在帮助设置一个 Web 服务,其中用户数据将存储在运行 Samba 的服务器上的 sqlite 数据库中,并且一个或多个 Web 服务器将在后端读取和写入这些数据库。我希望得到有关在全 Linux 环境中使用哪种网络文件系统的建议,以及任何其他想法
答案1
NFS 可能是您最好的选择。NFS 非常易于配置,很可能被证明是完成这项工作的最佳工具。如果您有 Windows,CIFS(Samba)是最佳选择,但在全 Linux 环境中,NFS 是最佳选择。
话虽如此,我同意 Ben S 的观点。如果唯一的选择是 sqlite(我希望不是),那么 NFS 就是最佳选择。但真正的 DBMS 才是更好的选择。
答案2
来自 sqlite文档:
此外,许多网络文件系统实现的文件锁定逻辑都存在错误(在 Unix 和 Windows 上均如此)。如果文件锁定不能正常工作,则两个或多个客户端程序可能会同时修改同一数据库的同一部分,从而导致数据库损坏。
所以,非常小心!众所周知,NFS 不遵循 POSIX 行为,尤其是关于原子性。
答案3
我建议使用真正的多用户数据库。SQLite 是单用户应用程序的最佳选择,而不是多服务器。
答案4
这实际上不是 sqlite 的用途。这是可能的,但更强大的系统(并且更易于维护)将是一个简单的 mysql 安装,而不是整个文件服务器。