一、通用的开启方法
1、群晖在控制面板-终端机与SMNP,启用SSH功能;
2、在电脑的SSH工具,以root登录群晖,输入命令查看nvme的名字:
ls /dev/nvme*
如果只有一个nvme硬盘并且硬盘为空,一般会显示/dev/nvme0n1,如果有两个空的nvme硬盘则显示/dev/nvme0n1和/dev/nvme1n1,只需要记住这些名字就行了;
如果nvme有分区了,还会显示如/dev/nvme0n1、/dev/nvme0n1p1、/dev/nvme0n1p2等,这些分区名字不用理会。
3、输入命令,查看nvme硬盘的ID:
udevadm info /dev/nvme0n1
我们要记住自己的nvme所在的位置,比如我的就是0000:00:1d.0,这个数字一定要记下来;
3、之所以NVME硬盘黑群晖的空间管理员中无法识别,是因为群晖提前设定了各个机型的NVME所在的PCI位置,这些信息保存在 /lib64/libsynonvme.so.1 这个文件中,而我们需要将这个文件中,关于DS918+机型的NVME所在的PCI位置改为自己机器实际所在的位置就能正确识别了;
4、先备份一下原文件,输入命令:
cp /lib64/libsynonvme.so.1 /lib64/libsynonvme.so.1.bak
5、把原文件 libsynonvme.so.1 复制到一个可以供其他电脑下载的共享文件夹中,比如我将其复制到 docker 这个共享文件夹(具体以实际路径为准,请自行更改),输入命令:
cp /lib64/libsynonvme.so.1 /volume1/docker/libsynonvme.so.1
6、在电脑访问群晖,将在docker文件中的 libsynonvme.so.1 下载到本地电脑;
7、在电脑上使用 winhex 软件打开刚才下载的 libsynonvme.so.1 文件,按ctrl+F键输入DS918+搜索,在右侧找到如下图字段的原数据为0000:00:13.0和0000:00:13.1,根据第一步查到的本机NVME所在的PCI位置,修改为0000:00:1d.0,顺便把另外一个nvme插槽也该了即0000:00:1d.1,修改后保存;
8、将修改后的 libsynonvme.so.1 文件,上传到群晖的docker 共享文件夹下(以第5步使用的文件夹为准),覆盖原文件。
9、返回 ssh 工具,以root账户登录群晖;
10、把修改好的文件复制到系统(把 /volume1/docker 替换为第5步实际使用的路径):
cp -f /volume1/docker/libsynonvme.so.1 /lib64/libsynonvme.so.1
11、修改文件权限:
chmod 644 /lib64/libsynonvme.so.1
12、重启群晖,再打开存储管理器,就发现正常识别NVME并可以按照提示进行缓存的设置。
上面操作,博主在DS918-7.01-42218版本下亲测,是OK的。如果群晖系统型号不是DS918+,而是别的系统型号(比如DS3617xs/DS3622xs+等,除了DS3615xs以外)的DSM7.X版本,那么就不能用上面的方法,需要按照以下流程操作:
1、群晖在控制面板-终端机与SMNP,启用SSH功能;
2、在电脑的SSH工具,以root登录群晖,输入命令查看nvme的名字:
ls /dev/nvme*
如果只有一个nvme硬盘并且硬盘为空,一般会显示/dev/nvme0n1,如果有两个空的nvme硬盘则显示/dev/nvme0n1和/dev/nvme1n1,只需要记住这些名字就行了;
如果nvme有分区了,还会显示如/dev/nvme0n1、/dev/nvme0n1p1、/dev/nvme0n1p2等,这些分区名字不用理会。
3、输入命令,查看nvme硬盘的ID:
udevadm info /dev/nvme0n1
找到这个nvme硬盘的ID,比如我的就是0000:00:1d.0,这个数字一定要记下来;
4、输入命令,修改文件:
vi /etc.defaults/extensionPorts
使文件里面的ID与实际nvme硬盘的相匹配,比如我这个要改成(以你实际的ID为准):
[PCI]
pci1="0000:00:1d.0"
如果有两个nvme硬盘,则改成(以你实际的ID为准):
[PCI]
pci1="0000:00:1d.0"
pci2="0000:00:1d.1"
5、保存退出,重启群晖生效。
二、6.x版本一键添加NVME缓存方法
curl -SLO https://wp.gxnas.com/wp-content/uploads/2020/02/libsynonvme.so.1 && mv -f /root/libsynonvme.so.1 /usr/lib64/ && chmod 755 /usr/lib64/libsynonvme.so.1 && rm /usr/local/etc/rc.d/libNVMEpatch.sh
三、NVME存储池添加
1、一键添加硬盘数据库
curl https://dsm.ainas.cc:88/Script/Synology_HDD_db/syno_hdd_db.sh | bash -s -- -nr
2、一键添加nvme存储
wget https://dsm.ainas.cc:88/Script/Synology_M2_volume/syno_create_m2_volume.sh && chmod +x syno_create_m2_volume.sh &&./syno_create_m2_volume.sh