注:本文假定读者具有Linux基础知识及文件系统相关概念的认知。
创新互联专业为企业提供集美网站建设、集美做网站、集美网站设计、集美网站制作等企业网站建设、网页设计与制作、集美企业网站模板建站服务,十余年集美做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
引言
作为操作系统的一种,Linux的文件系统是一篇永不枯竭的大文章。其中卷子最多的篇章当属inode。例如在讲解硬链接、软链接或文件的权限控制时,都会涉及inode。若您希望了解更多有关inode的信息,本文将供您参考。
1. inode结构简述
在Linux文件系统中,inode是一种数据结构,用于描述文件或目录的属性,相当于文件的“元数据”。每个文件的inode号码是唯一的,其性质类似于文件在文件系统上的“地址”。简单来说,inode存储文件的的各种属性,如文件大小、创建时间、所有者和权限等信息。
在实际使用时,我们可以用以下命令查看一个文件的inode:
“`
ls -i filename
“`
其中的-i选项用于显示文件的inode号码。(选项i为inode的缩写)
每个inode结构的大小在不同的文件系统中是不同的,但一般认为其大小在128字节至512字节之间。
2. inode的作用
inode是Linux文件系统中的一个重要概念,它协助操作系统及用户在访问和管理文件时发挥至关重要的作用。以下是inode的具体作用:
(1)inode提供了文件属性信息
inode为文件存储了属性信息,如文件的所有权、文件大小、创建时间、最后访问时间等详细信息。这些信息对于文件的访问和管理来说至关重要。
(2)inode用于文件索引
一个文件在文件系统上的位置是由该文件的inode来确定的,也可以说inode是文件在文件系统中的“地址”。只要知道了该文件的inode号码,就可以在文件系统中快速地查找到该文件。
(3)inode提供了对文件内容的化名操作
实际上,文件的硬链接和软链接都是对inode结构的操作。硬链接是将一个inode与多个文件名关联起来,这些文件名指向不同的文件目录项,但实际上它们都指向同一个inode。软链接则是在文件系统中创建一个新的inode,并将该新的inode链接到原inode上,这样一个文件可以在不同目录下拥有不同的文件名。这种化名操作在Linux系统中被广泛使用。
3. inode结构
在Linux中,每个inode结构有以下几个字段:
(1)i_mode:inode存储的文件类型和访问限制信息,如文件读写权限、文件类型(文件、目录、链接等)等。
(2)i_uid和i_gid:inode存储的文件所有者的UID和GID。
(3)i_size:inode存储的文件大小,以字节为单位。
(4)i_blocks:inode对文件占用的块数进行计数。
(5)i_atime、i_mtime和i_ctime:分别对应文件的最后访问时间、修改时间和状态改变时间。
(6)i_links_count:记录该inode拥有的硬链接数量。
(7)i_blocks和i_block:inode可存储由块组成的数据,其中i_blocks为块数,i_block为块的指针数组。
下面各项具体解释:
(1)i_mode
i_mode字段描述了文件的类型和访问限制。
在Linux中,每个文件都被分配了一个文件类型的唯一字符,有以下几种类型:
‘-‘ :代表一个普通文件
‘d’ :代表一个目录
‘c’ :代表一个字符设备文件
‘b’ :代表一个块设备文件
‘s’ :代表一个socket文件
‘p’ :代表一个命名管道
在i_mode的这个字符之后,还有一串数字,代表了文件的权限,即读、写和执行权限。这些权限分别对应数字‘4’、‘2’和‘1’,如果对应的权限为true,则该位为1,否则为0。例如:
0764代表-rwxrw-r–
0644代表-rw-r–r–
其中之一位为0,通常情况下为0,表示该文件不是特殊文件。如果文件是特殊文件的话,之一位为1,下面的9位描述的是特殊文件的设备号。
(2)i_uid和i_gid
i_uid和i_gid分别代表了文件的所有者UID和GID。
UID代表用户ID,是用于标识用户的唯一数值标识,系统用户的UID一般从0-999,普通用户从1000开始。而GID代表用户组ID,也是用于标识用户组的唯一数值标识。
(3)i_size
i_size字段包含了文件的大小,以字节为单位。对于普通文件来说,对应一个连续的字节流;对于目录和链接文件来说,对应的值为0。
(4)i_blocks和i_block
i_blocks和i_block分别记录了inode涉及的块数量和块的地址。
对于大的文件或目录,inode只能存储一定数量的块地址,如果还需要更多的块,则需要使用一些额外的数据结构来保存这些块地址。
(5)i_atime、i_mtime和i_ctime
i_atime、i_mtime和i_ctime分别代表了文件的最后访问时间、修改时间和状态改变时间。
这三个时间有以下几种操作会修改:
i_atime:文件访问时会更新。
i_mtime:文件写入时会更新。
i_ctime:文件元数据更改时会更新,例如修改文件名,改变文件的权限等。
(6)i_links_count
i_links_count记录了inode拥有的硬链接数目。
当一个硬链接被创建时,它与原始文件共享相同的inode,它们在文件系统中指向相同的空间。每次创建一个硬链接时,inode的链接数就会增加1,每当删除一个硬链接时,其链接数就会减少1。
4. inode的存储
对于每一个Linux文件系统(例如Ext2、Ext3、Ext4等),它们的inode结构体的大小是一定的。在Linux文件系统中,一种被广泛应用的inode分配方式是基于inode表的实现。
在一个inode表中,每个inode都使用一个定长的结构体予以表示,这些结构体按照编号顺序链接。换句话说,inode编号与inode在inode表中的编号是一一对应的关系。Linux文件系统中,每个inode均被分配了一个唯一的编号,作为该inode在inode表中的索引。
那么,如何计算inode编号呢?inode编号的值大于等于1。在Ext3或者Ext4文件系统中,额外的inode(例如/lost+found目录)总是与之一个inode相关联,该inode编号总是2。在Ext2文件系统中,保留了2个inode,其中之一个对应的inode编号是1,第二个inode对应的inode号码是2。因为每个文件系统块大小是固定的,所以可以使用每个块内inode大小来确定每个块中包含的inode数目。
如果文件系统比较小,inode表可以直接放置在文件系统上,这就是直接分配(使用Ext2文件系统时的分配方式)。如果文件系统比较大,分配多个inode表会更为合适。在这种情况下,inode表被存储在前几个块中,其他块存储文件数据。
Linux文件系统中的inode结构是一个重要而基础的概念。inode中存储了文件的各种属性信息,为文件的访问、管理及化名操作等提供了支持。本文介绍了inode的结构,字段及存储方式,希望能对大家理解inode和文件系统提供帮助。对于深入学习文件系统和inode,更多的资料和文献仍需在实践中去探索。
相关问题拓展阅读:
收到监控告警,有些任务报磁盘不足的错误,通常磁盘只读一般的常见原因:
判断可能是4.59和4.60两台机器跟磁盘满了
通过df查看一下:
跟磁盘并没有满,查看下inode使用率:
df命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。
df命令可以参考这篇 linux命令详解之df命令
df -i:
看到60的inode满了,删除4.60上的小文件即可。
df -h显示磁盘占用是没有问题;但是df -i显示磁盘inode资源占用完。
inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
这种情况的原因通常是:尽管那个分区的磁盘占用率未满,但是inode已经用完,应该是该磁盘的某些目录下存在大量的小文件导致。尽管小文件占用的磁盘空间并不大,但是数量太多,inode用尽。
通过ls命令配合wc命令,可以查看某个文件夹下的文件数量。例如:
wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数(-b)、字数(-w)或是列数(-l)。
至于解决方案,可以参考文章: linux inode已满解决方法
参考:
linux里面inode概述的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux里面inode概述,深入解析:Linux文件系统中的inode结构,Linux df排查inode已满及解决方法的信息别忘了在本站进行查找喔。
成都创新互联科技有限公司,是一家专注于互联网、IDC服务、应用软件开发、网站建设推广的公司,为客户提供互联网基础服务!
创新互联(www.cdcxhl.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。创新互联成都老牌IDC服务商,专注四川成都IDC机房服务器托管/机柜租用。为您精选优质idc数据中心机房租用、服务器托管、机柜租赁、大带宽租用,可选线路电信、移动、联通等。
分享标题:深入解析:Linux文件系统中的inode结构(linux里面inode概述)
当前路径:http://www.csdahua.cn/qtweb/news11/213961.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网