linux inode大小,Linux inode详解

article/2025/10/2 23:03:24

Sam最近在架设spnfs过程中发现。在client上创建文件,文件名以及目录关系都可以在MDS上表现出来。文件内容则存储在DS上。但DS上的文件名却都是由数字组成的。命名方式为:inode.xxxx.

关于inode,Sam刚开始以为是kernel的node概念。后来查了一下,发现好像有误差。于是学习之。

在Linux下,使用mkfs.ext3 时,有不少选项和inode有关。如:

[-i bytes-per-inode]

[-I inode-size]

[-N number-of-inodes]

那inode是做什么用的呢?inode 记录档案(文件或目录)的属性、及该档案放置在哪一个

Block 之内的信息。

每个档案都会占用到至少一个 inode 。而当我们 Linux 系统要找到这个档案时,他会先去搜寻 inode table 找到这个档案的属性及数据放置的地区,然后再到数据库去找到数据存放的 Block 进而将数据取出。

一个 partition 格式化为一个 filesystem 之后,他一定会有 inode table 与 data area 两个区块,一个用来记录档案的信息与该档案放置的

block 区块,一个用来记录档案的内容。

Linux 在读取数据的时候,是先查询 inode table 以得到数据是放在那个 Block 里面,然后再去该 Block

里面读取真正的数据内容。block 是我们在格式化硬盘的时候规定出来的一个值,这个 block 是由 2 的 n

次方个sector(扇区,大小为512byte) 所集结而成的,假设 block 规划为 4KBytes,则由于一个 inode

与一个block 最多均只纪录一个档案,所以如果一个档案有 0.1 K bytes 。但是,由于你的 block为 4K bytes

。你就会有 3.9 Kbytes

的空间“浪费掉”!所以,当你在格式化硬盘的时候,请千万注意到您的系统的使用范围。

1、 当 block 越小 ( 最小为 0.5K )

、inodes 越多,可利用空间越多,但是大档案写入效率较差:适合档案数量多但是

档案容量小的系统,例如 BBS 或者新闻群组 news 这方面的服务之系统;

2、 当 block 越大 ( 最大可到 16 * 0.5K 以上 ) 、 inodes

数越少,大档案写入效率较佳,但浪费的空间较多:适合档案容量大的系统。

inode table是data area的索引表。

a4c26d1e5885305701be709a3d33442f.png

Data Area中存放真正的数据。

inode table上有许多的inode,

每个inode分别记录一个档案的属性与这个档案分布在哪些datablock上(也就是我们说的指针)。

inode两个功能:记录档案属性和指针

1. linux FS 可以简单分成 inode table与data

area两部份。inode table上有许多的inode,

每个inode分别记录一个档案的属性与这个档案分布在哪些datablock上(也就是我们说的指针)。

inode两个功能:记录档案属性和指针

2. inode table中红色区域即inode

size,是128Byte,在liunx系统上通过命令我们可以看到,系统就是这么定义的。

Inode size是指分配给一个inode来记录文档属性的磁盘块的大小。

dumpe2fs -h /dev/hda6 | grep node

Inode size:128

3. data ares中紫色的区域block

size,就是我们一般概念上的磁盘块。这块区域是我们用来存放数据的地方。

4. 还有一个逻辑上的概念:FS中每分配2048 byte给data area,

就分配一个inode。但一个inode就并不一定就用掉2048 byte, 也不是说files

allocation的最小单位是2048 byte, 它仅仅是代表filesystem中inode table/data

area分配空间的比例是128/2048,也就是1/16。

mkfs.ext3 -i 2048

这条命令中的-i参数就是我们所说的逻辑概念,它的大小决定inode

count的大小,redhat5默认-i最小为可设置为1024.

网上很多介绍关于inode的文章,把inode size的定义搞错了,他们把-i参数这个值或block size解读为inode

size 所以很多文章令人费解。

5.

inode参数是可以通过mkfs.ext3命令改变的:

mkfs.ext3 -i 2048 -b 8192 -f 1024 /dev/sdb2

-i 2048更改inode为每2KB创建一个

-b 8192设置block size的大小为8kB

-f 1024设置fragments的大小为1KB

mkfs.ext3 –N 2939495 /dev/sdb2

–N 2939495更改inode count。

因为每个partition有inode数目限制。所以inode可能会用完而导致不能创建新的文件。

#df -h

可以显示block空间用了多少,还剩余多少。

#df -i则显示inode用了多少,还剩余多少等。

所以,如果有非常多小文件,将inode占用光了。则可能也无法创建新文件。


http://chatgpt.dhexx.cn/article/MsmG0bGM.shtml

相关文章

理解inode

文章目录 磁盘构成磁盘存储的映射 inode和data block(重点)inode bitmapblock bitmapinode tabledata table 查找文件的示意图(重点)创建新文件需要的操作(重点)为什么明明还有空间,却创建不了文…

Linux inode

之前写了一篇Linux的文件描述符博客,是针对打开的文件来说的。那么如果一个文件没有被打开呢?存在哪里呢?又怎么存储?今天让我们一起来坐上"贼船"到知识的海洋中学习吧~ 目录 磁盘 什么是磁盘? 磁盘vs线…

