inode

作者: fengkaipeng | 来源:发表于2017-05-25 15:55 被阅读13次

有时候系统提示磁盘提示满了,不能写入数据,然后查看时候发现空间还有很多,原因可能是因为磁盘的inode满了。inode是什么呢?
文件的数据分为元数据(metadata)和数据(data)两类。元数据用来储存文件的属性,就放在inode中,inode为‘index node’的缩写,意思为索引节点,用stat命令可以查看一个文件的inode:

[root ~]#stat anaconda-ks.cfg
  File: "anaconda-ks.cfg"
  Size: 1342        Blocks: 8          IO Block: 4096   普通文件
Device: 802h/2050d  Inode: 3014665     Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-05-16 19:12:09.498999452 +0800
Modify: 2017-05-16 19:12:10.254999454 +0800
Change: 2017-05-16 19:12:16.394999445 +0800

其中各个选项表达的意思

  • size:文件大小
  • Blocks:几个扇区组成一个块
  • IO Block:一个块的大小,单位为字节
  • Device:
  • Inode:文件节点号
  • Links:有几个硬链接
  • 第一个Access: 用户权限 用户ID 用户组ID
  • 第二个Access:文件最后一次访问时间
  • Modify:文件最后一次修改时间
  • Change:文件属性最后一次修改时间

文件在存取的时候,是有三个步骤的:

  • 1、根据文件名里的对应关系,找到文件对应的Inode number
  • 2、通过节点号读取到文件的Inode table
  • 3、再根据Inode table中的指针读取到相应的Blocks

所以,有时候磁盘还有空间,但是inode满了的情况下,系统也会提示磁盘空间已满,查看inode使用情况可以使用df -i选项:

[root app]#
[root app]#df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda2      6406144 71647 6334497    2% /
tmpfs           125514     1  125513    1% /dev/shm
/dev/sda3      3203072    41 3203031    1% /app
/dev/sda1        64000    38   63962    1% /boot
/dev/sr0             0     0       0     - /mnt

硬链接和软链接

硬链接就是在目录文件中创建一个新的名字,节点号和原文件的节点号相同,所以也会指向同一个Inode table,所以最后找到的数据其实也就是相同的数据了。
软链接是一个文件,他包含了另一个文件的路径名,而不是指向的原文件的inode tables,所以他依赖原文件,当原文件路径发生变化时,软链接就会失效。

cp,mv和rm

cp的过程为分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件。

rm是删除目录中的文件名和对应的节点号,删除节点表,不删除数据,而是将数据标记为空闲,有别的数据写入时才会覆盖。

mv分为两种情况

  • 如果mv命令的目标和源在相同的文件系统,作为mv 命令
    用新的文件名创建对应新的目录项并删除旧目录条目对应的旧的文件名,不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

  • 如果目标和源在一个不同的文件系统, mv相当于cp和rm

相关文章

  • 文件删除

    文件删除的本质是回收文件对应的inode与inode有关的资源有 inode位图 inode_table inod...

  • Socket创建

    相应关系,Socket是Inode 结构u部分,Sock是Socket部分,先创建Inode,从Inode.u结构...

  • 网络编程 - FileDescriptor

    inode 在描述FileDescriptor之前先来看一下inode。inode在我们后面的描述中会出现,所以首...

  • inode

    显示文件的inode号 查找文件 删除乱码文件

  • inode

    有时候系统提示磁盘提示满了,不能写入数据,然后查看时候发现空间还有很多,原因可能是因为磁盘的inode满了。ino...

  • inode

  • inode

    http://www.cnblogs.com/itech/archive/2012/05/15/2502284.h...

  • inode

    为什么inode数字从1开始而不是0? 0用作标记值以指示空或无inode,如果指针在没有标记的情况下可以为NUL...

  • note_8.5_文件删除复制与移动

    文件系统:   目录:文件    元数据:inode, inode table    数据:data blocks...

  • 关于prometheus监控node的inode

    一直在找inode的监控,百度也搜了好久prometheus监控inode的,居然没找到与inode相关的文章,我...

网友评论

    本文标题:inode

    本文链接:https://www.haomeiwen.com/subject/bxqzxxtx.html