跳转到内容

OpenMediaVault:在 PVE 上跑一台轻量 NAS ​

OpenMediaVault(下文简称 OMV)是基于 Debian 的开源 NAS 系统,给你一套管理磁盘、文件系统、共享和用户的 Web 界面。

在 PVE 上它有一个别的 NAS 系统没有的优势:它不强制 ZFS,所以直通不是前提。这让它成为「在虚拟机里跑 NAS」这件事上门槛最低的选项。

适合谁 ​

你的情况OMV 合不合适
只想要 SMB/NFS 共享,内存紧张很合适,2 GB 内存就能跑
想在虚拟磁盘上跑,不折腾直通很合适,这是它相对 TrueNAS 最大的优势
想要 ZFS 的校验、快照、压缩不合适。OMV 的 ZFS 靠第三方插件,不如 TrueNAS 原生
想要一体化的应用生态(相册、影音)不合适。OMV 的插件体系比较克制,应用要靠 Docker 自己搭
要托管极重要且无备份的数据任何跑在虚拟机里的 NAS 都不合适,见下文

NAS 虚拟机是一个额外的故障层

你最重要的数据现在依赖两层:PVE 和 OMV。这意味着 PVE 出问题 → NAS 停 → 所有依赖它的服务停。

开始之前,确认这些数据在这台机器之外还有一份。 本站反复强调的那句话在这里尤其适用:冗余(RAID / ZFS)防硬盘坏,备份防其他一切。见备份与恢复。

第一步:决定存储方案 ​

这是整篇文章最重要的决定,它会影响备份、快照和迁移能力,装完再改要搬数据。

方案OMV 的数据盘是什么冗余由谁负责
A. 虚拟磁盘PVE 存储上的一块虚拟磁盘PVE(宿主机的 ZFS / RAID)
B. 直通物理盘直通进来的物理磁盘或整张 HBAOMV(mdadm / 文件系统层)

方案 A:虚拟磁盘(多数人该选这个) ​

OMV 看到的是一块普通的虚拟磁盘,宿主机负责底层冗余。

优点能打快照、能迁移、vzdump 能备份到数据;不需要 IOMMU,不挑硬件
代价两层文件系统(宿主机 ZFS/LVM + OMV 的 ext4);OMV 看不到物理盘的 SMART

不要做双层冗余

宿主机已经是 ZFS 镜像时,不要在 OMV 里再把两块虚拟磁盘组 mdadm RAID1。那会让可用容量再砍一半,而且不提供任何额外保护——底层已经镜像过了。

宿主机做冗余,OMV 只管共享,这是方案 A 的正确形态。

物理盘的健康监控归宿主机

OMV 在虚拟磁盘上看到的 SMART 是假的(或者根本没有)。磁盘健康必须在 PVE 宿主机上监控,见健康检查清单。

别因为 OMV 界面上一片绿就以为盘是好的——它根本看不到真实的盘。

方案 B:直通物理盘 ​

OMV 直接管理物理磁盘,能看到真实的 SMART,也能自己组 mdadm 阵列。

优点真实 SMART;磁盘可以整块拔到别的机器上读
代价不能打快照、不能迁移;直通盘上的数据完全不在 vzdump 备份里;需要 IOMMU(HBA 直通)

两种做法:

  • 整盘映射:qm set <vmid> -scsi1 /dev/disk/by-id/<磁盘ID>。简单,但 SMART 透传不完整。
  • HBA 整卡直通:需要一张独立的 HBA 卡且它在一个干净的 IOMMU 分组里。SMART 完整,代价是前提条件苛刻。前提与风险见硬件直通。

直通磁盘时必须按序列号确认目标

/dev/sdb 这类名字会随插拔顺序漂移,今天的 sdb 明天可能是别的盘。把错误的盘映射进虚拟机,OMV 在里面建文件系统就会抹掉上面的数据。

始终用 by-id 路径,并先三重确认:

