iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >详解Linux索引节点inode
  • 177
分享到

详解Linux索引节点inode

LinuxinodeLinux索引节点Linux索引节点inode 2022-06-03 14:06:22 177人浏览 独家记忆
摘要

1.inode简介 理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样

1.inode简介

理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点” 。

2.inode包含内容

linux中目录的数据块中的每一项中都包含了文件名和其对应的inode。inode记录了文件的属性以及该文件实际存储位置,即数据块号(block number),每一个block(常见大小4KB),通过inode可以实现文件的查找定位。inode是Linux中的,Unix中是vnode。基本上,inode包含的信息至少有如下这些:

(1)文件的类型
(2)文件访问权限;
(3)文件的所有者与组;
(4)文件的大小;
(5)链接数,即指向该inode的文件名总数;
(6)文件的状态改变时间(ctime)、最近访问时间(atime)和最近修改时间(mtime);
(7)文件特殊属性,SUID、SGID和SBIT;
(8)文件内容的真正指向(pointer)。

可以用stat命令,查看某个文件的inode信息。

3.inode特点

inode的数量与大小在磁盘格式化的时候就已经固定了,inode的特点有:

(1)每一个inode的大小均固定为128B。可以通过命令dumpe2fs来显示ext2/ext3/ext4文件系统信息。


$ dumpe2fs -h /dev/sda1 | grep "Inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:      128

(2)每个文件都只占用一个inode。因此,文件系统能够建立的文件数量与inode数量有关。系统读取档案时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。

4.操作系统读取磁盘文件的流程

操作系统读取磁盘文件的流程是这样的:

(1)根据给定的文件的所在目录,获取该目录的数据实体,根据数据实体中的数据项,找到对应文件的inode;
(2)根据文件inode,找到inodeTable;
(3)根据inodeTable中的对应关系,找到对应的block;
(4)读取文件。

系统读取磁盘文件流程示意图如下:

举例来说,如果想要读取/etc/passwd文件,读取流程如下:

(1)获取根目录/的inode。透过挂载点的信息找到根目录的inode号为2;


ll -di /
2 dr-xr-xr-x 19 root root 4096 Feb 14 09:32 /

(2)根据根目录的inode,找到根目录的数据实体block,可以理解为一个文件到inode号的映射表,找到目录etc的inode号;


ll -di /etc
786433 drwxr-xr-x 98 root root 12288 Feb 13 17:18 /etc

(3)根据目录etc的inode号,读取目录etc的数据实体block,并找到文件passwd的inode号;


ll -i /etc/passwd
787795 -rw-r--r-- 1 root root 1552 Jan 4 14:56 /etc/passwd

(4)根据/etc/passwd文件的inode号,即可获取/etc/passwd文件的数据实体block,完成文件的读取。

5.inode的诸多优点

(1)对于有些无法删除的文件可以通过删除inode节点来删除;
(2)移动或者重命名文件,只是改变了目录下的文件名到inode的映射,并不需要实际对硬盘操作;
(3)删除文件的时候,只需要删除inode,不需要实际清空那块硬盘,只需要在下次写入的时候覆盖即可(这也是为什么删除了数据可以进行数据恢复的原因之一);
(4)打开一个文件后,只需要通过inode来识别文件。

以上就是详解Linux索引节点inode的详细内容,更多关于Linux索引节点inode的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解Linux索引节点inode

