inode与block

inode概述

硬盘要分区,然后格式化,创建文件系统。 
inode,index node索引节点。在每个linux存储设备或存储设备的分区(存储设备可以是硬盘、软盘、U盘…)被格式化为ext4文件系统后,一般有两部分: 
第一部分是inode(很多个) 
第二部分是block(很多个)

block是用来存储实际数据用的,例如:照片、视频等普通文件数据。 
inode就是用来存储这些数据属性信息的(也就是ls -l 的结果),inode包含的属性信息包括文件大小、属主、归属的用户组、读写权限、文件类型 
、修改时间,还包含指向文件实体的指针的功能(inode节点–block的对应关系)等,但是,inode唯独不包含文件名

当用ls查看某个目录或文件时,如果加上-i参数,就可以看到inode节点了。 
这里写图片描述

inode的值是398432。

inode与block

inode除了记录文件属性的信息外,还会为每个文件进行信息索引,所以就有了inode的数值,操作系统根据指令,即可通过inode的值最快的找到相对应的文件实体。文件,inode、block之间的关系如下:

这里写图片描述

以书为例,存储设备或分区就相当于这本书,block相当于书中的每一页内容,而inode就相当于这本书前面的目录,一本书有很多内容,一个知识点可能有多页,如果想查找某部分或某知识点的内容,我们一般先查书的目录,通过目录能更快的找到我们想要看的知识点的内容。

inode的大小

因为inode要存放文件的属性信息,所以每个inode是有大小的,CentOS5每个 inode的默认大小为128字节,而CentOS6 inode的默认大小是256字节,inode的大小在分区被格式化创建文件系统之后定下来的,格式化之后就无法更改了,格式化前可以通过参数指定inode大小,但是一般企业工作环境没有这个必要。

dumpe2fs - 显示ext2/ext3/ext4文件系统信息。 
这里写图片描述

/dev/sda1挂载在/boot引导分区,/boot分区默认128字节。

有关inode的小结

  1. 磁盘分区格式化ext4文件系统后会生成一定数量的inode与block。

    扫描二维码关注公众号,回复: 159375 查看本文章
  2. inode是索引节点,作用是存放文件的属性信息以及作为文件的索引(指向文件的实体)。

  3. ext3/etx4文件系统的block存放的是文件的实际内容。

  4. inode是一块存储空间,CentOS6非启动分区inode默认大小256字节,CentOS5是128字节。

  5. inode是一串数字,不同的文件对应的inode在文件系统中是唯一的。 
    这里写图片描述

  6. inode相同的文件,互为硬链接文件(文件又一个入口)。

  7. 一个文件被创建后至少要占用一个inode和一个block。正常情况下一个文件占用一个inode。

  8. block的大小一般有1K,2K,4K几种。其中引导分区等为1K,其他普通分区为4K(CentOS6)。 
    这里写图片描述

  9. 如果一个文件很大,可能占多个block,如果文件很小,至少占一个,并且剩余空间不能被其他的文件使用。

  10. inode总量和大小查看。 
    这里写图片描述 
    inode count也就代表能建多少个文件。

  11. 查看inode的总量和使用量命令df -i 
    df -i 查看挂载的磁盘的inode情况: 
    这里写图片描述

  12. 查看文件的inode信息方法
    ls -li或者stat /etc/hosts
     

  13. 如何生成及指定inode大小mkfs.ext4 -b 2048 -l 256 /dev/sdb

  14. 如果inode被耗尽,在系统日志里会提示No space left on device.
    企业工作中邮件临时队列/var/spool/clientmquene这里很容易被大量小文件占满。clientmquene目录只有安装了sendmail服务才会有。centos5默认安装sendmail,centos6默认没有sendmail,但是有postfix。

有关block的小结

  1. 磁盘读取数据是按block为单位读取的。

  2. 一个文件可能占用多个block。每读取一个block就会消耗一次磁盘I/O。

  3. 如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多。

  4. 一个block只能存放一个文件的内容,无论内容有多小。如果block 4K,那么存放1K的文件,剩余3K就浪费了。

  5. block并非越大越好。block太大对于小文件存放就会浪费磁盘空间,例如:1000K的文件,block为4K,占用250个block,block为1K,占1000个block。

  6. 大文件(大于16K)一般设置block大一点,小文件(小于1K)一般设置block小一点。

  7. block太大例如4K,文件都是0.1K的,大量浪费磁盘空间。

  8. block太小例如1K,文件都是1000K,消耗磁盘IO。

  9. block的大小设置,也是格式化分区时候,mkfs.ext4 -b 2048 -l 256 /dev/sdb。

  10. 文件较大时,block设置大一些会提升磁盘访问效率。

  11. ext3/ext4文件一般设置为4K。

转载至https://blog.csdn.net/codetz/article/details/52401560

猜你喜欢

转载自blog.csdn.net/vic_qxz/article/details/80181736