sh
# 在宿主机执行:按容量、型号、序列号确认
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL,SERIAL
ls -l /dev/disk/by-id/

确认目标盘没有挂载点、不是系统盘、上面没有你还要的数据,再继续。这一步没有撤销键。

第二步:资源规划 ​

OMV 很省。不要按 TrueNAS 的标准给它。

项建议说明
vCPU1–2纯文件共享很闲。要跑 Docker 再加
内存2 GB 起,4 GB 宽裕不用 ZFS 插件的话真的不需要更多
系统盘16–32 GB 虚拟磁盘见下面的警示
数据盘单独一块,方案 A 或 B
气球驱动方案 A 可以开;装了 ZFS 插件就关掉ZFS 和内存回收配合不好

OMV 的系统盘不能拿来存数据

这是 OMV 和其他 NAS 系统最大的差异之一。安装程序会占用整块系统盘,而且 OMV 默认不允许把系统盘当作数据盘共享出去。

所以至少要两块盘:一块装系统,一块存数据。虚拟磁盘也算。

给系统盘分 2 TB 然后指望剩余空间能用来存东西,是新手最常见的返工。有插件能绕开这个限制,但不推荐——它会让系统盘写满时的故障变得更麻烦。

第三步:下载并校验 ISO ​

从 OpenMediaVault 官网获取安装镜像,并记下官方公布的校验值。

在本地电脑校验:

sh
# macOS / Linux
shasum -a 256 openmediavault_*.iso

版本跟着 Debian 走

OMV 的大版本跟随 Debian:OMV 6 基于 Debian 11 Bullseye,OMV 7(Sandworm)基于 Debian 12 Bookworm,之后的版本继续跟进。

当前的稳定版本号和对应的 Debian 代号以官网为准,不要照抄任何教程里写死的版本。

校验通过后上传到 PVE:节点 → local → ISO Images → Upload。

第四步:创建虚拟机 ​

完整的选项解释见创建第一个虚拟机。这里只列和默认不同的地方。

标签页字段填什么
GeneralNameomv,勾上 Start at boot
OSGuest OSLinux,版本按 OMV 对应的 Debian 选
SystemMachine / BIOSq35 + OVMF (UEFI);方案 B 走 HBA 直通时 q35 是必须的
SystemSCSI ControllerVirtIO SCSI single
SystemQemu Agent勾上(装完系统要在 OMV 里补装软件包)
DisksBusSCSI,勾 Discard 和 IO thread
DisksDisk size16–32 GB,这是系统盘
CPUTypehost
MemoryMemory2048–4096
NetworkModelVirtIO (paravirtualized)

不要勾 Start after created,还要先加数据盘。

加数据盘 ​

方案 A:虚拟机 → Hardware → Add → Hard Disk,Bus 选 SCSI,容量按需,同样勾上 Discard 和 IO thread。

方案 B:按上面的警示确认好序列号之后,在宿主机执行:

sh
# 在宿主机执行,<磁盘ID> 用 ls -l /dev/disk/by-id/ 查到的完整名字
qm set <vmid> -scsi1 /dev/disk/by-id/<磁盘ID>

确认一下写进去的是什么:

sh
qm config <vmid> | grep scsi

第五步:安装 OMV ​

挂载 ISO,启动,打开 Console。OMV 的安装器是 Debian 的文本安装器,一路按提示走。几个要注意的点:

步骤注意
网络配置默认走 DHCP。装完再在界面里改静态 IP
主机名 / 域名域名可以填 local 或你的内网域名
root 密码这是 Linux 的 root 密码,不是 Web 界面的密码
选择安装磁盘选那块 16–32 GB 的系统盘
软件源镜像国内可以选地理位置近的镜像,装完能改

选错安装磁盘会抹掉数据盘

安装器会清空所选磁盘的全部内容。方案 B 下数据盘就挂在旁边,选错了数据直接没。