本文链接: https://www.lsjlt.com/news/11530.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux索引节点inode是什么
    这篇文章给大家分享的是有关Linux索引节点inode是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux索引节点inode就是储存文件元信息的区域,记录了文件的属性以及该文件实际存储位置,即数据块号(...
    99+
    2023-06-28
  • Linux系统中inode索引节点已满如何解决
    这篇文章将为大家详细讲解有关Linux系统中inode索引节点已满如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。今天login server的一个网站,发现login后没有生成ses...
    99+
    2023-06-12
  • 如何深入分析Linux系统的inode节点
    这篇文章将为大家详细讲解有关如何深入分析Linux系统的inode节点,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。inode是Linux系统中储存文件信息的区域,也被称为”索引节点”。1 ...
    99+
    2023-06-28
  • Linux系统中inode节点的作用是什么
    今天就跟大家聊聊有关Linux系统中inode节点的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,...
    99+
    2023-06-13
  • MySQL索引知识点详解
    这篇文章主要讲解了“MySQL索引知识点详解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL索引知识点详解”吧!普通索引创建索引这是最基本的索引,它...
    99+
    2024-04-02
  • MYSQL INNODB 组合索引分支节点数据解析
    1、本文证明组合索引的所有键值在分支节点(非叶子结点也进行了存储)。 2、本文给出B+ 索引如何进行验证其B+树结构 关于B树结构(不是B+树)可以参考: http://blog.itpub.net/77...
    99+
    2024-04-02
  • cordon节点drain驱逐节点delete节点详解
    目录一.系统环境二.前言三.cordon节点3.1 cordon节点概览3.2 cordon节点3.3 uncordon节点四.drain节点4.1 drain节点概览4.2 dra...
    99+
    2022-11-13
    cordon drain delete节点 cordon drain delete
  • MySQL——索引详解
    目录 一、为什么要有索引 二、什么是索引? 三、索引的原理 四、MySQL的存储引擎 五、索引的数据结构 六、聚簇和非聚簇索引 七、索引的设计原则 一、为什么要有索引 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操...
    99+
    2023-09-04
    数据库 mysql mysql优化
  • 详解MySQL覆盖索引、索引下推
    目录 1.覆盖索引 1.1.概述 1.2.聚集索引、非聚集索引 1.3.回表查询 1.4.覆盖索引 2.索引下推 1.覆盖索引 1.1.概述 覆盖索引,是为了避免“回表查询”,从而降低查询耗时的一种使用索引的方法,所以要聊覆盖索引首先我...
    99+
    2023-09-10
    数据库 java 开发语言
  • MySQL-索引详解(三)
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 5.SQL性能分析 5.2 慢查询...
    99+
    2023-09-02
    数据库 mysql 运维
  • MySQL-索引详解(五)
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便...
    99+
    2023-09-04
    数据库 mysql 运维
  • MySQL的索引详解
    一. 索引基础 1.1 简介 在MySQL中,索引(index)也叫做“键(key)”,它是存储引擎用于快速找到记录的一种数据结构。 索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对性能的...
    99+
    2024-04-02
  • MySQL-索引详解(四)
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 前言 本次MySQL—索引章节比较多,分...
    99+
    2023-09-04
    数据库 mysql 运维
  • 【MySQL】MySQL索引详解
    Mysql索引 0.写在前面1.为什么要使用索引2.常见的索引模型3.索引维护4.回表?举例子。 0.写在前面 文章中包含了: 1.什么是索引 2.索引的数据结构,以及各自的使用场景 3.为什么要设置主键自增? 4.基于主键...
    99+
    2023-08-16
    mysql 数据库 面试
  • 搜索一文入门ElasticSearch(节点分片CRUD倒排索引分词)
    目录ElasticSearch基本概念:索引、文档和REST ApiJson文档文档的元数据索引分布式系统的可用性和扩展性分布式特性节点分片查看集群的健康状况CRUD文档的CRUDC...
    99+
    2023-03-23
    ElasticSearch搜索入门 ElasticSearch搜索
  • MongoDB索引机制详解
    目录⭐ MongoDB 的索引机制⭐ 索引的类型 创建索引 - 单字段索引 创建索引 - 多字段索引 创建索引 - 唯一性索引 创建索引 - 文本索引 创建索引 - 地理空间索引⭐ 查看所有索引⭐ 删除索引⭐ Mongo...
    99+
    2023-04-23
    MongoDB的索引机制 MongoDB的索引 Python MongoDB
  • MySQL 索引失效详解
    MySQL 索引失效详解 一、MySQL索引失效原因汇总 隐式的类型转换,索引失效查询条件包含or,可能导致索引失效like通配符可能导致索引失效查询条件不满足联合索引的最左匹配原则在索引列上使用my...
    99+
    2023-09-08
    mysql 数据库 sql
  • mysql联合索引详解
    比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 b+tree结构如下: 每一个磁盘块在mysql中是一个页,页大小是固定的,mysql innodb的默认的页大小是16k,每个索引会...
    99+
    2023-09-02
    mysql 数据库 sql
  • 关于MySQL B+树索引与哈希索引详解
    目录索引介绍B+树索引优点缺点哈希索引优点缺点补充:二者区别总结 索引介绍 索引是一种特殊的数据库结构,被设计用来快速查询数据库表中的特定记录。索引有多种类型,就像字典有拼...
    99+
    2024-04-02
  • ElasticSearch之索引模板滚动索引实现详解
    目录一. 前言二. 索引三. 索引模板3.1 索引模板的创建3.2 索引模板 Setting3.3 索引映射 :mapping四. 业务功能4.1 创建滚动索引4.2 创建和绑定策略...
    99+
    2023-05-16
    ElasticSearch索引模板滚动索引 ElasticSearch索引
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作