我有一个非常基本的 Apache 双节点集群,其中 SAN 上有平面文件,两个节点上都安装了 OCFS2 文件系统。网站运行正常,但我在两个服务器的系统日志中看到很多以下消息:
在 Apache 1 上
[248816.701082] (apache2,62749,1):ocfs2_mknod:459 ERROR: status = -31
[248816.702187] (apache2,62749,1):ocfs2_mkdir:613 ERROR: status = -31
在 Apache2 上
[249043.856561] (apache2,46225,2):ocfs2_mknod:459 ERROR: status = -31
[249043.858633] (apache2,46225,2):ocfs2_mkdir:613 ERROR: status = -31
每天记录的此类行数约为 6000 条,错误码始终约为
ocfs2_mknod:459 and ocfs2_mkdir:613.
有人见过这种情况吗?我真的很想摆脱这些错误消息。
答案1
显然,这个问题是由于坏扇区造成的(不确定是怎么回事)。在我发布这个问题几天后,情况变得更糟了。系统抱怨分区上有坏扇区,然后只以只读方式挂载。最终它完全停止挂载分区,我们不得不在 SAN 上创建一个新分区并从备份中恢复数据。
新的分区工作了一段时间,但现在两个节点中的一个,由于某种原因,该分区以只读方式挂载。当我触摸文件时,出现以下错误:
touch: cannot touch `test_file': No space left on device
但在另一个节点上它运行良好。我可以像往常一样读写。
在这个问题上花费了太多时间之后,我们认为这不值得付出努力,现在正在寻找替代方案 - 也许是 glusterfs,GFS2 甚至是好的旧 NFS 共享来保存平面文件。
答案2
我遇到了错误“设备上没有剩余空间”,但是在 suse 11 sp2 上使用 corosync+pacemaker 的 ocfs2 文件系统上有可用空间
"No space left on device"
我用这个解决了这个问题http://www.novell.com/support/kb/doc.php?id=7008696