Linux存储磁盘与文件系统
Linux 存储涉及块设备、分区、LVM、RAID、文件系统、挂载、IO 调度和容量管理。数据库和中间件性能很大程度受存储影响。
# 1. 学习目标
- 理解磁盘、分区、文件系统、LVM、RAID 和挂载。
- 能扩容、检查、挂载和监控常见文件系统。
- 能分析磁盘满、IO 慢、只读文件系统和坏盘风险。
# 2. 知识框架
Linux存储磁盘与文件系统
├─ 入门:建立术语、对象和日常操作的直觉
├─ 进阶:理解机制、边界和跨平台差异
└─ 专家:能排障、能设计、能阅读实现和研究材料
存储链路通常是:物理盘或云盘 -> 分区或 PV -> LVM/RAID -> 文件系统 -> 挂载点 -> 应用目录。
# 3. 核心概念
| 主题 | 说明 | 工程关注 |
|---|---|---|
| 块设备 | 以块为单位读写的存储设备 | 磁盘、云盘、Loop 设备 |
| LVM | 逻辑卷管理,提供灵活扩容和快照 | 在线扩容、卷组规划 |
| RAID | 通过多盘组合提升可靠性或性能 | 重建风险、写入惩罚 |
| 文件系统检查 | 检测和修复文件系统一致性 | 异常断电、只读保护 |
# 4. 机制与实践
- 扩容前确认底层盘、分区、LVM、文件系统各层是否都扩展。
- 关键数据目录要监控容量、inode、IO 延迟和错误日志。
- 云盘快照不是完整备份策略,要定期恢复演练。
# 5. 常用命令与工具
| 命令或工具 | 作用 | 使用建议 |
|---|---|---|
lsblk -f | 查看块设备和文件系统 | 确认层级关系 |
blkid | 查看设备 UUID | 配置 fstab 时使用 |
iostat -xz 1 | 查看磁盘 IO 指标 | 分析延迟和饱和度 |
# 6. 常见误区
- 只扩云盘不扩文件系统:底层容量变大但挂载点可用空间不变。
- 误改 fstab:错误挂载配置可能导致系统无法正常启动。
- 把快照当备份:快照依赖同平台和一致性策略,不能替代异地备份和恢复验证。
# 7. 进阶研究方向
- 学习 ext4、XFS、Btrfs 的差异和适用场景。
- 研究 fio 压测参数:块大小、队列深度、顺序/随机读写。
- 了解数据库对文件系统和 IO 调度的建议。
# 8. Tips 快问快答
Q:LVM 的价值是什么?
A:它让物理存储和逻辑卷解耦,便于扩容、迁移和快照。
Q:为什么磁盘利用率 100% 服务会慢?
A:设备队列被打满后请求排队,IO 延迟会显著上升。
Q:inode 满怎么办?
A:找到海量小文件来源,清理或迁移,并重新规划文件系统。
# 9. 总结
Linux 存储不是单个磁盘命令,而是多层结构。理解每一层的职责,才能安全扩容、正确监控并定位 IO 问题。
上次更新: 2026/06/25, 10:02:19