尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

2020-01-18 18:49:23 51点赞 290收藏 99评论

创作立场声明:1. 本系列文章讨论NAS与局域网, 请小编高抬贵手不要分类到无线网络去
2. 如果你读了开头, 有“可我的宽带才300M”的想法, 那么这文章还不适合你的需求, windows下请按Ctrl+W, iOS请按Home键,安卓我不熟.....
3. 本篇(第5篇) 涉及使用linux命令手动修改磁盘状态, 错误操作可能导致数据丢失,请小心操作,本人不承担由此造成的损失

首先我把大家问得比较多的有用信息链接列表如下:

篇一: 万兆交换机&网卡选择

篇二: SATA SSD缓存实测与否定 同时有DS918+固件的硬件要求

篇三: Nvme SSD缓存使用的硬件与固件要求

篇四: 降成本, 提性能

还是建议大家按顺序阅读, 不容易产生误解

觉得NVME缓存还不够给力怎么解?

如果你是从我前四篇顺序读下来, 那么应该是已经感受到了Nvme 缓存的机械硬盘存储和万兆网络配合后速度飞跃, 然而这毕竟是缓存不是最终存储, 鸡血总是有限的, 缓存一旦用完, 速度又回到了机械硬盘的老样子。而群晖的缓存策略, 似乎放弃旧缓存是个漫长过程(注意是指放弃旧缓存内容所占空间, 不是指写回。 写回后原内容还是驻留缓存的), 这导致缓存用满后 , 很长时间这个存储盘就和普通机械硬盘无异了。

那么群晖有没有可以直接使用NVME SDD 做存储的设定呢? 我翻遍群晖的介绍, 无论是家用顶配的DS918+,还是中小企业使用的DS1018+, 发现都是只支持Nvme m.2 SSD缓存, 却不支持nvme SSD的存储空间。而对于Nvme SSD, 现在的市场上不但有海康, 西数, 东芝等厂家推出的2T左右的m.2 Nvme SSD;更有3.2T,4T甚至8T的二手“大船货”U2 Nvme 2.5寸 SSD可供选择。 很多人也在我这系列文章的前几篇问有没有办法用NVMe SSD直接做存储盘。 我爬了半天XPENOLOGY 论坛, 从一篇俄文帖子里找到线索(此处吐槽google翻译1000次), 最后在reddit 论坛找到了一个方法, 由于不可描述的原因, 大家访问可能有困难, 所以我这次干脆全文贴给大家了, 中英文混合, 大家见谅

前提条件:

首先是黑群晖硬件固件要求是DS918+ DSM6.2 bootloader 1.04。PC上有SSH的工具如putty

其次是打上了我在篇三中贴出的patch脚本, 从而在黑群晖的DSM 存储空间管理->HDD/SSD 页面可以看见Nvme缓存设备, 但还没有被用作任何存储空间的缓存

Step1 创建分区

从SSH用admin账户登陆群晖命令行终端, 并键入

sudo -i

输入密码获得root权限, 然后执行

ls /dev/nvme*

You will see the /dev/nvme0n1 or /dev/nvme1n1 depend on which slot you install the SSD.

输入:

fdisk -l /dev/nvme0n1

此命令用来确认nvme SSD的状态大小. ( if your SSD at slot 2, use /dev/nvme1n1 instead)

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

如果信息符合你要使用的NVme SSD的信息,用如下命令创建分区:

synopartition --part /dev/nvme0n1 12

and answer 'Y' if you confirm

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.

这样实际上给一个nvme 盘创建了标准的群晖方式的分区, 即: 2.4G大小的系统分区, 2G大小的swap分区, 然后是剩余空间分配了一个给用户使用的数据分区。 我自己是一个250G的SSD,这样分区后, 数据分区大小是大概228G

Type

fdisk -l /dev/nvme0n1

You will see the partition layout is created

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

原文例子里是一个256G SSD, 群晖分区后数据区大概是234G的样子

Step2 建立存储空间

Type

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]
20097088 blocks [4/4] [UUUU]

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

这个命令显示了目前已有逻辑存储盘的情况: md0 其实就是群晖的系统分区, 以RAID1的形式, 在每个物理磁盘上都有分区, md1是swap分区, 也是RAID1形式, 每个盘都有一个分区; md2 是物理磁盘sda, sdb的第三分区(数据区) 组成的RAID1存储空间; md3 是物理磁盘sdc, sdd 的第三个分区组成的RAID1存储空间

