当前位置: 首页 > news >正文

RHCA05-文件系统调优

一、文件系统核心概念
  1. 文件与目录关系

    • 识别差异
      • 系统通过 inode 识别文件
      • 用户通过文件名识别文件
    • 映射存储:文件名与 inode 的映射关系存储在目录中
  2. inode 结构

    • 组成:文件 = inode(元数据) + block(数据块)
    • 核心功能
      • 记录文件元数据(类型、权限、UID/GID、数据块指针)
      • 每个文件有唯一 inode 编号(如 75059
  3. 操作与 inode 关系

    操作行为示例
    cp分配新 inode,新旧文件独立inode 68170831 → 101339976
    mv(同分区)inode 不变,仅修改目录映射inode 保持不变
    mv(跨分区)复制 + 删除,生成新 inode等同于 cp 行为
    rm回收 inode,数据块标记可用新文件覆盖旧数据块
  4. 硬链接特性

    • 多个文件名指向同一 inode(如 /etc/passwd/tmp/passwd.1
    • 限制
      • 不能跨文件系统
      • 目录默认链接数 ≥ 2(含 ...
    • 删除影响
      • 链接数减为 0 时才彻底删除文件

二、文件系统结构
  1. 虚拟文件系统(VFS)

    • 作用:为应用程序提供统一文件访问接口,屏蔽底层差异(如 ext4/NFS/SMB)
    • 分层架构
      应用程序
      System Call
      VFS
      ext4/NFS/SMB驱动
      块设备
  2. ext4 文件系统结构

    • 组划分:文件系统分为多个 Block Group
    • 组内结构
      组件功能
      Superblock记录全局元信息
      Group Descriptor块组描述信息
      Block Bitmap标记数据块使用状态
      Inode Bitmap标记 inode 使用状态
      Inode Table存储文件元数据
      Data Blocks实际文件数据存储区
  3. 超级块(Superblock)

    • 作用:存储文件系统关键元数据(大小、类型、块大小等)
    • 备份机制
      • 主超级块位于 Group 0
      • 备份位置固定(如 Group 1 的 32768 块、Group 3 的 98304 块)

三、文件系统操作与调优
  1. 分区与格式化

    • 操作流程
      # 创建分区  
      fdisk /dev/vdb → n → p → 设置大小 → w  
      # 格式化  
      mkfs.ext4 /dev/vdb1  
      # 挂载  
      echo "UUID=54b24660-... /data ext4 defaults 0 0" >> /etc/fstab  
      mount -a  
      
  2. 元数据查看命令

    命令功能示例
    tune2fs -l显示 ext 文件系统参数tune2fs -l /dev/sda1
    xfs_info查看 XFS 文件系统信息xfs_info /
    dumpe2fs显示 ext 文件系统详细信息dumpe2fs /dev/sdb1
  3. 超级块修复

    • 损坏现象wrong fs type, bad option, bad superblock
    • 修复步骤
      umount /dev/sdb1  # 先卸载  
      fsck -b 32768 /dev/sdb1  # 用备份超级块修复  
      mount /dev/sdb1  # 重新挂载  
      
    • 备份位置32768, 98304, 163840 等固定块

四、日志型文件系统
  1. 核心机制

    • 三区结构:日志区(Journal)→ 索引区(Inode)→ 数据块区(Block)
    • 写入流程
      1. 操作记录写入日志区
      2. 实际数据写入数据块
      3. 日志条目转移到索引区
      4. 清空日志区
  2. 调优方案

    • 内部日志:默认配置,适合大文件场景
    • 外部日志:提升小文件性能(如数据库)
      # ext4 配置外部日志  
      tune2fs -O ^has_journal /dev/sdb1  # 移除内部日志  
      mke2fs -O journal_dev -b 4096 /dev/sdc1  # 格式化日志设备  
      tune2fs -j -J device=/dev/sdc1 /dev/sdb1  # 关联外部日志  
      

五、知识小结
知识点核心内容重点提示
文件系统结构inode + block 结构,VFS 统一接口移动文件时同分区 inode 不变
超级块修复fsck -b <备份块> 恢复损坏的超级块备份位置固定(32768, 98304…)
日志型文件系统通过日志区保证崩溃一致性,外部日志提升小文件性能外部日志设备需独立物理磁盘
inode 与 blockrm 仅释放 inode,新数据覆盖旧 block;硬链接共享 inode链接数为 0 时文件彻底删除
文件系统分组默认每组 32768 块,提升文件连续性超级块备份分散在各组

关键原则

  1. 优先通过 日志机制 预防文件系统损坏
  2. 修复前务必 卸载文件系统
  3. 高并发小文件场景推荐 外部日志分离
http://www.dtcms.com/a/341537.html

相关文章:

  • Spark学习
  • 游戏本不插电源适配器不卡设置教程
  • 技术半衰期悖论:AI时代“不可替代领域“的深耕地图
  • 30.Linux cobbler自动化部署
  • 生物信息学深度学习模型比较与学习框架
  • chrome插件开发(一)
  • 23TaskExecutor初始化
  • Windows 命令行:dir 命令
  • MyBatis 动态查询语句详解:让 SQL 更灵活可控
  • 前端调用阿里云接口语音合成演示
  • 20人团队文件共享选哪款?群晖DS925+ 和 DS1525+深度对比
  • 反射基础知识初入(up晚上回家再补完剩下的)
  • Anomalib:在Linux服务器上安装使用Anomalib 2.1.0
  • 生意参谋-市场竞争分析-提升商品成长效率
  • PostgreSQL 中的金钱计算处理
  • C语言第十章内存函数
  • 《SQLAlchemy 2 In Practice》读后感
  • win与ubuntu双系统安装笔记
  • 小波函数多尺度变换的 Curvelet 变换
  • vue3项目,使用vue2方式来写,可以吗
  • 【嵌入式】CAN通信
  • 基于XGBoost算法的数据回归预测 极限梯度提升算法 XGBoost
  • 虚拟机部署HDFS集群
  • JDK 工具
  • IDEA(十四) IntelliJ Idea 常用快捷键(Mac)
  • 会计人员职业发展框架:核心能力构建与进阶路径
  • ROADS落地的架构蓝图
  • Java 通过 m3u8 链接下载所有 ts 视频切片并合并转换为 mp4 格式
  • Odoo 18 通用图片导入工具:从零到一的企业级开发实战
  • 记录一次ubuntu系统下ovito无法调用显卡驱动报错