坑边闲话:群晖的 DSM(DiskStation Manager) 系统是家用 NAS 的典范,有着易用的人机交互界面和丰富的系统套件,而这些特性是开源方案所不具备的。然而,DSM 只能运行在群晖的硬件上。

1. 缘起 DSM·

笔者早在 2017 年 2 月也即本科二年级的时候,曾对群晖 NAS 产生过一丢丢的兴趣,主要原因是网上很多人都说 NAS 很有用。本科时候总是满脸热忱,对新奇的东西充满了研究的兴趣。当时用了一台基于 Intel Core i3 550(第一代酷睿)的 PC 机打造了黑群晖系统。那时候新版系统还是 5.x,采用 U 盘引导。因为人在数学系,接触计算机设备的时间不多,所以这台设备很快就被搁置,年底已经彻底变为了 Linux 学习机。

不过当时的 DSM 给我留下了深刻的印象。

再到后来,我拥有了自己的 NAS,而这时已经是 2021 年 4 月,距离我第一次用 DSM 已过去了四年时光。

图 1. 我与 Synology 的初相识,当时太过激动,群晖都输入成了“群辉”。

可惜后来我用的并非白群晖,而是基于 VMware ESXi 的虚拟化 TrueNAS SCALE.

TrueNAS SCALE 和 ZFS 的教程我已经写过很多很多,该系统比较稳定且克制,功能上没有群晖那么容易上手,某些方面也不如群晖人性化。虽然绝大多数问题都可以绕过或用开源方案替代,但是 DSM 基于 Web 的 File Station 却一直没有合适的开源替代品

后来我甚至安装了一个虚拟化的 DSM,然后在 DSM 里挂载 TrueNAS 的 SMB share 然后做 Web 管理。然而,虚拟化一个专门用来做管理的系统太过奢侈,也并不敏捷优雅。直到最近绿联 NAS 翻车,我才从某个 B 站相关视频里了解到以容器运行 DSM 的方案。

2. Virtual DSM·

2.1 Virtual DSM 背景·

或许是为了方便用户做测试,群晖允许正版用户在 Virtual Machine Manager 上运行 Virtual DSM,以享受标准 DiskStation Manager 中提供的所有功能(包括文件服务和附加应用程序)。Virtual Machine Manager 可实现 High Availability、极快快照和保护计划,有助于增强系统运行时间和管理灵活性。

后来有人将 Virtual DSM 移植到容器环境里,就有了今天的故事。

2.2 使用 Docker Compose 部署 DSM·

直接使用下列配置即可启动并运行 DSM. 值得注意的是,直接访问宿主机的 6001 端口可能有安全问题,毕竟现在脚本小子的扫描工具越来越智能。这里建议通过运行在 reverse_proxy 的 Nginx 做反向代理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Author: Peng Liu
# Email: [email protected]
# Created: 2024. Jun. 08
# Updated: 2024. Jun. 08
# Official Release: https://github.com/vdsm/virtual-dsm/

services:
dsm:
container_name: dsm
image: vdsm/virtual-dsm:latest
environment:
DISK_SIZE: "16G"
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 6001:5000
volumes:
- /mnt/DapuStor_R5100_RAID-Z1/app_data/DSM/dsm:/storage
restart: on-failure
stop_grace_period: 1m
networks:
- reverse_proxy

networks:
reverse_proxy:
name: reverse_proxy
external: true

注意

  • DISK_SIZE: "16G" 足够大了,毕竟我只需要使用系统的 Web 界面,不以该系统做存储;
  • 如果不使用 6001 端口而只用 Nginx,则可以停止暴露该端口;
  • 唯一的 volumes 对应的即是那块 16G 硬盘,容量足矣使用。因为 Virtual DSM 属于官方支持,所以无需洗白,也不太能使用价值较高的套件,如 Active Backup Business.

图 2. Virtual DSM 系统信息。

图 3. 通过 CIFS 共享挂载,可让 DSM 通过内网挂载 TrueNAS 的共享文件夹,从而实现在 DSM Web 界面里管理 TrueNAS.

总结·

该方案特别适合不需要用群晖做存储,但是需要在群晖里使用某些图形化应用的用户。虽然可以通过直通硬盘的方式进行存储创建,但是笔者绝不推荐使用 Virtual DSM 做主要的存储管理。