inode结点

一、 机械硬盘 1.1 工作原理 写入时,磁头线圈加电,在周围产生磁场,磁化其下的磁性材料;电流的方向不同,所以磁场的方向也不同,可以表示 0 和 1 的区别。——“电生磁”。 读取时,磁头线圈&am…

什么是inode?

理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫扇区(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区&…

inode详解

文章目录 什么是inode?inode的内容(inode是一个结构体)block区和inode区的理解inode编号硬链接软连接 什么是inode? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区&quo…

代码编写流程

文章目录 代码编写步骤好的代码满足条件:注意事项 代码编写步骤 1、分析任务目标,根据目标选择合适的代码设计模式   1.1、创建模式选择   1.2、结构模式选择   1.3、行为模式选择 2、整理思路、画出思维导图、或代码流程图 3、找到其中的关键对象…

代码详解设计模式--模板模式

模板模式 一个抽象类公开定义了执行方法的模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 优点: 封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现…

GRID-FORM 基于 VUE3 可视化低代码表单设计器

本文开源代码在 GRID-FORM,如能帮到您麻烦给个星哈 楔子 大概 4 年前,我做了一个简单的动态表单功能,开发人员通过 UI 界面配置表单(其实就是添加常用的控件,如文本框、下拉框等)就能向用户提供数据查询&a…

领域驱动实践总结(基本理论总结与分析+架构分析与代码设计+具体应用设计分析V)

目录 领域驱动实践总结三:具体应用设计分析 一、应用项目的基本背景 二、针对项目进行领域驱动的战略设计阶段 (一)事件风暴确定产品愿景 (二)事件风暴进行业务场景分析 场景分析一:请假 用户:…

领域驱动实践总结(基本理论总结与分析+架构分析与代码设计V+具体应用设计分析)

目录 领域驱动实践总结二:架构分析与代码设计 一、微服务架构模型的对比与选择 (一)整洁架构 (二)六边形架构 (三)DDD 分层架构 1.用户接口层 2.应用层 3.领域层 4.基础层 5.从三层架构向 DDD 分…

十二种常见设计模式代码详解

零:设计模式分类 设计模式有创建型模式、结构型模式与行为型模式 创建型:单例模式、工厂模式(简单工厂,工厂方法,抽象工厂)结构型:适配器模式、门面模式、装饰器模式、注册树模式、代理模式、…

优雅代码的秘密,都藏在这6个设计原则中

优雅的代码,犹如亭亭玉立的美女,让人赏心悦目。而糟糕的代码,却犹如屎山,让人避而远之。 如何写出优雅的代码呢?那就要理解并熟悉应用这6个设计原则啦:开闭原则、单一职责原则、接口隔离原则 、迪米特法则…

低代码--低代码开发(LCDP)介绍

低代码开发(LCDP)介绍 1 介绍1.1 概述1.2 行业风向1.3 行业报告1.4 优点减少重复编程避免沟通隔阂提升效率 1.5 挑战完全抛弃代码的代价,就是平台能力与灵活性受限应用低代码平台阻力大技术局限老旧系统改造困难职业角色缺失应用者大多是技术…

网页设计个人主页代码

/ 01 / 前话 主题《周末の守候》采用Dreamweaver软件制作,主题包含了12页,页面能够相互跳转,运用了HTML5标签,DIVCSS布局,网站主题鲜明、内容丰富、健康、高雅且栏目设置合理,网站中页面色彩搭配合理&…

#低码系列#如何设计一个低代码平台?

低码系列文章 #低码系列#低代码来了,程序员会失业吗? 整体设计 用户群体 对于基础功能的实现,不需要开发人员介入。业务人员通过可视化页面,即可完成设计。从这个角度上看,低码平台面向的用户是业务人员、系统管理…

浅谈代码结构的设计

本文来自网易云社区 作者:陆秋炜 引言 :很久之前,在做中间件测试的时候,看到开发人员写的代码,有人的代码,看起来总是特别舒服,但有的开发代码,虽然逻辑上没有什么问题,但总给人感觉特别难受。后来成为了一位专职开发人员,渐渐发现,自己的代码也是属于“比较难受”…

领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)

目录 领域驱动实践总结一:基本理论总结与分析 一、领域驱动设计两大设计:战略设计和战术设计 (一)战略设计 1.出发角度与目标 2.实现方式:事件风暴与模型确立(用例分析、场景分析和用户旅程分析) 3.用三步来划定…

如何设计一个低代码平台

编者按:近些年来,低代码发展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,如果用户想从零开始设计一个低代码平台,该如何做呢&…

QT纯代码设计UI界面Demo

目录 一、前言 二、界面 三、源码简析 四、Demo/源码 一、前言 UI的设计方法有几种: ①一种是使用Qt Designer,也就是可视化设计,这在小型项目中常见,优点就是可观简便; ②另一种就是纯代码设计UI,也…

Verilog RTL 代码设计新手上路

1. 做一个4选1的mux,并且进行波形仿真 和2选1的mux对比,观察资源消耗的变化: 实验分析:4选1的mux实际上就是在2选1的mux上进行拓展,选用2位的控制信号控制4位输入信号的选择输出 实验代码设计如下: …