背景
前一段时间入手一台群晖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/
大佬,问个问题,我现在想改格式,如何清除分区和阵列磁盘,从头来过
你从界面上面直接把存储删了就行了,然后重新操作
我按照步骤来执行,都显示正常,但是reboot后,创建阵列磁盘之后的操作全部失效,不知道为什么。。。。
DS920+
DSM:7.0.1-42218
SSD:aigo 爱国者 P2000 NVMe M.2 固态硬盘 1TB (PCI-E3.0)
老铁,可以把512g的缓存分成两个256g吗? 一个256g做缓存,一个256g做存储
老哥,想问下,你的DSM是什么版本的,DSM6.X还是DSM7.X
我现在升级到7了,这篇文章是6.x的时候写的。目前7.x的版本我没有试过本教程的尝试。
我在找这样的教程很久了,现在新出的ds923+直接原生支持ssd创建为存储空间了。有没有可能,群晖可以通过系统升级使ds920+也能原生支持。