免责声明:本文可能由社区贡献或涉及第三方产品信息,建议您访问社区或第三方产品的官方网站获取帮助与支持。第三方产品不在七牛云售后支持范围。本文仅供参考,七牛云不做任何暗示或其他方式的承诺。
问题描述
在Linux系统的云服务器QVM实例内创建文件时,出现类似如下空间不足的提示。
No space left on device …
问题缘由
导致该问题的可能诱因如下所示:
解决方案
七牛云提醒您:
要解决该问题,请依照不同的问题缘由,通过以下方法进行处理:
分区容量满的处理登入服务器,使用df -h命令查看c盘使用率,其中的Mounted on指挂载的目录。
进入根目录,执行以下指令,逐级查看那个目录占用c盘空间较大,进入相应的目录linux文件系统的inode,直到找到最精确的的文件或目录。
du -sh
系统显示类似如下。
最后,结合业务情况等判定对相关文件或目录进行删掉,或者订购更大的数据盘分担处理。inode容量满的处理
通过如下操作,解决inode容量满的问题。
查询inode使用情况
Linux的inode节点中,记录了文件的类型、大小、权限、所有者、文件联接的数量、创建时间与更新时间等重要的信息,还有一个比较重要的内容就是指向数据块的表针。一般情况不需要特殊配置,如果储存文件好多,则须要配置。有时c盘空间有剩余并且不能储存文件,可能是因为inode用尽所致。
执行df -i命令,可以查询inode的使用情况。
如果inode使用率达到或则接近100%,可以通过以下两种方法进行处理:清除inode占用高的文件或则目录
如果不便捷低格c盘以降低inode数目,可以参考以下步骤,清理inode占用量高的文件或则目录。
登录服务器,执行以下命令,分析根目录下的每位二级目录下有多少个文件。
for i in /; do echo $i; find $i | wc -l; done
系统显示类似如下。
然后,逐层步入inode占用最高的目录,继续执行上述指令,逐步定位占用偏低空间的文件或目录,最后进行相应清除。修改inode数目
如果不容许清除c盘中的文件,或者清除后inode使用率一直较高linux web服务器,则须要通过以下步骤,增加inode节点数目。
说明:inode的调整须要重新低格c盘,请确保数据早已得到有效备份后linux文件系统的inode,再进行以下操作。
执行以下命令,卸载系统文件。
umount /home
执行以下命令,重新构建文件系统,指定inode节点数。
mkfs.ext3 /dev/xvdb -N 1638400
说明:本文指定inode节点数1638400,现场实际环境请以实际为准。执行以下命令,修改fstab文件。
vim /etc/fstab
执行以下命令,查看修改后的inode节点数。
dumpe2fs -h /dev/xvdb | grep node
系统显示类似如下。
僵尸文件剖析与删掉
如果c盘和inode都没有问题,则须要查看是否存在未被消除句柄的僵尸文件。这些文件实际上早已被删除,但是有服务程序在使用这种文件,导致这种文件仍然被占用,无法释放c盘空间。如果这种文件过多,会占用很大的c盘空间。参考以下步骤查看并删掉僵尸文件。
远程登陆服务器。执行以下命令,安装lsof。
yum install lsof -y
执行以下命令red hat linux,查看僵尸文件占用情况。
lsof |grep delete | more
系统显示类似如下。
如果僵尸文件过多,会占用很大的c盘空间。可以通过以下方式释放句柄,以消除僵尸文件。重启服务器,验证疗效。重启服务器,系统会退出现有的进程,开机后重新加载。该过程会释放调用的deleted文件的句柄。根据lsof命令列举的pid进程号,使用kill命令正常停止或结束占用那些文件的服务进程。说明:如果服务器正在运行业务,可能会影响到业务,请谨慎操作。挂载点覆盖
先取消c盘挂载,再检测原挂载目录下的空间占用情况。
适用于
如果您的问题尚未解决,您可以递交工单联系七牛云技术支持。