NAS折腾路:从黑群晖到PVE

先说需求,我是计划将NAS放在家里,长期外部访问使用,所以需要的是稳定和容错。自从我一个月前开始折腾NAS,经历各种波折,踩了一些坑,过程中我也摸索出了一些东西,希望这篇记录多少有些参考价值。

最终我的方案是给NAS刷了pve系统,在pve中创建了两个虚拟机:DSM7.2(黑群晖)和Windows11,通过rustdesk和远程桌面访问Windows,直接在局域网内操作黑群晖,还能调整运行在路由器上的lucky插件配置。

下面就是部署过程:

物理机:安装黑群晖

教训:

  • 保留可用的引导盘
  • 定期备份系统配置
  • 备份组件配置

起初我的NAS是物理机跑黑群晖,使用的型号是DS918+,然后想着换SA6400体验,但是没有保留原始引导,直接覆盖制作了新的引导文件,导致系统安装失败后也无法恢复。

我使用的RR制作黑群晖引导盘,群晖系统会在每一个磁盘上都安装DiskStation系统,在读到的第一个磁盘上的系统分区安装DSM,根据主板的SATA序号,判断DSM安装在哪个硬盘上。

迁移黑群晖

下面是我遇到的问题,和解决问题参考的资料,可以参考:

  1. 从DS918+ 迁移至 SA6400,提示磁盘空间不足

https://xtremedev.top/随手记/224.html
迁移系统大概率失败,因为sa6400的系统分区要求容量比918+大
DSM6.2时代群晖的系统分区只有2.4GB,而DSM7.2有8GB

https://rrorg.cn/archives/issues
安装时系统磁盘空间不足
可以浏览器输入 http://:5000/webman/clean_system_disk.cgi 尝试

  1. 安装DSM系统时:
  • 报错:无法上传DSM安装文件。请检查网络连接并再试一次
  • 进度40%、55%、56%、57%,提示文件毁损

可以尝试断网,直接通过网线直连操作
通过 arp -a命令查询NAS分配的IP地址

查询资料发现,dsm6时代使用arpl需要修改U盘的vid\pid,但是RR时代就不需要了

比较下载的pat文件的哈希值:
Windows的cmd

certutil -hashfile "DSM_DS918+_69057.pat" MD5

在RR的编译引导时上传本机下载好的pat
https://www.synology.cn/zh-cn/support/download/SA6400?version=7.2#system
直接访问RR的IP地址(80端口)
在下载的pat 文件上传到/tmp/pats/路径下
编译引导时选择pat即可

如果上面步骤都试过了还不行,基本就是DSM系统盘的硬盘的系统分区出问题了
只能使用PE系统用DG格式化DSM系统盘的系统分区
群晖系统分区其是ext4,披着linux raid的皮
格式化后重新走流程,即可成功安装系统,唯一缺点就是系统配置丢失

恢复配置

群晖系统基本由系统设置、套件、docker数据、硬盘内容组成,在未备份的情况下,只格式化系统分区,只会丢失系统设置,其余数据都能恢复,比如以下三种情况:

  • 格式化DSM系统分区
  • 重装系统
  • 更换DSM系统盘

首先系统设置其实很容易重新配置,这个丢失无所谓;硬盘内容只是格式化系统分区也是不会丢失的;剩下的是套件和docker内容,我们需要先在存储管理器中将其他硬盘修复并分配存储池序号,然后打开群晖的ssh端口,然后用shell连进去:

一般套件:

  • 通过cd到每个磁盘的 @appdata 路径,然后ls一下,就能知道存在哪些套件
  • 重新安装套件,将套件安装路径选择为原始位置即可恢复配置,假如之前也是volume1就是选择volume1,请根据实际情况判断

Container manager(docker):

  • 如果DSM盘的盘位没有发生改变,如之前是volume1现在还是volume1,则按照一般套件的步骤安装套件即可。
  • 若改变了盘位,如之前的系统盘现在分配到了volume4,则需要将docker数据拷贝到如今的系统盘(如volume1)中
  • 先按照一般套件的步骤安装套件,完成后将其停止,再用ssh将原DSM盘的 @docker 文件夹 拷贝到 现DSM盘根路径下,用&将拷贝任务放后台,耐心等待任务完成,拷贝完成后启动套件即可
  • 参考命令

拷贝:

sudo cp -r /volume4/@docker /volume1/ &

查询后台任务:

jobs

查询任务进程号:

ps aux | grep 'cp -r /volume4/@docker /volume1/'

查询进程信息,数字就是进程的pid号:

ps -p 13568 -o pid,etime,cmd

网络问题

一个月前NAS出现网速慢的问题,重做系统后仍然奇慢无比。
怀疑是网络问题,结果使用web浏览器(BrowserBox)访问https://test.ustc.edu.cn/测速网,速度在770Mbps左右

尝试在pc上用qb下载同一个种子,速度起飞。
重新回到NAS上的qb面板,发现打开了备用速度限制
我就是个煞笔

注意qBittorrent下方的小火焰右边的速度表,绿色箭头默认是上下行速度无限制,红色箭头默认只有10kb的限速。

虚拟机:迁移黑群晖

物理机运行黑群晖,我想访问服务就必须配置外部访问,将对应端口穿透或映射,这样既麻烦又有安全隐患;而且如果折腾出岔子了,我远程也无法再解决。如果都运行在pve中,那只需要远程访问windows即可,直接通过局域网中访问NAS和管理路由器,健壮性拉满。

