Linux 常用文件系统分为三大类:
- 磁盘型文件系统(真正把数据存到磁盘/SSD 上)
- 内存/虚拟文件系统(依赖 RAM 或内核数据结构,不在磁盘上)
- 分布式/网络文件系统(跨主机存储访问)
objectivec
Linux 文件系统
│
├── 传统本地文件系统
│ ├── ext2 / ext3 / ext4
│ ├── XFS
│ ├── ReiserFS
│ └── Btrfs
│
├── 网络文件系统
│ ├── NFS
│ ├── SMB/CIFS (Samba)
│ ├── CephFS
│ └── GlusterFS
│
├── 专用文件系统
│ ├── VFAT / exFAT
│ ├── ISO9660 / UDF
│ ├── tmpfs
│ ├── procfs
│ ├── sysfs
│ └── cgroupfs
🗂️ 一、磁盘型文件系统(最常见)
1. ext2/ext3/ext4
-
ext2:最早的稳定 Linux 文件系统,不支持日志 (journal),恢复慢。
-
ext3:在 ext2 上增加日志功能,崩溃后恢复快。
-
ext4:目前 Linux 默认常用文件系统之一,支持大文件、大分区,向后兼容 ext2/3。
- 特点:extents(高效存储连续数据块)、延迟分配、日志功能。
- 使用场景:通用,个人电脑、服务器。
2. XFS
- 特点:高性能日志文件系统,支持超大文件/分区,分配空间快。
- 缺点:小文件多时效率比 ext4 差,碎片整理依赖工具。
- 使用场景:数据库、大型文件存储。
- SLES、RHEL 默认推荐。
3. Btrfs
- 特点:下一代 Linux 文件系统,内建快照、压缩、子卷管理。
- 优点:支持在线扩展、快照回滚、数据校验。
- 缺点:在某些内核版本稳定性不足。
- 使用场景:SUSE/SLES 常用于根文件系统(快照用于系统回滚)。
4. ReiserFS
- 特点:曾经流行,特别适合小文件存储。
- 缺点:已停止维护,逐渐被 ext4 和 btrfs 替代。
5. ZFS (移植到 Linux)
- 特点:来自 Solaris,内建卷管理 + 文件系统,支持快照、校验、数据修复。
- 缺点:内核集成问题(CDDL 与 GPL 许可证冲突)。
- 使用场景:高可靠性存储、NAS。
📌 二、内存/虚拟文件系统(不存磁盘)
这些文件系统并不是"真正存储",而是 Linux 内核对进程、内存、硬件的一种接口。
1. tmpfs
- 存储位置:内存(可交换到 swap)。
- 特点:速度快,掉电数据消失。
- 常见挂载点 :
/dev/shm
,/run
,/tmp
。 - 用途:临时文件、共享内存、运行时数据。
2. devtmpfs
- 存储位置:内核内存。
- 作用:自动为系统设备(/dev 下)创建设备节点。
- 常见挂载点 :
/dev
。
3. procfs
- 作用:内核导出进程信息、系统信息的接口。
- 常见挂载点 :
/proc
。 - 用途 :查看
/proc/cpuinfo
,/proc/meminfo
,/proc/[pid]/status
。
4. sysfs
- 作用:内核导出设备、驱动、总线信息的接口。
- 常见挂载点 :
/sys
。 - 用途 :查看硬件、调节内核参数(如
/sys/class/net/eth0
)。
5. cgroupfs
- 作用:控制组文件系统,限制/监控进程资源(CPU、内存、I/O)。
- 常见挂载点 :
/sys/fs/cgroup
。
6. debugfs
- 作用:调试文件系统,提供内核内部调试信息。
- 常见挂载点 :
/sys/kernel/debug
。
🌐 三、网络/分布式文件系统
1. NFS (Network File System)
- 特点:UNIX/Linux 经典网络文件系统,客户端挂载远程服务器目录。
- 用途:共享目录、集群。
2. CIFS/SMB
- 特点 :Windows 文件共享协议。Linux 通过
cifs
驱动挂载。 - 用途:Linux 与 Windows 文件共享。
3. CephFS
- 特点:基于 Ceph 分布式存储,支持高扩展性和高可靠性。
- 用途:云存储、大规模集群。
4. GlusterFS
- 特点:分布式文件系统,用户态实现。
- 用途:横向扩展存储。
5. AFS / Lustre
- AFS:早期分布式文件系统。
- Lustre:高性能计算集群常用文件系统。
📊 总结对比表
类型 | 文件系统 | 特点 / 优势 | 典型挂载点 / 应用 |
---|---|---|---|
磁盘型 | ext4 | 稳定、广泛使用 | / , /home , /var |
XFS | 大文件、大分区高效 | / , 数据库存储 |
|
Btrfs | 快照、压缩、子卷 | 根分区,SLES 系统回滚 | |
内存型 | tmpfs | 基于 RAM,掉电消失 | /dev/shm , /run , /tmp |
procfs | 内核/进程信息接口 | /proc |
|
sysfs | 硬件、驱动信息接口 | /sys |
|
网络型 | NFS | 跨机共享,UNIX/Linux 常用 | /mnt/nfs |
CIFS/SMB | Windows 共享 | /mnt/share |
|
CephFS | 分布式,云存储 | 大规模集群 | |
GlusterFS | 用户态分布式存储 | 横向扩展 |