no space left on device磁盘空间不足
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了no space left on device磁盘空间不足相关的知识,希望对你有一定的参考价值。
磁盘在使用之前需要做RAID冗余阵列、分区、格式化、挂载;
格式化的目的:1、创建文件系统;2、初始化inode和block(即inode和block的数量是一定的);每一个非空文件都要占用一个inode和至少一个block,那么无论是inode满了还是block满了,磁盘就存放不了东西了,就会提示no space left on device;
那么如何解决这个问题?
1、df -h 查看磁盘(block)使用情况,如果满了,那么删除不需要的大文件;
2、df -i 查看inode使用情况,如果inode满了,查找目录本身大于1M空间的;(思考为什么要找目录本身大于1M的?提示:目录的本身也就是目录的实际内容,即目录的block中放的是什么?----文件名,文件名越多目录本身的block就越大,就代表目录里面小文件越多,那么用什么查找目录本身大于1M的?find)
具体排查过程:首先我创建两个空目录;
1、block满了的情况:这里我实际创建一个大文件进行演示;
![](http://i2.51cto.com/images/blog/201812/09/d6ff0be25346510e46f80bdff80c0de0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201812/09/bbf9d5ea10d43be017610aaae62cfae3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
假设这个时候,磁盘bloock满了,具体查找的过程如下,先过滤出根下占用空间最大的目录,然后过滤出改目录下最大的,一级一级过滤直到找到大文件为止;![](http://i2.51cto.com/images/blog/201812/09/862e1e4587bbf57d377d848800b65962.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
找到大文件之后确认是否要删除;
2、inode满了查找:上面已经说了,要查找目录本身(不包含下面文件大小)大小大于1M的,用find的查找,-size 查找的就是目录本身的实际大小(不包含下面文件);找到之后,目录没用可以删除目录;目录有用可以配合ls |xargs rm -f ,如果还是删除不掉,再缩小范围,find -name |xargs rm -f;
以上是关于no space left on device磁盘空间不足的主要内容,如果未能解决你的问题,请参考以下文章
关于“no space left on device”(磁盘空间不足)问题