为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满??

一:答疑解惑:

   这是因为该文件所在分区的inode号被用尽,虽然分区的剩余容量还有很多。

二:基本原理:

  inode为何物block又为何物?以及,inode都有哪些特征?

  ①我们知道,在linux文件系统中,文件名只是计算机用来给人看,而计算机本身只识别文件所对应的数字或编号,而这个编号或数字就是inode(大小为128bytes)。inode用来记录文件的属性,一个文件占用一个inode,同时inode还记录此文件的数据所在的block号码。

  ※文件属性大致包括:

    1.文件的访问模式

    2.文件所有者和所属组

    3.文件大小

    4.时间戳(atime,mtime,ctime)

    5.定义文件特征的标志(flag),如SetID等。

    6.文件真正内容的指向

  ②block也叫做数据块,用来存放文件中的数据。当文件大小大于block大小事,则一个block文件可占用多个block块,呈上,如果文件小于block,则该block剩余空间将不能被使用。

好,如果到这里,你还有些似懂非懂,那就废话不多说,直接上图:

             为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满?? 

  ③inode的特点:

    1.每个inode大小为均为128bytes

    2.每个文件只会占用一个inode,而一个inode可以被多个文件名所引用,而后面的这种属性也就是硬链接(hard link)的原理。

    3.每个分区都有固定的inode数量,因此,文件系统能够创建的文件数量与inode的数量有关,所以,当文件系统inode号被用光后,就无法再添加新的文件。

    4.系统读取文件的顺序;找到文件名所对应inode–>分析inode所记录的文件权限是否与用户权限相符合–>若符合,则读取inode所对应的block。

   好了,都说光说不练假把式,要想了解inode的真正含义,还得实践出真知,实验如下:

 三:实验:

  第一步:将/dev/sda1 挂载到新创建的目录 /zdd 下,并通过df -h 和 df -i 查看此分区的磁盘内存使用情况和磁盘inode使用情况:

     为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满??  

               图一

   第二步:从图一中我们看到,此分区的内存和inode号还有很大剩余,那么,接下来就在/zdd 下创建65525个文件,文件名分别是file{11..65535}:

     为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满??

                图二

  第三步:由图二可以看出,创建大量文件后,/dev/sda1虽然磁盘空间仅用了将近1%,但inode号却用了将近100%,只剩下1个可以使用,所以,在创建到第二个新文件时,意料之中就会发生图三创建失败的结果:

                      为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满??

                                                                           图三

    为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满??

                 图四

  好了,到这里,标题中的问题基本上已经得到了解决,而有关inode和block的相关内容事实上远不止这些,所以,骚年,静下心来多学习思考吧,只有丰富了头脑,才能拥有一身本事报效我们可爱的祖国为什么新建文件时,所在文件系统还有大量剩余空间,却提示此文件系统空间已满??,来,跟着我一起念:富强、民主、文明、和谐、敬业、、、、、、、、、、、、、、

原创文章,作者:yunyunyu,如若转载,请注明出处:http://www.178linux.com/82233

(1)
yunyunyuyunyunyu
上一篇 2017-07-22 22:13
下一篇 2017-07-23 13:36

相关推荐

  • shell脚本编程2

    shell脚本编程2   今天继续学习了shell脚本编程,续之前写的脚本编程1。上次主要学了编程的基础,脚本格式,变量类型及变量的使用,条件测试,数字运算并且进行了部分练习,因为这部分逻辑思维能力要求不是很高,因此记忆起来难度不是特别大。   从今天开始便进入了流程控制以及函数、数组、高级字符串操作、高级变量等内容的学习,总体来说难度和…

    Linux干货 2016-08-16
  • 第七周作业

    第七周 1,创建一个10G分区,并格式化为ext4文件系统;(1) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@www ~]# fdisk /dev/sda <————-fd…

    Linux干货 2017-09-03
  • 运维自动化之系统安装

    自动化安装系统,cobbler的安装使用

    Linux干货 2018-01-15
  • 创建yum源及httpd源码编译

    创建yum源及源码编译httpd yum本身相比于rpm来说,能够将有依赖的包文件一次性的安装完成,是相当的方便的。 yum的服务器支持的几种格式: http、https、ftp、file 1、yum基础命令 1、yum命令 yum [options] [command] [package …] [options]: 基本不用 [command]: re…

    Linux干货 2017-08-08
  • LVS(Linux Virtual Server)学习笔记

    LVS(Linux Virtual Server)学习笔记 此文主要对lvs负载均衡学习的总结,一为记录,二为巩固。主要介绍:1、lvs基础;2、lvs的配置;3、lvs的实现 前提:负载均衡(LB Cluster)     负载均衡实现方法有两种:硬件实现和软件实现;    &…

    Linux干货 2017-02-13
  • LVM2

    1、逻辑卷     逻辑卷为何物:逻辑,是从人的角度出发的,合乎人类的思维的,所以逻辑卷相对于其它磁盘分区高级一些。主要作用就是可以进行动态扩展缩减,不像其它分区大小固定了要想变动就必须重新格式化。 在实际工作环境中,LVM更适用于现实复杂多变的环境。 现在使用的是LVM2,Logical Volume Manager,Version 2…

    Linux干货 2016-08-30