linux_inode和block

linux里一切皆文件

什么是文件属性?

  文件本身带有的信息, 包括:索引节点编号、 文件类型以及权限、硬链接个数(备份作用)、所有者、所属组、文件大小、修改月、修改日、时分

151387 -rw-------. 1 root root 1.2K Nov  7 21:57 anaconda-ks.cfg

   索引节点编号,相当于人的身份证,全国唯一,linux系统中唯一,系统读取文件时,首先通过文件名找到节点编号,然后才能读取到文件内容

ll -hi    # 查看当前目录下文件信息

  在linux中,文件和程序的存在,必须要有用户和组满足相应的存在需求

  严格说,文件名不是文件属性

  stat 文件              看某一个文件的详细属性

echo 'Hello Word!' > Name.txt    # 模拟数据
stat Name.txt    # 查询文件信息

   结果:

  File: `Name.txt'
  Size: 12        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 151735      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-21 16:11:18.435976522 +0800
Modify: 2017-11-22 15:19:37.993143055 +0800
Change: 2017-11-22 15:19:37.993143055 +0800

# 包含文件 名、文件大小,inode 节点编号,权限信息,硬链接信息、访问时间、改变时间、修改时间、文件权限、所属主、所属组等信息

什么是索引节点?

       inode 索引节点

    硬盘首先分区,然后格式化创建文件系统(etx4),分区后都有 Inode(很多个) 和 Block(很多个)两个部分内容

    Inode: 存储数据属性信息(ls -l 结果),包含指向文件实体的指针等,唯独不包含文件名

       作用: 为每个文件进行信息索引

  Block: 存放文件数据内容

    inode是有大小的,Centos5,非启动分区128字节, Centos6,非启动分区256字节,/boot分区inode都为128字节,分区被格式化创建文件系统之后,定下来的,格式化以后就无法更改其大小,企业环境没有更改需求

如何查询inode和block使用情况?

df -i               # 查询每个分区已经使用的i和剩余i
df -h          # 查询分区block使用情况

inode总结:

  1. 磁盘分区后格式化为etx4文件系统后,产生一定数量的inode和block
  2. inode存放文件属性信息以及指向文件实体的指针
  3. ext3/ext4文件系统block存放文件的实际数据
  4. inode表现形式为一串数字,不同文件对应的inode在os中是唯一的
  5. ext3/ext4文件系统下,正常情况一个文件创建有且只能占用一个inode和至少占用一个block,大文件占用多个block,如果一个block未占完,剩余空间也无法使用
  6. block 的大小一般有1k,2k,4k,除引导分区1k外,其他分区为4k

block总结:

  1. 磁盘读取数据是按block为单位读取
  2. 一个文件可能占有多个block,每读取一个block就会消耗一次磁盘IO,想提升IO性能,尽可以一次读取尽量多
  3. 一个block只能存放一个文件,也就是无论文件多小,这个block剩余空间浪费掉了,假如一个文件大小为4k,但是一个小文件1k,3k剩余空间被浪费了,磁盘IO是衡量磁盘性能重要指标
  4. 根据业务需求,确定block大小,对于大文件设置block大一点,对于小文件block小一点,可以选择消耗磁盘空间换性能
  5. 磁盘分区格式化时候设置,命令: mkfs.ext4 -b 2048 -i 256   -b 设置block大小,-i设置inode大小
  6. 企业文件一般比较大,ext3/ext4一般设置为 4k,centos文件系统为xfs文件系统,生成环境文件系统为4k

读文件过程?

  先找到文件名,然后读取文件的inode,通过inode确认你是否有权限查看文件,然后通过inode指向去读取文件数据

 

转载于:https://www.cnblogs.com/2bjiujiu/p/7879415.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值