Linux基础篇学习——Linux文件系统之文件存储与读取:inode,block,superblock

By | 2020年3月27日

Linux文件类型

代表符号 含义
常规文件,即file
d directory,目录文件
b block device,块设备文件,支持以"block"为单位进行随机访问
c character device,字符设备文件,支持以"character"为单位进行线性访问
l symbolic link,符号链接文件
p pipe,命名管道
s socket,套接字文件

文件命名规则

1.严格区分大小写
2.目录也是文件
3.除过/以外的任意字符表示
4.长度不超过255

文件存储与读取

文件存储

1.文件存储在硬盘
2.文件存取最小单位是(block),块(block)由扇区组成,最常见的块大小为4KB,即8连续sector组成一个block
3.硬盘的最小存储单位叫做扇区(sector),每个扇区存储512字节

文件读取

操作系统读取硬盘数据:一次性读取一块数据

流程 以要读取/etc/passwd文件内容为例
在这里插入图片描述

Linux文件系统

Linux文件系统可以简单分为inode table和data area,inode table中存有inode,文件系统通常会将文件的权限属性放置到inode中,至于实际内容则放置到data block区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息

inode block superblock
记录文件的元数据 记录文件的数据 记录文件系统的整体信息

文件的元数据 :权限(rwx)与属性(拥有者、群组、时间参数、大小等)
文件的数据:实际记录文件的内容若文件太大时,会占用多个block
文件系统的整体信息:inode/block的总量使用量剩余量, 以及档案系统的格式与相关信息等

inode补充
1.可以通过stat命令查看文件的元数据

[root@localhost ~]# stat anaconda-ks.cfg
  File: ‘anaconda-ks.cfg’
  Size: 1241            Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 16797762    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
Access: 2019-09-07 16:17:23.995429241 +0800
Modify: 2019-09-07 16:17:24.005456452 +0800
Change: 2019-09-07 16:17:24.005456452 +0800
 Birth: -

File 文件名称
Size 文件大小
Blocks 占用的磁盘块数
IO Block IO块大小
regular file 文件类型
Device 所在设备
InodeInode节点号
Links被链接次数
Access①访问权限
Uiduid号属主
Gidgid号属组
Access② 文件最近一次的访问时间
Modify 文件的修改时间
Change 文件的改变时间
2.inode同时也记录此文件的资料所在的block号码
3.inode消耗磁盘空间
  在磁盘格式化时,操作系统会自动将磁盘分为两个区域,一个数据区,一个inode区。整个磁盘的可用容量由inode磁盘空间共同决定,当inode消耗完之后,磁盘空间还有剩余也无法存储数据。


补充

1.小文件问题:可能会使inode耗尽,使得文件文法创建。(磁盘利用率低)—>对于小文件比较多的场景,将block划分小一点。
2.大文件问题:一个文件占用多个block,使得文件读写速率慢。—->将block划分大一点。
3.ext文件系统——xfs文件系统

请关注公众号获取更多资料

发表评论