我在生产中有几个使用NFS挂载在Web头之间共享资源(通常是静态资产文件)的Web应用程序。如果NFS挂载变得不可用,Apache将挂起请求无法访问的文件,内核将记录:
Nov 2 14:21:20 server2 kernel: nfs: server server1 not responding, still trying
我在RHEL5中重现了运行NFS v3和Apache 2.2.3的行为:
在Server1上创建NFS挂载(我的/ etc / exports的内容)
/srv/test_share server2(rw)
在Server2上挂载NFS共享(我的/ etc / fstab的内容)
server1:/srv/test_share /mnt/test_share nfs defaults 0 0
使用简单的HTML文件在Apache中设置虚拟主机,该文件引用存储在NFS sharen上的图像文件
加载网站,html和图片文件都返回200
卸载NFS共享,加载页面返回引用图像的404s
重新安装NFS共享
通过在Server1上关闭NFS来模拟NFS崩溃 - 重新加载站点会挂起检索引用的文件。
干杯,
本
答案 0 :(得分:2)
几个选项:
soft,intr,timeo=10
代替default
选项2和3为您提供断开连接的操作,因此比nfs更强大。 drdb是性感的,但我的建议是选择2与sitwething像git或svn,简单而强大
答案 1 :(得分:0)
我不会直接从NFS挂载服务,而是从本地文件系统直接服务。
设置一个每隔几分钟就将NFS挂载同步到本地文件系统的cron作业就不会太难了。 Apache将从那里提供其内容,而不依赖于NFS安装。如果挂载发生故障,Apache仍然可以为资产提供服务,尽管它们可能已经过时,直到NFS挂载恢复为止。