



如果说 CIFS 是“给人用的文件系统”,
那 NFS,就是“给系统用的文件系统”。
你可能从未在桌面上“点开”过 NFS,
但只要你接触过 Linux、虚拟化、云平台、容器、K8s、HPC,
你几乎每天都在间接使用它。
一、什么是 NFS?一句话先定调
NFS(Network File System,网络文件系统) 是一种:
让多台计算机通过网络共享同一套文件系统的协议
它的核心目标不是“方便人拖文件”,而是:
让操作系统像访问本地磁盘一样访问远端文件
让程序在不同机器上看到一致的目录结构
让计算与存储解耦
一句话版理解:
NFS 是把“文件系统”做成了一种网络服务。

二、NFS 是“和什么协议”比较出来的?
NFS 的价值,只有在对比中才能真正看清。
关键分水岭:
NFS 服务的是“程序和系统”,
CIFS 服务的是“用户和协作”。




三、NFS 的前世:它为什么会诞生?
1️⃣ 起源背景
NFS 诞生于 1980 年代,由 Sun Microsystems 提出。
当时的真实需求是:
多台工作站
同一批源代码
同一套用户环境
不想在每台机器上复制数据
Sun 的想法非常工程化:
“文件不应该跟着机器走,而应该跟着网络走。”
2️⃣ 设计哲学:Unix 世界观
NFS 的设计完全遵循 Unix 哲学:
一切皆文件
文件路径必须一致
工具应简单、可组合
这决定了 NFS 的三个核心特性:
POSIX 语义优先
轻客户端、重服务器
以稳定为第一目标
四、NFS 的核心机制:它是怎么工作的?
1️⃣ Client / Server 模型
应用
↓
VFS(虚拟文件系统)
↓
NFS Client
↓
网络
↓
NFS Server
↓
本地文件系统
对应用来说:
NFS ≈ 本地文件系统
2️⃣ 挂载(mount)是灵魂
NFS 的关键动作不是“连接”,而是 挂载:
mount -t nfs server:/data /mnt/data一旦挂载完成:
程序无感知
路径透明
权限照常生效
这是 NFS 在工程领域极其成功的原因。
3️⃣ 状态设计:从“无状态”到“有状态”
NFSv2 / v3
设计为无状态
易恢复、易扩展
NFSv4
引入状态
更强的锁、权限与安全
NFS 的进化,本质是工程取舍。
五、NFS 为什么“快”?
1️⃣ 它少了很多“人类语义”
相比 CIFS,NFS:
权限模型更简单
锁语义更轻
状态交互更少
这直接降低了 RTT 与协议开销。
2️⃣ 客户端缓存机制非常激进
NFS 允许:
元数据缓存
数据缓存
延迟写回
这让顺序读写性能非常好。
3️⃣ 但它不是“强一致第一”
写入可延迟
并发修改依赖应用自律
多写者场景要谨慎
NFS 的哲学是:
“系统知道自己在干什么”。
六、NFS vs CIFS:不是对错,是世界观不同
一句选型口诀:
Linux 集群 → NFS
办公协作 → CIFS
七、NFS 在现代架构中的“今生”
你可能没意识到,NFS 早已渗透到:
✅ 云与虚拟化
虚拟机镜像存储
共享 ISO / 模板
热迁移底座
✅ 容器与 K8s
PersistentVolume(PV)
多 Pod 共享存储
状态型应用
✅ HPC / 科研计算
共享输入数据
输出结果集中存储
成千上万节点并发读
NFS 是“低调的基础设施之王”。
八、NFS 的典型问题与误区
❌ 误区 1:NFS 天生不安全
事实是:
NFSv4 支持 Kerberos
支持强认证
支持加密
📌 只是很多环境没开。
❌ 误区 2:NFS 不适合生产
错误。
大量数据库备份
CI/CD 构建
镜像仓库
前提是:你理解它的边界。
❌ 误区 3:NFS 可以当分布式文件系统
不能。
无副本
无自动容错
无强一致协调
NFS 是“共享文件系统”,不是“分布式文件系统”。
九、什么时候不该用 NFS?
请慎用在:
高并发随机写
多写者强一致
跨地域访问
超大规模元数据操作
这些场景,更适合对象存储或分布式 FS。
十、NFS 会被淘汰吗?
几乎不可能。
原因非常简单:
POSIX 仍然存在
Linux 仍然主导服务器世界
程序仍然依赖路径与文件语义
NFS 服务的不是潮流,而是“基础”。
十一、一句话总结
NFS 从不追求存在感,
它追求的是:
——让系统安静、稳定、可预期地运行。
在这个世界里:
NVMe 在追逐微秒
IB 在压榨算力
对象存储在重塑数据形态
而 NFS,
仍然在默默托住一切。