暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

inode和block

小董的成长笔记 2021-06-19
350

 上节说到文件属性有一个叫做inode,那么它到底是什么呢,又有着什么样的作用呢?让我们一起来探讨下这个问题。

在linux系统中我们如果新增一块磁盘在系统中使用,那必须要格式化文件系统,然后挂载到系统中才可以使用,那么在我们格式化磁盘之后会生成一定数量的inode和block,那么生成它们有什么作用呢?

inode是索引节点,linux读取文件首先会读取到这个索引节点,然后根据索引节点去找实体的数据

block:磁盘读取数据是按block为单位读取

听不大明白?那我们举个栗子:

inode是索引节点它相当于一本书的目录

block用来存放数据,它相当于具体的书籍的内容(每一页)

inode存储了除了文件名以外的所有信息,作为索引指向实体block

131272 -rw-r--r-- 1 root root 261 Jun 16 15:18 /etc/hosts

除了/etc/hosts这个文件名之外,其它的属性都是存储在我们的inode中的

inode是一串数字,不同文件对应的inode在文件系统里是唯一的

如果inode号是相同的,那么它们互为硬连接文件

一个文件被创建之后至少需要一个inode和一个block(你写一篇内容,那么就要有标题和内容一样)

ext3/ext4文件系统的block中存放,block大小一般为1,2,4k,引导分区为1k 普通为4k,如果一个文件很大,可能会占用很多个block,就算一个文件再小,也会占用一个block,而且剩余空间不可用

这个就是说,你block大小是4K,你存入一个1K的文件,那么其余的3K将不可用,如果你存入的是一个12K的文件,他会占用3个block

一个文件可能会占用多个block,读取一次block就会消耗一次i/o,一般我们都是按照默认的生成即可

我们可以查看下我们磁盘的inode和block的大小

# 查看inode和block大小
[root@web ~]# dumpe2fs /dev/vda1|grep -i "block size"
dumpe2fs 1.42.9 (28-Dec-2013)
Block size:               4096
[root@web ~]# dumpe2fs /dev/vda1|grep -i "Inode size"    
dumpe2fs 1.42.9 (28-Dec-2013)
Inode size:               256
# 数量
[root@web ~]# dumpe2fs /dev/vda1|egrep -i "block count|inode count"      
dumpe2fs 1.42.9 (28-Dec-2013)
Inode count:             2621440
Block count:             10485499
Reserved block count:     471831

该文件系统最多还能再放2621440个文件,inode或block满了都不可以再放文件了。

如果我们的磁盘报错No space left on device,那我们就要分开分析了,查看是iode满了 还是block满了

df -h 命令可以看到我们block是否满了

df -hi命令可以看到我们inode是否满了

写小文件,INode会先满,写大文件,block会先满。

多一个点在看

多一条小鱼干

欢迎大家一起交流


文章转载自小董的成长笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论