分辨方法:系统盘是你刚建的那块 16–32 GB 的,数据盘容量明显更大。按容量核对,不要只看设备名。

最稳妥的做法:先只挂系统盘把 OMV 装完,装完关机再加数据盘。 多花两分钟,彻底消除选错的可能。

安装完成后会自动重启。回到 Hardware → CD/DVD Drive 把 ISO 弹出(改成 Do not use any media),否则下次又从光盘启动。

第六步:第一次登录 ​

OMV 的 Web 界面和 PVE 不一样:

PVEOMV
地址https://<ip>:8006http://<ip>(80 端口,http)
默认账号安装时设的 rootadmin
默认密码安装时设的openmediavault

不知道 IP 的话,在 PVE 的 Console 里用 root 登录,执行 ip -4 addr。

默认密码必须立刻改

admin / openmediavault 是公开的默认凭据,任何能访问你内网的人都知道。

登录后第一件事:右上角用户菜单 → 修改密码。然后在 系统 → 用户 里确认没有其他遗留账号。

在此之前,不要把这台机器暴露到任何不可信的网络。

装 guest agent ​

在 OMV 的 Console 或 SSH 里(它就是一个 Debian):

sh
# 在 OMV 虚拟机内部执行
apt update
apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent

装完回 PVE 的 Summary 页面,应该能看到 OMV 的 IP。

这一步不是可选的

没有 guest agent,vzdump 的快照模式拿不到文件系统冻结——备份相当于在 NAS 运行中直接拔电,恢复出来可能要修文件系统。对一台存数据的机器来说这不能接受。

原理见 VirtIO 驱动与 QEMU Guest Agent。

第七步:建共享 ​

OMV 的配置有固定顺序,跳步会找不到选项。

每一步之后都要点「应用」

改完配置,界面顶部会出现一条黄色的待应用变更提示。必须点它的「应用」按钮,配置才会真正写入系统。

这是 OMV 新手最常见的困惑:「共享建好了但电脑上看不见」——十有八九就是没点应用。

1. 擦除磁盘(如果需要) ​

存储 → 磁盘,选中数据盘。如果它上面有旧的分区表,先 擦除 (Wipe)。

擦除不可撤销

按容量和型号确认这是数据盘,不是系统盘。

2. 建文件系统 ​

存储 → 文件系统 → 创建:

  • 选数据盘。
  • 文件系统类型:ext4 是稳妥的默认选择。
  • 建好之后要点「挂载」,挂载了才能往下走。

方案 A 下不要选 BTRFS 或加 mdadm

宿主机已经在做冗余和校验了,OMV 这层用最简单的 ext4 就好。多加一层复杂度只会让排查变难。

3. 建共享文件夹 ​

存储 → 共享文件夹 → 创建。选刚才挂载的文件系统,给个名字和相对路径。

4. 建用户 ​

用户管理 → 用户 → 创建。

不要用 admin 访问共享

admin 是 Web 界面的管理员。给每个实际使用的人(或设备)建独立的普通用户,共享权限单独授予。这样某个凭据泄露时影响范围可控。

5. 启用 SMB 并添加共享 ​

服务 → SMB/CIFS:

  1. 先在 设置 里把服务启用。
  2. 再到 共享 标签页 添加,选上面建的共享文件夹。
  3. 回到共享文件夹的权限 / ACL,给你的用户读写权限。
  4. 点应用。

需要 NFS 的话在 服务 → NFS 里做,流程类似。

检查结果 ​

从另一台电脑验证,不要在 OMV 自己里面测:

  1. 能连上:Windows 资源管理器输入 \\<omv-ip>,macOS 用 Finder 的「连接服务器」输入 smb://<omv-ip>,用刚建的普通用户登录。
  2. 能写:拷一个文件进去。
  3. 能读:把它拷回来,打开确认内容完整。
  4. 权限对:换一个没授权的账号试,应该被拒绝。能进去说明权限配错了。
  5. 重启后还在:在 PVE 里把 OMV 虚拟机 Shutdown 再 Start,确认共享自动恢复。这一步能发现「文件系统没设开机挂载」这类问题。
  6. PVE 能看到 IP:虚拟机 → Summary 里有 IP,说明 guest agent 正常。

