inode 详解
1.inode 解析:
存储文件元信息(文件创建者,创建日期,大小等)的区域叫做inode即 索引节点。
2.inode 内容:
文件字节数、拥有者UserID,GroupID,读写执行权限,时间戳,链接数,block位置3.inode 大小
inode 也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成连个区域, 一个是数据区,存放文件数据;另一个是inode区,存放inode所包含的信息。每个inode节点的大小,一般是128 字节或256字节。inode节点的总数,在格式化时就给定,一般是每1kb 或2kb 就设置一个inode, 假定在一块1GB的硬盘中,每个inode节点的大小为128字节, 每1KB就设置一个inode,那么inode table 的大小就会达到128MB, 占整个硬盘的12.8%
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df 命令;
df -i查看每个inode节点的大小,可以用如下命令
sudo dumpe2fs -h /dev/hda |grep "Inode size"(由于每个文件都必须有一个inode,因此有可能发生inode 已经用光,但是应胖还未存满的情况, 这时,就无法再硬盘上创建为新文件。)
4.inode号码
每个inode 都有一个号码,操作系统用inode号码来识别不同的文件。
Unix、Linux系统内部都不使用文件名,而通过inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的名称或绰号。 表面上,用户通过文件名打开文件。实际上,系统内部这个过程分为三步:首先,系统找到这个文件名对应的inode号码, 其次,通过inode号码,获取inode信息, 最后,根据inode信息,找到文件数据所在的block,读取数据。
5.目录文件
Unlx/Linux 系统中,目录也是一种文件。打开目录,就是打开目录文件。目录文件的结构非常简单,就是一系列目录项的列表,每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码
6.硬链接
一般情况下,文件名和inode号码是一一对应的关系,每个inode号码对应一个文件名。 但是,Unix、Linux 系统允许对个文件名指向同一个inode号码,这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是删除一个文件名,不影响另一个文件名的访问。这种情况被称为“硬链接”任何一个目录的‘硬链接’总数总是等于2加上它的子目录总数。
7.软链接
文件A和文件B的inode号码不同,但是文件A的内容是文件B的路径,读取文件A时,系统工会自动将访问者导向文件B,因此,无论打开哪一个文件,最后读取的都是文件B,这时,文件A就称为文件B的软链接 或者符号链接。这意味着,文件A依赖文件B存在,如果删除文件B,打开文件A报错,没有相关文件或目录。 这时软硬链接的区别, 文件A指向文件B的文件名,而不是文件B的inode号码。 文件B的inode 链接数不会发生改变。
8.inode 的特殊作用
*有时文件名包含特殊字符,无法正常删除,这时,删除inode节点,就能祈祷删除文件的作用。*移动文件或重命名文件,只是改变文件名,不改变inode号码
*打开文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。 因此,一般系统无法从inode号码得知文件名。
9. 实际问题
在一台配置较低的Linux服务器(内存,硬盘比较小)的/data 分区内创建文件时,系统提示磁盘空间不足,用df -h 命令查看一下磁盘使用情况, 发现/data 分区只使用66% , 还有12G的剩余空间。 之后df -i查看 /data 分区的索引节点,发现已经用满了。导致系统无法创建新目录和文件。查找原因: /data/cache 目录中存在数量非常多的小字节缓存文件, 占用的blcok不多, 但是占用了大量的inode空间。
解决方案: 1.删除/data/cache 目录中的部分文件,释放/data分区的一部分inode
2.用软链接将空闲分区/opt 中的newcache 目录链接到/data/cache ,使用/opt分区的inode来缓解 /data 分区inode不足的问题
ln -s /opt/newcache /data/cache
inode 详解的更多相关文章
- 【转】Inode详解
Inode详解 转自: Inode详解 一.inode是什么 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存 ...
- (转)Inode详解
Inode详解 原文:http://www.cnblogs.com/adforce//p/3522433.html 一.inode是什么 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的 ...
- linux超级块和inode 详解 和 df 、du 命令详解与环境变量
一.inode块,Unix文件的核心. 首先需要明白的是,在Unix操作系统中的任何资源都被当作文件来管理.如目录.光驱.终端设备等等,都被当作是一种文件.从这方面来说,Unix操作系统中的所有的目录 ...
- Inode详解
一.inode是什么 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读 ...
- Inode详解-重要
一.inode是什么 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读 ...
- 索引节点inode详解
Inode(index node),索引节点.Linux系统中,分区要进行格式化,创建文件系统.在每个Linux存储设备或存储设备的分区(可以是硬盘,软盘,U盘等)被格式化为ext3文件系统后,一般分 ...
- linux inode 详解 / 线上inode爆满解决方案
本文大量参考阮一峰大神博客,整理笔记 之所以写inode文章是由于一次线上问题,引发对inode深入的思考. 磁盘的inode监控与磁盘空间的监控同等重要,线上服务器一定要做好磁盘inode与磁盘空间 ...
- [svc][op]磁盘Inode详解-重要
另一篇白话总结 一.inode是什么 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB ...
- (转)Linux硬链接、软链接及inode详解
inode 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读 ...
随机推荐
- A:分段函数-poj
A:分段函数 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,计算下列分段函数y=f(x)的值. y=-x+2.5; 0 <= x < 5 y=2-1.5(x- ...
- Numpy入门 - 数组排序
本节主要讲解numpy数组的排序方法sort的应用,包括按升序排列和按降序排列. 一.按升序排列 import numpy as np arr = np.array([[3, 1, 2], [6, 4 ...
- 代理模式(Proxy)
代理模式(Proxy) 其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希 ...
- Sonar常见问题分析
1.Equality tests should not be made with floating point value 代码举例: if (result == num) //result和num均 ...
- struts2 谷歌浏览器保存date类型数据时报错
一同事发现一个bug,在chrome上保存一个表单时,后台会报错,而在firefox上则可以正常保存. 奇怪的地方在于,后端的程序是同一个,而在浏览器上查看请求header时,两个浏览器对应的字段内容 ...
- 40.Linux应用调试-使用gdb和gdbserver
1.gdb和gdbserver调试原理 通过linux虚拟机里的gdb,来向开发板里的gdbserver发送命令,比如设置断点,运行setp等,然后开发板上的gdbserver收到命令后,便会执行应用 ...
- 删除kafka的topic及kafka基本命令
kafka的topic默认是不允许被删除的,删除后在topic后会出现”marked for deletion”字样,实际并未删除,现在创建同样的topic会提示topic已经存在. 解决办法: se ...
- Codeforces Gym 101521A Shuttle Bus
题意:给定一个2*N的方格,从左上角开始走,有些格子不能走,问能否一次遍历所有能走的方格 在Gym上看到一场香港的比赛,很好奇就去看了一下,发现第一题很有趣,并且很水,似乎讨论一下奇偶性就行了,然后. ...
- while(true)应用 之 实现自己的消息队列
早些时候,一直有个疑问,就是比如你从前端发一个操作之后,后台为什么能够及时处理你的东西呢?当然了,我说的不是,服务器为什么能够立即接收到你的请求之类高大上的东西.而是,假设你用异步去做一个事情,而后台 ...
- JDBC详解系列(二)之加载驱动
---[来自我的CSDN博客](http://blog.csdn.net/weixin_37139197/article/details/78838091)--- 在JDBC详解系列(一)之流程中 ...