黑群晖7.x系统开启NVME缓存及存储的方法

前言

关于NVME硬盘,通过以下命令可以查看 nvme 的 PCI 路径,一般会有以下2种结果

ls -ld /sys/block/nvme*

pci0000 和 nvme 之间有多个层,这种适用于所有 DT 的型号 和 DS918+ RS1619xs+ DS419+ DS1019+ DS719+ DS1621xs+ 型号.
每个控制只可识别一个磁盘, 即 nvme0 下 只识别 nvme0n1
DT 型号至多识别 15 个 nvme 磁盘,其他几个型号至多识别 2 个 nvme 磁盘
root@test:~# ls -ld /sys/block/nvme*
lrwxrwxrwx 1 root root 0 May 14 20:37 /sys/block/nvme0n1 -> ../devices/pci0000:00/0000:00:16.0/0000:0b:00.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 May 14 20:37 /sys/block/nvme1n1 -> ../devices/pci0000:00/0000:00:17.0/0000:13:00.0/nvme/nvme1/nvme1n1
pci0000 和 nvme 之间只有一层,这种只适用于所有 DT 的型号.
每个控制只可识别一个磁盘, 即 nvme0 下 只识别 nvme0n1
DT 型号至多识别 15 个 nvme 磁盘
root@test:~# ls -ld /sys/block/nvme*
lrwxrwxrwx 1 root root 0 May 14 07:14 /sys/block/nvme0n1 -> ../devices/pci0000:00/0000:00:03.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 May 14 07:14 /sys/block/nvme1n1 -> ../devices/pci0000:00/0000:00:04.0/nvme/nvme1/nvme1n1
如果 不是 pci0000,则所有型号均不可见,
root@test:~# ls -ld /sys/block/nvme*
lrwxrwxrwx 1 root root 0 May 14 07:14 /sys/block/nvme0n1 -> ../devices/pci0001:00/0000:00:03.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 May 14 07:14 /sys/block/nvme1n1 -> ../devices/pci0001:00/0000:00:04.0/nvme/nvme1/nvme1n1

一、NVME缓存【DS918+/DS1029+】

1、在终端执行以下命令,不知道怎么进入的参照以下教程教程地址

ls /dev/nvme*

如果只有一个nvme硬盘并且硬盘为空,一般会显示/dev/nvme0n1,如果有两个空的nvme硬盘则显示/dev/nvme0n1和/dev/nvme1n1,只需要记住这些名字就行了;

如果nvme有分区了,还会显示如/dev/nvme0n1、/dev/nvme0n1p1、/dev/nvme0n1p2等,这些分区名字不用理会。

2、输入命令,查看nvme硬盘的ID:

udevadm info /dev/nvme0n1
黑群晖DSM-7.X开启NVME缓存的方法

我们要记住自己的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,修改后保存;

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

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并可以按照提示进行缓存的设置。

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

二、NVME缓存【DS3617/DS3622xs+】

1.在终端执行以下两条命令,不知道怎么进入的参照以下教程教程地址

ls /dev/nvme*

如果只有一个nvme硬盘并且硬盘为空,一般会显示/dev/nvme0n1,如果有两个空的nvme硬盘则显示/dev/nvme0n1和/dev/nvme1n1,只需要记住这些名字就行了;

如果nvme有分区了,还会显示如/dev/nvme0n1、/dev/nvme0n1p1、/dev/nvme0n1p2等,这些分区名字不用理会。

2、输入命令,查看nvme硬盘的ID:

udevadm info /dev/nvme0n1
黑群晖DSM-7.X开启NVME缓存的方法

找到这个nvme硬盘的ID,比如我的就是0000:00:1d.0,这个数字一定要记下来;

3、输入命令,修改文件:

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"

4、保存退出,重启群晖生效。

三、NVME存储通用教程

1、在终端执行以下命令,不知道怎么进入的参照以下教程教程地址

ls /dev/nvme*

输入之后会看到/dev/nvme0n1 或 /dev/nvme1n1

2、输入

fdisk -l /dev/nvme0n1

会看到类似下面的信息,如果是2号插槽就用/dev/nvme1n1

Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

3、创建分区

synopartition --part /dev/nvme0n1 12

4、输入Y,然后回车确认

        Device   Sectors (Version8: SupportRaid)
 /dev/nvme0n11   4980480 (2431 MB)
 /dev/nvme0n12   4194304 (2048 MB)
Reserved size:    260352 ( 127 MB)
Primary data partition will be created.

WARNING: This action will erase all data on '/dev/nvme0n1' and repart it, are you sure to continue? [y/N]y
Cleaning all partitions...
Creating sys partitions...
Creating primary data partition...
Please remember to mdadm and mkfs new partitions.

5、再次输入

fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xef61a3e4

Device         Boot   Start       End   Sectors  Size Id Type
/dev/nvme0n1p1         2048   4982527   4980480  2.4G fd Linux raid autodetect
/dev/nvme0n1p2      4982528   9176831   4194304    2G fd Linux raid autodetect
/dev/nvme0n1p3      9437184 500103449 490666266  234G fd Linux raid autodetect

6、创建存储空间

cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid1 sda3[0] sdb3[1]
      5855700544 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sdc3[0] sdd3[1]
      9761614848 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1] sdc2[2] sdd2[3]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sda1[0] sdb1[3] sdc1[1] sdd1[2]
      2489920 blocks [4/4] [UUUU]

AFAIK, md0 is system partition and md1 is system swap. You current volume/storage pool will start at md2.
mdadm --create /dev/md4 --level=1 --raid-devices=1 --force /dev/nvme0n1p3

如果md4 已经存在,则使用下一个md号,上边有列出已使用的编号。

7、输入y 确认

mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

如果插入两条SSD,可输入。

mdadm --create /dev/md4 --level=1 --raid-devices=2 --force /dev/nvme0n1p3 /dev/nvme1n1p3

8、创建文件系统

使用ext4 格式输入

mkfs.ext4 -F /dev/md4
mke2fs 1.42.6 (21-Sep-2012)
Filesystem label=1.42.6-23824
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
15335424 inodes, 61333024 blocks
25600 blocks (0.04%) reserved for the super user
First data block=0
Maximum filesystem blocks=2210398208
1872 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

如果使用btrfs 输入

mkfs.btrfs -f /dev/md4

格式化完成后,重启之后,在DSM 存储管理器中即可看到该硬盘。如提示需要在线充足,点击在线重组即可。

群晖DSM 7 将M.2 NVMe SSD 缓存设置为储存空间

四、NVME存储一键脚本

1、一键添加硬盘数据库

curl https://dsm.ainas.cc:88/Script/Synology_HDD_db/syno_hdd_db.sh | bash -s -- -nifr

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

© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享