折腾pve,也就是传说中的AIO(all in one),查阅资料,很多教程都会在开始部署ikuai和openWRT,作为限流和旁路由。不过我只需要windows和黑群晖,所以直接使用路由器的网关即可。

使用pve安装黑群晖,Linux系统可直接访问群晖制作的硬盘,实际使用体验与物理机无异,且之后如果转白群晖也没有任何迁移成本。

理论存在,实践开始。

安装pve系统

参考教程:

直通

pve开启硬件直通

似乎不需要额外操作

pve磁盘直通

磁盘控制器直通

查看硬盘所属硬盘控制器

ls -la /sys/dev/block/|grep -v loop |grep -v dm
lrwxrwxrwx 1 root root 0 Jan  1 13:30 8:0 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Jan  1 13:30 8:1 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda1
lrwxrwxrwx 1 root root 0 Jan  1 13:30 8:2 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda2
lrwxrwxrwx 1 root root 0 Jan  1 13:30 8:3 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda3

如上面所示,pci0000:00是Pci桥,0000:00:17.0就是硬盘控制器,后面是硬盘的盘号

创建虚拟机

  • 虚拟化建议配置 | RR Org
  • 参考教程调整虚拟机配置
  • 注意不需要创建EFI磁盘
  • 通过调整启动顺序,将sata磁盘作为引导盘
  • 通过添加PCI设备(SATA控制器),实现硬盘物理直通

新建引导

如果没有做过RR引导盘,按照下面步骤来

  • 上传ISO
  • 创建ISO路径到local-lvm,注意100是虚拟机的序号,rr.img的路径是上传后在终端返回的。根据实际情况修改。
qm importdisk 100 /var/lib/vz/template/iso/rr.img local-lvm

拷贝引导

如果像我一样之前是物理机使用黑群晖的,那么已经制作好了引导盘,此时我们只需要将引导拷贝到pve中即可。
选择DSM虚拟机,在硬件中:

  • 添加SATA硬盘(sata0),分配4GB
  • 插入U盘
  • 添加PCI设备:U盘对应的控制器,比如3.2Gen,我的是0000:00:14.0
  • 在选型里调整启动顺序,将PCI设备勾选并设置为第一个
  • 进入RR的菜单界面,在高级设置中,选择拷贝引导到其他盘,选择sata0
  • 等待完成
  • 可以直接停止虚拟机,然后调整启动顺序为sata0第一个
  • 成功后拔除U盘

安装Windows11

远程控制

虚拟核显感觉会搞崩pve,还是算了,下面是一些教程,可以参考:

pve监控面板

结尾

差不多了,不折腾就基本这样了,就算折腾也没啥问题,只要路由器和pve还活着,大概率能救回来。

96 个赞

呕心沥血(一路踩坑)之作 属于是 :rofl:

2 个赞

mark,估计会用到。

2 个赞

mark,感谢分享

2 个赞

我一开始也是aio,最后折腾了4,5年,现在是nas只安装omv,win和op单独装在一个工控机里

1 个赞

我相反,从 PVE 换成了黑裙,PVE不成熟,总是有这种那种错误,触不及防。

1 个赞

现在8.2了,基本上没啥问题

2 个赞

内网穿透

自从改桥接拿到ipv6后,经历了运营商ban IP、NAS重装、网络异常等情况,我感觉现在还没到全面拥抱ipv6的时候,所以我在路由器把ipv6关掉了。

但是确实有外部访问的需求,而且对于上行有一定要求,起码能跑满家宽的50Mbps。

目前我了解到的方案是cloudflare tunnel和STUN穿透,但是都有缺点:

  • cloudflare tunnel:域名访问,但是网络不稳定,速度看运气,运气好也慢
  • STUN穿透:域名跳转IP+端口,速度快,但是使用体验不优雅,有些客户端不支持域名跳转绑定服务,IP不固定每次都需要重新登录。

套件选择:

  • Container Manager:(若DSM为同一盘则直接使用,否则需要拷贝原@docker数据至当前DSM盘)
  • qBittorrent:(直接使用)
  • voceChat:(直接使用)
  • Alist网盘:(可备份恢复)
  • RRmanager (需要魔法上网)
  • cloudflare tunnel

Docker:

  • Gitea/gitea/gitea
  • Mp/jxxghp/moviepilot
  • Navidrome/deluan/navidrome
  • Emby/amilys/embyserver
  • Jelleyfin/nyanmisaka/jellyfin
1 个赞

ALL IN BOOM

OP :arrow_right: OMV :arrow_right: 黑裙 :arrow_right: EXSI :arrow_right: PVE :arrow_right: WinServer :rofl: :rofl:

2 个赞

快了!

pve下只有ikuai和op,其他都是每个系统一台实体 ,嘿嘿…

3 个赞

不去碰它 就这么也不错,要是手痒的,你肯定会把PVE换回dsm。哈哈

1 个赞

我这个随便切换,没有一点问题,把启动盘换成U盘它就是物理机DSM

折腾了一段时间,实在是没有精力折腾了已经洗白上岸了

1 个赞

最近装的是8.2.1,也挺稳

1 个赞

感谢分享

2 个赞

没区别的

从unraid到黑群晖

2 个赞

启动盘是u盘,但是系统盘换了的话需要重新部署吧