CentOS 5.5 - 磁盘无故填满

CentOS 5.5 - 磁盘无故填满

我有一个 CentOS 5.5 盒子,上面有一个单独的 /home 分区。df -h显示其使用率为 100%。df -i显示大量可用 inode。du -sh /home /home*显示 /home 中大约有 100MB 的文件。lsof -n|grep /home 显示 /home 中没有打开的文件。lsof -n|grep removed 显示没有接触 /home 的文件。

该分区通过 NFS 共享,并安装在另外两个 CentOS 5.5 客户端上。lsof -n|grep /home并且lsof -n|grep deleted不显示/home或 的文件/

当我卸载并重新安装分区时,磁盘使用率从 100% 降至 3% 以下。然而几天后磁盘使用率又回到了 100%。

使用 /home 的唯一东西是 NFSd、自定义脚本和 SSHd。此脚本将文件从/home/somedir移动到/home/tmp,然后将文件移动到 /tmp,然后解析文件。此脚本在所有三个框上运行。

新文件通过脚本放置在 /home 中,该脚本将文件 SCP 到 中设置的 chroot 环境中/home。只有几个二进制文件和一个/dev/null节点在 中/home/somepath/...

我使用service nfs stopservice portmap stop停止了 nfs,停止了 sshd,确认上面提到的脚本没有运行,然后检查了磁盘使用情况。它仍然为 100%。只有卸载并重新安装它似乎才能解决问题。

/home 的 fsck -f(当然,未挂载)显示文件系统正常。

所有机器均已完全更新并运行 CentOS 5.5。

我的磁盘空间去哪儿了?

答案1

推测:您的自定义脚本在这三个盒子上运行,在尝试从三个地方操作相同的文件时,被其自身的其他实例绊倒;在远程系统上运行的 NFS 客户端告诉其内核它已删除了一个文件,但实际上该文件已被另一个系统上的进程删除,因此远程客户端被卡住了。

解决方案:使用 NFS 允许远程系统访问文件系统,但仅在导出系统上运行清理脚本。

相关内容