使用Docker体验群晖DSM系统

本文最后更新于 240 天前, 如有失效请评论区留言.

virtual-dsm 是一个开源项目,旨在通过容器模拟 Synology 群晖 NAS 的 DiskStation Manager (DSM) 系统环境。该项目由开源社区开发者维护,并并非Synology 官方支持的产品。

开源项目地址:https://github.com/vdsm/virtual-dsm

特性

  • 多硬盘支持
  • KVM加速
  • 支持升级

部署

docker compose 方式

version: "3"
services:
  dsm:
    container_name: dsm
    image: vdsm/virtual-dsm
    environment:
      DISK_SIZE: "16G"
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 5000:5000
    volumes:
      - /var/dsm:/storage
    restart: on-failure
    stop_grace_period: 2m

docker cli方式

docker run -it --rm --name dsm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 vdsm/virtual-dsm

常见问题

主要针对compose方式

与标准DSM相比有什么区别

只有两个细微的区别:

  • Virtual Machine Manager 软件包不可用(虚拟机服务)
  • Surveillance Station 将不包含任何免费许可证(没啥印象😂)

如何安装特定版本的DSM

默认情况下,将安装版本 7.2,但如果您更喜欢旧版本,则可以将其下载 URL 添加到docker compose文件中,如下所示:

environment:
  URL: "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat"

使用这种方法,甚至可以在保持所有文件数据完好无损的同时在不同版本之间切换

部署完成如何访问

启动容器并使用 Web 浏览器连接到端口5000
等到 DSM 准备就绪,创建用户名和密码,按照引导流程走就可以了啊。

如何更改存储位置

volumes:
  - /var/dsm:/storage

将示例路径/var/dsm替换为所需的存储文件夹即可。

如何修改磁盘大小

如果想要修改默认的磁盘大小(默认:16G),需要修改环境变量DISK_SIZE

environment:
   DISK_SIZE: "100G"

这也可用于将现有磁盘的大小调整为更大的容量,而不会丢失任何数据

如何创建自动增长的磁盘

默认情况下,磁盘的全部容量是预先预留的,若要创建仅分配实际使用空间的可增长磁盘,请添加以下环境变量:

environment:
  DISK_FMT: "qcow2"

这可能会降低磁盘的写入性能,但是经过我的测试没有特别大影响,我觉得还是推荐这种,用多少分配多少,当然了如果你的硬盘足够大,推荐预留方式,写死磁盘大小

如何添加多个磁盘

environment:
   DISK2_SIZE: "32G"
   DISK3_SIZE: "64G"
volumes:
  - /home/example:/storage2
  - /mnt/data/example:/storage3

如何直通硬盘

可以通过以下方式直通硬盘

environment:
  DEVICE: "/dev/sda"
  DEVICE2: "/dev/sdb"
devices:
  - /dev/disk/by-uuid/12345-12345-12345-12345-12345:/dev/disk2
  - /dev/disk/by-uuid/45678-45678-45678-45678-45678:/dev/disk3

确保通过其 UUID绑定磁盘,以防止在驱动器号发生更改时绑定错误的磁盘。lsblk -o name,uuid/dev/sdc

请注意,设备需要完全为空(没有任何分区表),否则 DSM 并不总是将其格式化为卷。

请勿将此功能用于共享主机文件,当 DSM 创建宗卷时,它们将 全部丢失,恕不另行通知. 有风险,请谨慎操作

如何增加CPU和RAM的大小

默认情况下,单个 CPU 内核和 1 GB RAM 分配给容器

如果需要增加此值,请添加以下环境变量

environment:
  RAM_SIZE: "4G"
  CPU_CORES: "4"

如何直通显卡

environment:
  GPU: "Y"
devices:
  - /dev/dri

这可用于在 Synology Photos 中启用面部识别功能

如何验证我的系统是否支持 KVM

要验证您的系统是否支持 KVM,请运行以下命令:

apt install cpu-checker
kvm-ok

执行结果

root@nat7:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

如果收到指示无法使用 KVM 加速的错误,请检查 BIOS 中的虚拟化设置

这个项目合法吗?

此项目仅包含开源代码,不分发任何受版权保护的材料。它也没有试图规避任何版权保护措施。因此,根据所有适用法律,该项目将被视为合法

但是,安装 Synology 的 Virtual DSM 时,您必须接受其最终用户许可协议,该协议不允许在非 Synology 硬件上安装。因此,只能在官方 Synology NAS 上运行此容器,因为任何其他用途都将违反其条款和条件。

应用场景

大盘鸡系统,可以试一试

Sponsor

Like this article? $1 reward

Comments