Inode与block详解

inode和block详解

inode是什么?

  • inode即为index node,就是索引节点
  • inode表中包含文件系统所有文件列表
  • 一个节点是在一个表项,包含了有关文件的信息(元数据)。
  • 一个文件有且只有一个inode
  • inode中包含12个直接指针,1个间接指针,1个双间接指针,1个三间接指针
    元数据(medata)即文件的属性信息,包括文件的类型、权限、owner、group、链接数、三个时间戳,文件大小、扩展属性,block指针

block是什么

  • 文件数据存储在block中
  • 每块block只能存储一个文件
  • block 文件系统的最小存储单位是 1k,2k,4k,2^n

inode与block之间的关系
由上面的定义可以知道block是用来存储文件数据的,每一个block只能存储一个文件,并且每个block都有自己的编号,当一个文件特别大的时候,存储该文件的block数量也会很大,而且,在没有inode的时候读取文件,只有当读取完上一个block的时候才会知道下一个block号,才能继续读取。这个时候因为block的数量很大,读取速度会很慢。inode的存在很好的解决了这一个问题,inode中除了存储元数据之外,还会存储block指针,当我们在读取大文件的时候,inode中的指针会迅速找出block并将其排序之后快速读取,大大提高了效率。
inode与block关系小结:
1.磁盘被分区格式化分区之后,会分为inode和block两部分
2.inode存放文件的属性以及指向文件实体的指针(block的位置)
3.superblock用来存储inode和block的全部信息,包括inode和block的大小,数量,以及block的使用情况。
4.创建了一个文件时会同时创建inode和block,inode用来存储元数据和block指针,block用来存储数据内容。
5.一个block只能被一个文件使用,所以一个block并不是越大越好,当服务器存储的小文件居多,那么block设置的小一点比较好,不会浪费空间。当服务器存储的大数据居多,block设置的大一点比较好。


目录的inode和block
在这里,我们需要清楚一个问题,对于目录而言,inode与block都存储了什么?
每个目录也都有自己的inode,其中存储的同样是目录的元数据和指针,但是目录的block不同于文件的block,其中存储的是文件名和文件名对应的inode号。当我们检索某个目录下的文件时,我们只需通过路径找到文件名,然后在block便找到与文件名对应的inode号,随之找到文件数据。
当我们在同区中复制我们的文件时,node是不变的,相当于我们又给文件又取了一个新的文件名,而新旧文件名对应的是同一个inode号;而当我们把文件复制到其他分区,就相当于创建看一个新文件,那么新文件的inode将会改变。
删除文件,同样是只是删除了文件名和inode号,存储在block的数据将会被新传进来数据覆盖。所以删除的文件我们都是可以恢复的,但是一旦又写入文件,删除的文件就会被覆盖,也就无法再回复了。


本文属于个人对inode和block的理解,叙述可能不是特别容易理解,希望多多批评指正!
要相信现在所经历的i艰难困苦都是上天做好的安排!

转载于:https://blog.51cto.com/13866567/2145861

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值