Press "Enter" to skip to content

DS920+ 将ssd缓存盘当硬盘使用

背景

前一段时间入手一台群晖ds920+,看到机器支持加2块ssd提升机器读写性能,就买了2块三星evo980 500G的SSD,想着数据都能走缓存盘,应该机器会静音,速度也快。

没成想,插上一周之后机械硬盘还是非常吵,然后500G的ssd已经用完了,机器速度感觉也没多块,最最恶心的是,我点到ssd的smart属性里面一看,我靠ssd里面有个percentuseage 已经用了2%。啥意思嘛,ssd这也用的太快了。

查了点资料,大概意思说ssd如果灌满了,还继续使用,非常费ssd寿命。资料:https://www.chiphell.com/thread-1953995-5-1.html

那我这是图个鸡毛啊,买这么好的ssd,内心千万个草泥马,但是群辉界面上这2个ssd只能用来做缓存盘。退一步想,如果这2个ssd能组个raid1,当存储盘用也是非常爽啊。查查资料,还真有人这么干的。

用群晖ssd缓存盘组raid1作为存储空间使用

以下操作都需要ssh到群晖服务器,在特权模式下执行命令。

  • 查看nvme硬盘状态
ls /dev/nvme*

这时你应该能看到你群晖上面的ssd设备,类似于 /dev/nvme0n1、/dev/nvme1n1。

如果你像我这样装了2块ssd,就能看到2个设备。

fdisk -l /dev/nvme0n1

这个命令会让你看到ssd的具体信息。

  • 创建分区
synopartition --part /dev/nvme0n1 12

synopartition --part /dev/nvme1n1 12

会让你确认,你输入 Y 回车即可。

这里是将我们2块ssd按照群晖要求进行分区创建。

  • 查看分区信息
fdisk -l /dev/nvme0n1

你将会看到下面信息

ash-4.3# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 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: 0xc9873138

Device         Boot   Start       End   Sectors   Size Id Type
/dev/nvme0n1p1          256   4980735   4980480   2.4G fd Linux raid autodetect
/dev/nvme0n1p2      4980736   9175039   4194304     2G fd Linux raid autodetect
/dev/nvme0n1p3      9437184 976768064 967330881 461.3G fd Linux raid autodetect

注意一下,群晖帮我创建的最后面那个大的分区才是我们用来存我们自己数据的,前面2个分区不要用,那2个小分区是给群晖自己系统用的,后面有提到。

所以等下我们会用 /dev/nvme0n1p3分区来组raid

  • 创建阵列磁盘

这里我们准备将2块ssd创建一个raid1,有数据保护的存储阵列。

开始之前你要查询当前群晖已经创建几个存储空间了,不要和你等下要创建的存储空间名字冲突。

cat /proc/mdstat

你会看到类似下面的数据

md2 : active raid1 sata3p3[0] sata4p3[1]
      3902196544 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sata1p5[0]
      483555456 blocks super 1.2 [1/1] [U]


md1 : active raid1 sata3p2[1] sata4p2[2] sata1p2[3] sata2p2[0]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sata3p1[1] sata4p1[2] sata1p1[3] sata2p1[0]
      2490176 blocks [4/4] [UUUU]

可以看到已经用到md3了,那么我们等下创建就从md4开始用,你自己用多少,根据你自己实际情况来创建。

值得一提的是,md0是群晖系统盘,md1是群晖建的swap空间。很多人好奇,群晖的系统是装在哪里的。其实群晖会把所有硬盘的按照他的要求进行分区,然后把所有硬盘的第一个分区大概2G空间,组一个小的raid1,然后把系统写到这个raid阵列里面。所以群晖的系统是写在每一个硬盘上面的。

mdadm --create /dev/md4 --level=1 --raid-devices=2 --force /dev/nvme0n1p3 /dev/nvme1n1p3
  • 创建文件系统
mkfs.btrfs -f /dev/md4

如果你还准备将这个新的整理给你的虚拟机用,就建btrfs文件系统吧。

不然的话,也可以建ext4,像这样

mkfs.ext4 -f /dev/md4

然后重启系统让群晖读到我们建的花里胡哨的新存储空间。

reboot

免责声明

这个操作我也是网上学的其他大神的做法,没有做完整的测试,不保证在你的机器上面也可以正常工作,这里只是提供一个思路,如果你按照教程尝试了,不幸出现意外数据丢失了我概不负责。

根据大神描述,他 升级系统,小版本升级,大版本升级,自己手动建的存储空间都还在,没啥问题。

还是那句话,数据无价,多多备份。经常给ssd建的raid上面数据进行备份,应该问题不大,先这样用着吧,感觉比把他当 缓存盘用爽多了。

参考资料:

https://www.reddit.com/r/synology/comments/a7o44l/guide_use_nvme_ssd_as_storage_volume_instead_of/

https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04

https://www.howtoing.com/create-raid1-in-linux

7 Comments

  1. 七叶
    七叶 2021年11月22日

    大佬,问个问题,我现在想改格式,如何清除分区和阵列磁盘,从头来过

    • admin
      admin 2021年12月2日

      你从界面上面直接把存储删了就行了,然后重新操作

  2. 七杀
    七杀 2021年12月2日

    我按照步骤来执行,都显示正常,但是reboot后,创建阵列磁盘之后的操作全部失效,不知道为什么。。。。
    DS920+
    DSM:7.0.1-42218
    SSD:aigo 爱国者 P2000 NVMe M.2 固态硬盘 1TB (PCI-E3.0)

  3. rg
    rg 2021年12月12日

    老铁,可以把512g的缓存分成两个256g吗? 一个256g做缓存,一个256g做存储

  4. Xu
    Xu 2022年8月2日

    老哥,想问下,你的DSM是什么版本的,DSM6.X还是DSM7.X

    • admin
      admin 2022年8月2日

      我现在升级到7了,这篇文章是6.x的时候写的。目前7.x的版本我没有试过本教程的尝试。

  5. John wick
    John wick 2023年5月7日

    我在找这样的教程很久了,现在新出的ds923+直接原生支持ssd创建为存储空间了。有没有可能,群晖可以通过系统升级使ds920+也能原生支持。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注