我们现在就是要把已经分好区的Nvme 磁盘上, 也建立起群晖DSM中可用的磁盘空间, 虽然用linux的mdadm理论上各种RAID形态都可以做, 但小弟不才不敢乱试命令搞乱已有存储数据, 所以就用最基本的单盘即DSM中说的basic 存储空间。 实际上就是单盘RAID1 (群晖就是这么干的, 别问我为什么)

输入:

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

此命令为刚才建立的Nvme SSD的数据分区建立新存储空间 , 注意/dev/md4,如果你在刚才的mdstat命令中看到的已有存储空间已经最大是md4, 那么这里需要改成/dev/md5,以此类推

And answer 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/md4 started.

Step3 格式化文件系统

如果你要使用常见的ext4 文件系统

Type

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

看到最后的done, 那么ext4 文件系统已经建立好了

如果你想用群晖新版DSM更推荐的btrfs系统,

type

mkfs.btrfs -f /dev/md4

无论你建立的是ext4还是btrfs系统, 如果这时候你在DSM的存储空间管理员里查看,还是看不到新的存储空间, Nvme SSD 也还是作为未分配的缓存空间。 这时候你需要在SSH 终端输入

reboot

重启后, 就可以看到新的nvme存储空间啦!


外观展示

接下来是实操时间: 鉴于我自己的黑裙已经有两块Nvme SSD做了缓存, 如今又要试装nvme 存储盘,不得不又把东芝RC500 250G 拿出来做试验田

RC500RC500

为什么要转接卡? 因为我的黑群晖平台已经插满了NVme SSD缓存尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试 , 第4篇中提到的便宜货技嘉B150M DS3H 板插不了那么多PCIe设备, 只好闲置, 换上技嘉新款的B365M小雕

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

即使这样, 在已经插了两块NVMe SSD缓存, 一个intel X550万兆网卡后, 也已经满满堂堂了, 再插RC500, 又要祭出转接排线

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

一番折腾, 万兆网卡下面空PCI槽位太低散热太差, RC500只能挤在机箱一角了

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

装箱, 启动, 由于我的黑裙已经打好nvme 驱动的补丁, 进入DSM可以看到又增加一个Nvme SDD 缓存设备, 型号就是东芝RC500

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

照前所述操作(我最后创建的nvme存储空间是md5), 然后重启, 就可以在DSM存储空间管理员中发现新的存储池

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

以及新的存储空间, 因为我还想试试VMM虚拟机, 所以我选了btrfs文件系统格式

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

测试时间:

测试很简单, PC和黑裙都是10G网卡,黑裙在新的Nvme 存储空间上建共享文件夹TEST, 从PC的NVme SSD 上对NAS的TEST文件夹读写大约20~30G大小的文件, 观测win10显示的速度曲线:

NAS写测试:

写速度1GB/s写速度1GB/s

基本稳定在1GB/s 左右略有跳动

NAS读测试:

读 1GB/s以上读 1GB/s以上

读速度基本稳稳的在1GB/s以上, 完全满足了万兆网卡带宽!

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

最后我突发奇想给这个存储空间跑个分, 于是黑群里建了iSCSI target

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

在win10的开始->管理工具 中打开iSCSI initator, 建立iSCSI盘, 然后跑Crystal Diskmark

尝试达成最终目标: 黑裙+万兆网卡+Nvme 存储空间的实现与测试

结果基本就是个最高速被限在1.2GB/s的SSD, 4K略差, 我想原因是通过万兆网络比纯Nvme设备latency大了很多的原因吧。

总结:

这篇主要解决的是如何让黑群晖系统支持用NVme SSD创建存储空间, 独立存储数据, 而不是仅仅作为SATA硬盘存储空间的缓存。利用Nvme硬盘的高带宽低延迟, 我们很容易跑满万兆网络, 甚至4K小文件传输也会大大高于千兆网络极限。这个方法不但黑裙适用, 白裙也一样适用。 无论黑白群, 能使用的前提都是机型本身必须支持Nvme( 即可插nvme m.2 SSD 做缓存)。

但这种手动添加存储空间的操作, 风险也是很大的 :

