黑群晖DSM-7.X开启NVME缓存的方法

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 复制到一个可以供其他电脑下载的共享文件夹中,比如我将其复制到 Download 这个共享文件夹(具体以实际路径为准,请自行更改),输入命令:

cp /lib64/libsynonvme.so.1 /volume1/Download/libsynonvme.so.1

 

6、在电脑访问群晖,将在Download文件中的 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 文件,上传到群晖的 Download 共享文件夹下(以第5步使用的文件夹为准),覆盖原文件。

 

9、返回 ssh 工具,以root账户登录群晖;

 

10、删除群晖系统原文件:

rm /lib64/libsynonvme.so.1

11、把修改好的文件复制到系统(把 /volume1/Download 替换为第5步实际使用的路径):

cp /volume1/Download/libsynonvme.so.1 /lib64/libsynonvme.so.1

12、修改文件权限:

chmod 644 /lib64/libsynonvme.so.1

13、重启群晖,再打开存储管理器,就发现正常识别NVME并可以按照提示进行缓存的设置。

 

 

 


上述内容原文地址:http://www.gebi1.com/thread-299964-1-1.html

 


上面操作,博主在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、保存退出,重启群晖生效。

点赞
  1. liangddyy说道:
    Google Chrome Windows 10
    3615xs,DMS7.0.1-42218,PCIe转接卡接的m2 ssd,windows下正常使用,但是群晖 ls /dev/nvme* 啥也看不到~有没有人有解决办法的?
    1. 博主说道:
      Google Chrome Windows 10
      换成3617-7.X试一下看看
      1. liangddyy说道:
        Google Chrome Windows 10
        嗯嗯,明天试下后来反馈。
  2. fairy说道:
    Google Chrome Windows 10
    请教博主大神 我原来是ESXI虚拟黑群6.2 直通了sata控制器 由于esxi上的存储是是用的nvme ssd 所以以前一直是建两个虚拟磁盘进黑群当ssd缓存用 升级7.0后 现在存储池没啥问题 但是这个nvme缓存就翻的很厉害了 以前虚拟磁盘是用vmware scsi控制器的 这个控制器在dsm7不识别硬盘了 网上搜了一圈也没有pvscsi dsm7的ko驱动 sata控制器带虚拟磁盘的话 全部显示hdd 无法做缓存 nvme控制器 如果用一个nvme控制器带两块虚拟磁盘 无论如何都只能识别到一块做缓存 用udevadm看 两个盘的pci id是一样的 如果开两个nvme控制器 各挂一块盘 直接引导卡死 无法进系统 但是第二个nvme控制器不挂盘 第一个nvme控制器挂盘 可以进系统 识别到一块盘 不知道这种时候还有没有解 让我能用上ssd缓存..
    1. 博主说道:
      Google Chrome Windows 10
      想要用NVME硬盘做DSM7.X的缓存盘,必须要直通NVME控制器给群晖,然后按照本文内容修改系统文件才可以用。
      1. fairy说道:
        Google Chrome Windows 10
        在github找到了vmpvscsi.ko的驱动 insmod加入开机脚本后 暂时可以用scsi控制器挂缓存了
  3. 花式吹瓶少年说道:
    Google Chrome Android 12
    大佬,如果有3个nvme需要怎么设置呢?
    1. 博主说道:
      Google Chrome Windows 10
      918默认只支持2个NVME硬盘哦,如果是3615/3617/3622这些,可以按照第二种方法修改ID,看看能不能识别三个硬盘。
      1. 花式吹瓶少年说道:
        Google Chrome Android 12
        晕,我是918系统,投机取巧在winhex中加入第三个nvme的硬盘id,结果系统进不去了,显示2、8、9、10硬盘有问题,sata端口被占用,2是sata固态,8、9、10是nvme,群晖内还有5块机械,现在要如何恢复系统呢
        1. 博主说道:
          Google Chrome Windows 10
          DSM7要求SATA1口必须接硬盘,你看一下主板SATA1口。

发表评论