六项都过,这台 NAS 才算可用。

备份与维护 ​

方案 B 的数据不在 PVE 备份里

vzdump 只备份 PVE 存储上的虚拟磁盘。直通进去的物理盘,PVE 完全看不到,也不会备份。

用方案 B 时,数据的备份必须由 OMV 自己负责(服务 → rsync 定时同步到另一台机器),或者用别的方案。不要以为「PVE 备份了这台虚拟机」就等于数据安全了。

方案 A 下 vzdump 能备到数据,但数据盘几百 GB 时全量备份会很慢很占空间。更实际的组合是:

备什么怎么备频率
OMV 系统盘(配置、用户、共享定义)PVE 的 vzdump每天
数据OMV 的 rsync 任务同步到另一台机器按数据重要性

两种备份都要做恢复演练

OMV 的配置重建一次要花不少时间(用户、权限、共享、服务设置)。系统盘备份能救这个。数据备份救的是另一件事。

两者都要验证过能恢复,见恢复演练。

更新 ​

OMV 在 系统 → 更新管理 里做更新,底层就是 Debian 的 apt。

大版本升级前先打快照

OMV 的大版本升级(跟随 Debian)是发行版升级,可能出问题。方案 A 下这件事很轻松:升级前在 PVE 里打个快照,出问题一键回滚。

这也是「NAS 跑在虚拟机里」相对物理机的一个真实优势。方案 B 有直通设备时不能打快照,就享受不到这个好处了。

关于 omv-extras ​

omv-extras 是社区维护的第三方插件仓库,Docker、Compose、ZFS 等能力都来自它。

它不是官方组件

安装方式是执行一个远程脚本。装之前确认你是从 omv-extras 的官方页面拿到的地址,不要照抄论坛帖子或教程里的链接——这类地址一旦被替换,你交出去的是 root 权限。

本站不提供可直接复制的安装命令,请以 omv-extras 官方说明为准。装之前先打快照。

常见问题 ​

装完之后网页打不开。 在 PVE 的 Console 里用 root 登录,跑 OMV 自带的修复工具:

sh
# 在 OMV 虚拟机内部执行
omv-firstaid

它提供了配置网络接口、重置 Web 界面密码等选项,是 OMV 失联时的标准救援手段。

这是虚拟机相对物理 NAS 的优势

在 PVE 里,就算 OMV 的网络配置改崩了,你依然能从 Web UI 的 Console 进去跑 omv-firstaid。物理机的话就得接显示器了。

改了静态 IP 之后失联。 同上,omv-firstaid 里选配置网络接口。

共享建好了但电脑上看不到。 按顺序查:顶部的应用变更点了吗 → SMB 服务启用了吗 → 共享文件夹的 ACL 给对应用户授权了吗。第一条占绝大多数。

存储 → 磁盘 里看不到数据盘。 方案 A:确认 PVE 里加的磁盘 Bus 是 SCSI,且虚拟机完整重启过(Stop 再 Start,不是客户机内部 reboot)。 方案 B:在宿主机 qm config <vmid> | grep scsi 确认映射写进去了。

磁盘能看到,但建不了文件系统。 盘上有旧分区表,先在 存储 → 磁盘 里擦除。

OMV 里看不到 SMART。 方案 A 下这是正常的——它面对的是虚拟磁盘。物理盘健康请在 PVE 宿主机上监控。

想跑 Docker 应用。 通过 omv-extras 装 Docker 和 Compose 插件。但要想清楚:如果你的主要目的是跑容器,在 PVE 上单独开一台 Docker 虚拟机通常比堆在 NAS 里更好管——出问题时互不牵连。见 Linux 客户机。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。