linux-sre-handbook

03-文件系统选型

常见 Linux 文件系统对比

文件系统 最大卷 最大文件 特点 最佳场景
ext4 1EB 16TB 稳定、成熟、广泛支持 通用、系统盘
XFS 8EB 8EB 高并发、延迟分配 数据库、大文件
btrfs 16EB 16EB COW、快照、压缩、校验 数据完整性要求高
ZFS 256ZB 16EB 最强数据保护、ARC 缓存 存储服务器
tmpfs 物理内存 物理内存 纯内存文件系统 /tmp, /dev/shm

创建与调优

ext4

mkfs.ext4 -L mydata /dev/sda1
# 关键挂载选项
mount -o noatime,data=ordered /dev/sda1 /data
# noatime: 不更新访问时间, 提升性能
# data=ordered: 默认, 数据先于元数据写入

XFS

mkfs.xfs -L mydata /dev/sda1
mount -o noatime,nodiratime,allocsize=1m /dev/sda1 /data
# allocsize: 预分配大小, 减少碎片

btrfs

mkfs.btrfs -L mydata /dev/sda1
# 子卷
btrfs subvolume create /mnt/@home
# 快照
btrfs subvolume snapshot /mnt/@home /mnt/@home_snap_20250101
# 压缩
mount -o compress=zstd /dev/sda1 /data

挂载选项速查

选项 说明 使用场景
noatime 不更新访问时间 性能敏感
nodiratime 不更新目录访问时间 配合 noatime
relatime 仅当 mtime/ctime 更新时才更新 atime 折中方案
defaults rw, suid, dev, exec, auto, nouser, async 默认
sync 同步写入 数据安全要求高
noexec 禁止执行二进制 /tmp 安全加固

选型决策树

数据库?    → XFS (ext4 备选)
大文件?    → XFS
多小文件?  → ext4
需要快照/压缩? → btrfs
数据保护第一?  → ZFS
临时文件?  → tmpfs
容器镜像?  → overlay2 (Docker)

延伸阅读