zoukankan      html  css  js  c++  java
  • Linux基础篇学习——Linux文件系统之文件存储与读取:inode,block,superblock

    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文件系统

  • 相关阅读:
    Maven 打包指定子工程项目(springcloud分模块打包)
    linux常见问题: zip/unzip: command not found
    CentOS8安装jdk1.8
    nacos-docker镜像安装nacos并配置数据库
    浏览器的一个请求从发送到返回都经历了什么
    python之scrapy
    常见的爬虫与反爬虫斗争
    Python闭包与延迟绑定
    ip代理
    python编程:统计文件中单词出现次数
  • 原文地址:https://www.cnblogs.com/zhaoya2019/p/12576747.html
Copyright © 2011-2022 走看看