首先系统里必须有SATA硬盘安装好了DSM, 不可能在NVme SSD上新装DSM。其次存储空间建立后需要小心自动升级DSM, 由于是手动添加的存储空间,极有可能在一次系统升级后空间就消失了, 造成数据丢失。 最后作为黑群晖, 还需要始终确保Nvme驱动的黑裙补丁有效, 否则驱动都没了, 磁盘空间必然消失

相比用NVme SSD 做虚拟机的SATA 磁盘这样的暗渡陈仓的方式, 直接使用NVme可以在DSM中监控NVme SSD的SMART信息, 也不存在由于虚拟化造成的性能下降。 我只能说, 两种方法各有优缺点。

最佳解决方案, 是期望群晖在DSM 7.0 这一代正式支持Nvme SSD做存储空间, 在Flash越来越便宜的今天, 我想这是趋势吧。

展开 收起
99评论

  • 精彩
  • 最新
  • 唉,还忍受着百兆的带宽只能默默流泪

    校验提示文案

    提交
    不要看,点关闭,看我这些文章想的却是宽带的,这文章不适合您

    校验提示文案

    提交
    收起所有回复
  • 只能说群晖这点上落后威联通好多 [喜极而泣]

    校验提示文案

    提交
    哪一点?威联通nvme可以直接做存储空间?

    校验提示文案

    提交
    对啊 可以直接当存储空间

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 我的万兆网卡找不到网络 不知道咋回事 nmpa19

    校验提示文案

    提交
    装黑裙上? 啥型号的网卡?

    校验提示文案

    提交
    麦洛斯nmpa19 就是前段时间100左右现在150多那个

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • NAS部署万兆成本现阶段太高,还是直接DAS走TYPC-C实在

    校验提示文案

    提交
    现在便宜多了,家用万兆交换机 800-1000,网卡100多到700多看你预算需要

    校验提示文案

    提交
    你这价格从哪来的,SFP+的二手都不止这个价

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 哈哈哈 终于等到了,就是看了楼主的帖子搞了i3+万兆黑群晖,继续跟着楼下折腾,感谢

    校验提示文案

    提交
    一起玩一起玩 [脸红]

    校验提示文案

    提交
    收起所有回复
  • 直接上40G网卡吧 [龇牙] [龇牙] [龇牙]

    校验提示文案

    提交
    等我研究出3块Nvme组RAID5 [龇牙] [龇牙] [龇牙]

    校验提示文案

    提交
    收起所有回复
  • 电口还是王道,六类无缝升级万兆。

    校验提示文案

    提交
    为了省钱,我有个离交换机近的win机用了mellanox x3光口卡和跳线 [长草]

    校验提示文案

    提交
    收起所有回复
  • 这么快的速度应用场景是?视频编辑?

    校验提示文案

    提交
    算是吧,还有照片备份,高清电影传输

    校验提示文案

    提交
    收起所有回复
  • 通过万兆,拷贝到软、硬raid5硬盘组的速度,速度能达到500M吗

    校验提示文案

    提交
    要看几个盘,本身是什么盘之类情况

    校验提示文案

    提交
    比如我的硬raid5是4个西数企业金盘6T,读写那都是能过500M的

    校验提示文案

    提交
    收起所有回复
  • 看了你的一系列文章,特别敬佩你的摸索精神,一个freenas的虚拟机不能pppoe拨号把我折腾了几天,目前已经放弃

    校验提示文案

    提交
    我最近试unRaid下虚拟机LEDE也是一头包

    校验提示文案

    提交
    收起所有回复
  • 请问这个550万兆网卡是装在ds918+上面的吗 我一直头疼ds918+的万兆驱动 试过了x520和mc2以及mc3 都不能驱动 加了那个什么驱动扩展也没弄成功

    校验提示文案

    提交
    intel的X520 光口,x540,x550 电口应该ds918+的1.04b boot img可以直接驱动的。 请用原始ds918+ boot image,别用星际蜗牛定制的

    校验提示文案

    提交
    你好我也遇上一样的难题,bios里可以看到550正常工作,但是进了黑群晖怎么都无法识别550这张网卡,有没有安装网卡的攻略,谢谢

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 感谢教程,白裙918+改造成功

    校验提示文案

    提交
    白918+? 干嘛这么改? 网络是千兆的,改了也不会更快。 另外注意下变成存储盘后的寿命信息、nvme存储空间trim似乎不支持啊

    校验提示文案

    提交
    跑虚拟机专用哈,寿命不担心的。速度的话,等搬了家准备外挂USB 2.5Gbps有线网卡,比10G、5G便宜太多了

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 3617可以吗? 我按网上教程,M2.SSD做缓存读不出。有办法吗?主板是华擎的Z390Mitx

    校验提示文案

    提交
    不行,请看我篇三,说清楚了需要的条件

    校验提示文案

    提交
    收起所有回复
  • ssh怎么登陆

    校验提示文案

    提交
    请查阅群晖DSM基本使用指南

    校验提示文案

    提交
    收起所有回复
  • 几年前搞过 网件万兆电口的, 很稳定 聚合的 话会有2000m,固态只到1500

    校验提示文案

    提交
    聚合......2000M,唔.....你是真的测试到了这样的网络copy速度, 比如SMB, FTP, NFS之类。 还是只是看到了操作系统里这么一个标识?

    校验提示文案

    提交
    收起所有回复
  • 大神能不能把你那台群晖的系统引导这种上一下,或者说下哪里下的,我的也是黑的918+按你的操作来,结果不行,不知道是不是引导的版本有问题,也看不到,系统也是6.2的

    校验提示文案

    提交
    首先,nvme缓存能认出来吧?

    校验提示文案

    提交
    行的,显示是未初始化,打了你前面那个补丁

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 大佬,和你用相同的机箱(810a)和相同的主板(技嘉小雕B365>,黑裙各种版本都试了,都无法引导,板载的i219-v是没戏了。后来也加了一张x550的网卡,网线插到了x550上,可以发现机器安装dsm了,但安装后又找不到了IP了。大佬方便发一下你的固件吗,感谢!

    校验提示文案

    提交
    我板载也没问题啊,固件我再说一遍,去Expenolgy 下干净的,不要从各大NAS论坛下个人自己定制的,很容易不适合。 6.22 和6.23 应该都可以。大不了DS918 对硬件要求高,DS3617 6.1 先装起来

    校验提示文案

    提交
    大佬,这上面XPE的镜像我都试了,还是找不到IP,方便共享一下你的引导文件吗,5075633@qq.com,感谢。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 你好,之前试用过你的方法,非常感谢。我现在特别想知道如何才能让有PCIe槽又有M.2 NVMe槽的白群晖用上群晖自己的M2D20扩展卡。我买了一台DS1621xs+,这货自带万兆电口所以不需要万兆网卡了,就想着再插一张NVMe扩展卡上去,这样就有四块NVMe SSD,两块用作缓存,两块组RAID1用来装虚拟机。想得很美,问了很多次客服都说不行,自己买来试用,发现确实不行,存储空间管理员界面里看不到该有的“缓存设备”,进命令行能看见,本文操作也能走通,一重启就还是啥都没变。然后看到你文章里的配图出现了三块缓存设备,就觉得DSM应该是能识别两块以上的NVMe SSD的啊,再往前翻发现你是打了黑群专用补丁,我在想我的白群是不是也该打个补丁,可能就好了?

    校验提示文案

    提交
    打完了最新的补丁,发现连内置的NVMe都不识别了 [高兴] 幸好之前备份了原文件

    校验提示文案

    提交
    我这个补丁方式,6.22专用,如果是6.23版,需要另一个方法。而且是黑裙才能用

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 请问必须是918+吗? 我看截图写的是3617呢??因为我的810A8盘的 装的是3617

    校验提示文案

    提交
    必须918+,DS3617白裙就没有nvme

    校验提示文案

    提交
    收起所有回复
  • 请教一下,像1817这样缓存是SATA的,以及1819这样通过PCIE扩展出NVME缓存的,可以用吗

    校验提示文案

    提交
    SATA 的话,本来就可以做存储空间,肯定没问题; 1819这样nvme 的,也可以照着我的教程做,nvme就可以用作存储空间,但要记得整个系统一定要有SATA的盘,且最好所有app都在sata盘上。 因为nvme 空间不能启动的。 这个结论止于6.23,新的7.0我没玩过(还没有黑的) [傻笑]

    校验提示文案

    提交
    1817+比较特殊,用的M2D17是专属PCIE配件,只能插两根SATA的M2,系统默认也是只能做缓存,故有此问...

    校验提示文案

    提交
    还有2条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
290
扫一下,分享更方便,购买更轻松