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

一:答疑解惑:

   这是因为该文件所在分区的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)
上一篇 2017-07-22 22:13
下一篇 2017-07-23 13:36

相关推荐

  • LVS 工作模型和调度算法

    简介   LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 LVS是四层负载均衡,也就是说建立在OSI模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS支持TCP/UDP的负载均衡 &nbs…

    Linux干货 2016-12-19
  • 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@centos6 ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf         &…

    Linux干货 2017-01-16
  • 马哥教育21期网络班—第12周课程+练习—-LAMP练习中

    为第4题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点; (1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu); (2)设置部门为Ops,主机名为www2.stuX.com,邮件为admin@stuX.com; [ root@centos CA]# …

    Linux干货 2016-09-26
  • 阿里巴巴开源项目nginx_concat_module企业部署实例

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1580194        公司的前端开发工程师今天找我,让我给他搞下淘宝的一个开源项目 nginx_concat_m…

    Linux干货 2016-08-15
  • Linux磁盘和文件系统管理

    Linux磁盘和文件系统管理 linux磁盘管理 一、Linux设备类型     硬盘有机械硬盘(HDD)和固态硬盘(SSD)之分。机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等     几个部分组成。  &nbs…

    Linux干货 2016-04-11
  • lvs-nat的实现

    nat的知识点

    2018-03-03