核心概念
XFS 是 SGI 开发的高性能 64 位日志文件系统,2001 年并入 Linux 内核,RHEL 7+ 将其作为默认文件系统。
关键特性
| 特性 | 说明 |
|---|---|
| 分配组(Allocation Groups) | 将磁盘划分为多个独立 AG,支持并行 I/O |
| B+ 树索引 | 所有元数据用 B+ 树管理,查找效率高 |
| 延迟分配 | 类似 ext4,减少碎片 |
| 预分配 | fallocate() 提前分配连续空间,适合数据库 |
| 在线扩容 | xfs_growfs 支持在线扩容(不能缩小) |
| 日志校验 | 元数据日志带校验和,防止静默数据损坏 |
适用场景
- 大文件存储(视频、数据库)
- 高并发写入(日志服务器、消息队列)
- 需要在线扩容而无法停机的场景
挂载示例
/dev/sda4 on /var type xfs (rw,noatime)/var 目录存放日志、数据库、缓存等频繁写入的数据,使用 XFS 可发挥其高并发写入优势。
与 ext4 对比
| 维度 | XFS | ext4 |
|---|---|---|
| 并发写入 | 优秀(AG 并行) | 一般 |
| 大文件 | 优秀 | 良好 |
| 缩小文件系统 | 不支持 | 支持 |
| 小文件性能 | 一般 | 良好 |
| 元数据操作 | 略慢(B+ 树开销) | 更快 |
面试要点
- RHEL/CentOS 7+ 默认文件系统为 XFS
- XFS 只能扩容不能缩容,这是设计取舍
xfs_repair用于修复 XFS 文件系统,类似 ext4 的fsck