Linux文件系统inode的作用

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

前言


  前面学习了磁盘管理中的磁盘分区,以及逻辑卷,交换分区的创建,这篇文章将介绍一下我们在分区以及格式化时候用到的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数量。


778c110e07b04d21b09fdda056207862.png


如图,蓝色区域每一个数字代表一个块(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


4295f245f000408f81d76da65d18c163.png


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


e323fe9dc5ee4053973cd2e78d2ea4fc.png


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



9075b3c52ed7418380b03e879c411dbd.png


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


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


cdb1a0addf164967a3f51d20d078d215.png


可以看到虽然无法创建文件,但是可以在任一一个文件中写入内容,接下来我将填满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两方面。



相关文章
|
17天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
77 8
|
1月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
52 7
|
2月前
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
48 1
|
3月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
4月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
50 12
|
4月前
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
61 6
|
4月前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。
|
4月前
|
存储 监控 Linux
|
4月前
|
存储 监控 Linux
下一篇
DataWorks