Linux文件系统inode的作用

目录

前言

简介

inode与block

1、查看文件的inode信息

2、查看分区中的inode节点数


前言

        前面学习了磁盘管理中的磁盘分区,以及逻辑卷,交换分区的创建,这篇文章将介绍一下我们在分区以及格式化时候用到的ext4文件系统,本盘文章的学习内容包括了解索引(index)和块(block)的作用。


简介

  • 类型:索引(index)文件系统
  • 系统限制:

        Ext3:文件系统最大16TB
        Ext4:文件系统最大16TB
        XFS:文件系统最大100TB.

  • 名词:inode,block,superblock
  • inode:

        记录文件的属性(文件的元数据metadata)。

                元数据:文件的属性,大小,权限,属主,属组,链接数,块数量,块编号。

        一个文件占用一个inode,同时记录此文件数据所在的block  number。

        inode大小为128bytes。

  • block:

        存储文件的实际数据。

        实际存储文件的内容,若文件较大,会占用多个block。

        block大小为默认4K。

  • superblock:

        1、block与inode的总量。

        2、未使用与已使用的inode/block数量。

Linux文件系统inode的作用_第1张图片

 如图,蓝色区域每一个数字代表一个块(block),灰色区域是索引inode相当于编号,一个索引对应了多个块,拿文件来说,每个文件都有一个inode这个文件中的数据内容就是占用的块。


inode与block

1、查看文件的inode信息

命令ll  -i  文件名                //-i是查看inode的信息

[root@localhost ~]# ll -i /mnt/disk3
总用量 13
12 -rw-r--r--. 1 root root     0 10月 24 13:58 file1
11 drwx------. 2 root root 12288 10月 19 13:56 lost+found

往常ll  文件名命令查看文件信息的时候是没有前面12那个数字的,这个数字是inode编号,可以看到file1文件在disk3目录下的inode号为12。

2、查看分区中的inode节点数

命令:df   -i

Linux文件系统inode的作用_第2张图片

 sdb3这个分区是挂载到disk3文件夹上的,所以可看到sdb3这个分区总共有51200个inode,已经用了12个,还有51188个可用,那么我在disk3目录下再创建一个文件来看看sdb3分区的inode节点数。


 可以看到sdb3分区的已用inode节点数变为了13,可用的变为51187少了一个,可以看到一个文件会占用一个inode节点,接下来我将占满sdb3的inode节点。


Linux文件系统inode的作用_第3张图片

 如图所看到的的第一行命令创建多个文件,查看sdb3的inode节点数,看到sdb3的inode节点数已经占满了,但是sdb3的还有空间,这个时候再创建文件提示创建失败。

结论:inode决定了文件系统中文件的数量。


 可以看到虽然无法创建文件,但是可以在任一一个文件中写入内容,接下来我将填满sdb3分区的空间。


//查看sdb3分区的内存
[root@localhost ~]# df -hT |grep sdb3
/dev/sdb3               ext4      190M  3.0M  173M    2% /mnt/disk3
//将sdb3空间填满
[root@localhost ~]# dd if=/dev/zero  of=/mnt/disk3/file1   bs=1M  count=174
记录了174+0 的读入
记录了174+0 的写出
182452224字节(182 MB)已复制,0.240873 秒,757 MB/秒
[root@localhost ~]# df -hT |grep sdb3
/dev/sdb3               ext4      190M  177M     0  100% /mnt/disk3
[root@localhost ~]# touch /mnt/disk3/file0000
touch: 无法创建"/mnt/disk3/file0000": 设备上没有空间

可以看到用dd if=/dev/zero  of=/mnt/disk3/file1   bs=1M  count=174命令将sdb3的空间填满,也就是把sdb3分区的块全部占用,这时候再创建文件依然是失败的。

得出结论,磁盘空间的限制根据inode和block两方面。


创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

你可能感兴趣的:(1024程序员节,linux,centos,运维)