IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用Docker体验群晖DSM系统

    ysicing (i@ysicing.me)发表于 2024-05-04 02:15:34
    love 0

    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 上运行此容器,因为任何其他用途都将违反其条款和条件。

    应用场景

    大盘鸡系统,可以试一试



沪ICP备19023445号-2号
友情链接