外观
挂载 NFS 与 SMB/CIFS 存储
家里或办公室已经有一台 NAS,与其在 PVE 里再插一块盘,不如直接把 NAS 的共享目录接进来。这篇讲怎么加 NFS 和 SMB/CIFS 两种网络存储,以及它们各自的取舍。
开始之前
- 一台已经在跑的 NFS 或 SMB 服务器,并且从 PVE 宿主机的网络能访问到它(不是客户机网络,是宿主机自己的管理网络)。
- 知道要挂载的共享路径:NFS 是导出路径(如
/volume1/pve),SMB 是共享名(如pve-share)。 - SMB 需要一个有权限的账号;很多 NAS 默认关闭了 Guest 访问。
- 这两种都是文件存储,支持 qcow2 格式和快照,也能放 ISO、模板、备份,见文件级与块级存储。
NFS 与 SMB/CIFS 该选哪个
| NFS | SMB/CIFS | |
|---|---|---|
| 常见来源 | Linux/Unix 系统、大多数 NAS | Windows 共享、大多数 NAS |
| 认证 | 通常按 IP/网段授权,简单 | 需要用户名密码 |
| 性能(局域网) | 通常更好,协议开销小 | 略高开销,但差距在千兆/万兆网络下通常不明显 |
| 版本 | 建议用 NFSv3 或 NFSv4,按 NAS 支持情况选 | PVE 不支持 SMB1(有安全问题),至少 SMB2 |
拿不准就选 NFS
如果 NAS 两种都支持,局域网内优先选 NFS,配置更简单、免密码。只有 NAS 只暴露 SMB,或者要跟 Windows 环境共享同一份数据时才选 CIFS。
操作步骤
添加 NFS 存储
Web UI:数据中心 → 存储 → Add → NFS。
| 字段 | 填什么 |
|---|---|
| ID | 存储名,例如 nas-nfs |
| Server | NAS 的 IP 地址(建议用 IP 不用主机名,避免 DNS 出问题时存储跟着断) |
| Export | 填对 Server 之后会自动列出该服务器上可用的导出路径,直接选 |
| Content | 按用途勾选:备份存储勾 VZDump backup file;放 ISO 勾 ISO image、Container template;放虚拟机磁盘勾 Disk image、Container |
| Nodes | 集群环境如果只想给某些节点用,这里限定;单机留空即可 |
命令行等价操作:
sh
# 宿主机 shell 执行
pvesm add nfs nas-nfs --server 192.168.1.10 --export /volume1/pve --content backup,isoExport 下拉框是空的?
说明该 NAS 没有把这个共享导出给当前 PVE 节点的 IP。去 NAS 的 NFS 权限设置里检查允许访问的网段。
添加 SMB/CIFS 存储
Web UI:数据中心 → 存储 → Add → SMB/CIFS。
| 字段 | 填什么 |
|---|---|
| ID | 存储名 |
| Server | NAS 的 IP 地址 |
| Share | 共享名称 |
| Username / Password | 有权限的账号;密码会加密保存在 /etc/pve/priv/storage/<ID>.pw |
| Domain | 有域环境才需要 |
| SMB version | 按 NAS 支持情况选,不支持 SMB1 |
| Content | 同上 |
sh
# 宿主机 shell 执行
pvesm add cifs nas-smb --server 192.168.1.10 --share pve-share --username backup-user --password挂载选项不要自己动
PVE 会自动给 CIFS 挂载加上 soft(避免服务器无响应时客户端永久卡住)、账号、域等参数。不要在 options 字段里重复填这些,容易冲突。
该注意的几个限制
网络断了,存储也断了
网络存储的可用性绑定在网络链路上。NAS 关机、网线松动、交换机重启,都会让这个存储立刻变成不可用状态。依赖网络存储运行的虚拟机,网络故障期间会跟着卡住或报 IO 错误。给关键业务用网络存储时,网络本身要考虑冗余(Bond、独立交换机)。
大容量 qcow2 在 NFS 上打快照可能很慢
qcow2 的内部快照是阻塞式的,在网络存储上尤其明显——几百 GB 的磁盘打快照可能要几分钟甚至更久,期间虚拟机会短暂卡住。建议在虚拟机关机状态下打快照/删快照,或者干脆用 PBS 做备份而不是频繁打快照。
部分存储不支持 cache=none
个别 NAS/网络文件系统不支持 O_DIRECT,此时虚拟机磁盘的 Cache 模式如果强制用 No cache 可能报错或性能异常,可以改用 Writeback,但要清楚这意味着牺牲一部分断电安全性,见创建第一个虚拟机里关于 Cache 的说明。
检查结果
sh
# 确认存储处于 active
pvesm status
# 确认真实挂载
mount | grep /mnt/pve
df -h | grep /mnt/pve然后做一次真实测试:上传一个小 ISO,或者手动跑一次某台测试虚拟机的备份到这个存储,确认能写、能读。
重启宿主机一次再交付
网络存储依赖开机时的挂载流程。重启一次宿主机,确认存储能自动重新连上,而不是要手动介入。
常见问题
存储显示灰色或报 storage is not online。 先 ping NAS 的 IP 确认网络通;再检查 NAS 那边服务是否在跑、共享是否还在。
能挂载,但写入报权限错误。 NFS 检查 NAS 的 no_root_squash/用户映射设置;CIFS 检查账号在该共享上的读写权限,不只是能登录。
同一台 NAS,要不要同时做 NFS 和 SMB 两个存储? 没必要。选一种协议,把不同用途(备份、ISO、虚拟机磁盘)通过 Content 类型和子目录区分即可。