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的索引表。

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占用光了。则可能也无法创建新文件。

linux inode大小,Linux inode详解相关推荐

  1. linux脚本日期时间,Linux 日期和时间操作详解

    Linux 日期和时间操作详解 发布时间:2012-11-27 15:10:07   作者:佚名   我要评论 Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Cl ...

  2. Linux驱动开发必看详解神秘内核(完全转载)

    Linux驱动开发必看详解神秘内核 完全转载-链接:http://blog.chinaunix.net/uid-21356596-id-1827434.html IT168 技术文档]在开始步入Lin ...

  3. Ubuntu (Linux) 系统 find 命令详解

    Ubuntu (Linux) 系统 find 命令详解 在Ubuntu (Linux)系统的终端上,虽然没有像 windows 上那样简介易用的图形界面 搜索工具,但只要你使用足够熟练, 有一个强大命 ...

  4. linux内核管道pipe实现详解

    linux内核管道pipe实现详解 (文件系统暂时不是很了解,文件系统部分暂时不做解释,此文仅解释关键流程,系统调用部分请参考前面已经发布的文章,这里不做展开) 1.管道系统调用(SyS_pipe) ...

  5. Linux操作系统上lsof命令详解

    Linux操作系统上lsof命令详解 2011-10-08 18:31:31 http://xjsunjie.blog.51cto.com/999372/682865 标签:Linux lsof命令 ...

  6. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  7. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  8. linux send与recv函数详解

    linux send与recv函数详解 1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff, size_t nb ...

  9. Linux下find命令用法详解

    Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录查找名称为test的 ...

  10. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

最新文章

  1. reg类型变量综合电路_verilog中reg和wire类型的区别
  2. error: No curses/termcap library found的解决办法
  3. 【控制】如何入门现代控制理论
  4. zookeeper单机安装
  5. SAP Spartacus的登录页面的用户名显示逻辑
  6. Mybatis动态代理模式实现CRUD
  7. linux默认安装python_Linux下安装python
  8. 更新性能服务器图片介绍,图文并茂 讲述企业版Linux性能发展史
  9. Objective-C中的UIScrollView
  10. linux查看二进制文件乱码
  11. Deepo:几乎包含所有主流深度学习框架的Docker镜像
  12. android .dex文件,对于Android DEX文件详细说明
  13. 电脑上的回收站无法清空
  14. MySql基础篇---004 其它数据库对象篇:视图,存储过程与函数,变量、流程控制与游标 ,触发器
  15. 如何使用百度天气预报API接口
  16. TCC(TinyC)编译器汉化(中文编译器、汉语编程)之一:主文件汉化
  17. you-get使用方法
  18. 原生js实现的拾色器插件 - ColorPicker
  19. 经典提高培养情商最有效的13本书
  20. 联想服务器查raid型号,联想服务器所配备常见SAS RAID卡规格汇总

热门文章

  1. 给定一个大写字母,要求用小写字母输出
  2. XC7K70T-1FBG676I【FPGA】XC3S200-4FTG256C参数XC7K70T-2FBG676C
  3. Rockchip Android13 AudioCodecs ES8316调试心得
  4. 助力金融科技创新 同创永益受邀参加2023 INNO CHINA中国产业创新大会
  5. iOS 十六进制字符串与普通字符串转换
  6. 听说小米进500强啦?解读历年500强数据
  7. 软件工程(可行性研究)
  8. 51 Nod 1366 贫富差距
  9. 网络安全硬件-防火墙AF
  10. MATLAB图形绘制--三维图像