先说需求,我是计划将NAS放在家里,长期外部访问使用,所以需要的是稳定和容错。自从我一个月前开始折腾NAS,经历各种波折,踩了一些坑,过程中我也摸索出了一些东西,希望这篇记录多少有些参考价值。
最终我的方案是给NAS刷了pve系统,在pve中创建了两个虚拟机:DSM7.2(黑群晖)和Windows11,通过rustdesk和远程桌面访问Windows,直接在局域网内操作黑群晖,还能调整运行在路由器上的lucky插件配置。
下面就是部署过程:
物理机:安装黑群晖
教训:
- 保留可用的引导盘
- 定期备份系统配置
- 备份组件配置
起初我的NAS是物理机跑黑群晖,使用的型号是DS918+,然后想着换SA6400体验,但是没有保留原始引导,直接覆盖制作了新的引导文件,导致系统安装失败后也无法恢复。
我使用的RR制作黑群晖引导盘,群晖系统会在每一个磁盘上都安装DiskStation系统,在读到的第一个磁盘上的系统分区安装DSM,根据主板的SATA序号,判断DSM安装在哪个硬盘上。
迁移黑群晖
下面是我遇到的问题,和解决问题参考的资料,可以参考:
- 从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 尝试
- 安装DSM系统时:
- 报错:无法上传DSM安装文件。请检查网络连接并再试一次
- 进度40%、55%、56%、57%,提示文件毁损
可以尝试断网,直接通过网线直连操作
通过arp -a
命令查询NAS分配的IP地址
查询资料发现,dsm6时代使用arpl需要修改U盘的vid\pid,但是RR时代就不需要了
比较下载的pat文件的哈希值:
Windows的cmdcertutil -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系统
参考教程:
- pve8.1安装黑群晖 | pve硬盘直通 | 群晖使用nvme做存储空间 | pve安装 | 群晖nas_哔哩哔哩_bilibili
- 准备ISO安装盘:将pve8.1镜像烧录到U盘中
- 进入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安装iKuai、OpenWRT、Windows11、Emby、黑群晖等保姆级教程!Windows、群晖、Emby核显HDMI /SR-IOV直通 - BoZai - 博客(Blog)
- https://www.youtube.com/watch?v=ZItHECRvtjQ
参考教程,很快就能搞定
远程控制
虚拟核显感觉会搞崩pve,还是算了,下面是一些教程,可以参考:
- https://www.bilibili.com/read/cv33762683/
- intel 11121314代pve开sriov玩核显vgpu直通win10 等系统开虚拟显示器教程 直通ubuntu - 哔哩哔哩
- 最新保姆级PVE8安装教程!虚拟机PCIE设备及SR-IOV核显直通,最多分配7个虚拟化单独核显!最强虚拟机! – V2RaySSR综合网
- https://www.bilibili.com/read/cv34366188/
- https://www.cloudstaymoon.com/2024/04/10/all-in-one-1
使用rustdesk和远程桌面可以直接访问,sunshine+moonlight需要一个虚拟显示器,且修复显卡驱动,现在未识别是Microsoft Basic Render Driver
pve监控面板
结尾
差不多了,不折腾就基本这样了,就算折腾也没啥问题,只要路由器和pve还活着,大概率能救回来。