想 DIY 一台基于 ZFS 的 NAS
2056 65
[1 楼] loblab [泡菜]
21-5-1 10:43
因为业务数据有大量的重复,所以试了下ZFS的去重功能,一试吓一跳,省了N倍的空间。

所以考虑整一个8~12盘位的NAS,50T有效空间保守估计可以达到以前200T的效果。

因为ZFS不建议使用RAID,所以RAID卡就不需要了,也不想用服务器了。而且,这台NAS也只是作为原NAS的备用,稳定性上要求也没那么高。

还有,去重比较耗CPU,所以考虑用AMD 3900X这样的。这也是不考虑服务器的一个原因。

SSD可能也是需要的。

对于这样的机器,有什么样的机箱和主板推荐?(不确定一般的主板能否接比如12块硬盘,实在不行,就8块吧)

谢谢。
[66 楼] windyboy [老坛泡菜]
21-5-14 11:24
loblab 发表于 2021-5-12 21:10
这个知道,你要是说“被”碾压我就不费解了。

对我来说,不用阵列卡(直通),也要用SATA扩展卡,要在这二者里选。


对于ZFS来说需要直通硬盘
你可以用阵列卡,也要打开直通,不是必须的
一般服务器接多个硬盘的关系,是需要阵列卡,实质作用只是扩展多个硬盘接口
先不说ZFS本身的效能高,单ZFS使用系统主CPU一点,已经比阵列卡上那个垃圾CPU强几百倍了

补充一点,在开启lz4的情况下,ZFS的性能是一个核心,每秒一个G,万兆网卡?十万兆也满足不了吧
20个核心就需要20万兆的线路才能跑满 本帖最后由 windyboy 于 2021-5-14 11:27 编辑
[65 楼] loblab [泡菜]
21-5-13 08:40
话说阵列卡也可以在线操作。
这次就用了,结果加一块硬盘要半个月!
这还不算,所谓在线,原有的读写还能用,只是慢到令人发指!
幸好事先备份了数据,做了备用机。于是全部重来,BGI加导回数据只用了两三天。

发布自 安卓客户端
[64 楼] loblab [泡菜]
21-5-12 21:10
windyboy 发表于 2021-05-12 09:51
传统阵列卡对硬盘有限制
所有硬盘必须一样
zfs不但不需要一样,连容量都可以有不同,只是计算的时候以最小的为准
各种不需要关机...


这个知道,你要是说“被”碾压我就不费解了。

对我来说,不用阵列卡(直通),也要用SATA扩展卡,要在这二者里选。

发布自 安卓客户端
[63 楼] loblab [泡菜]
21-5-12 21:04
windyboy 发表于 2021-05-12 09:54
你刚好说反了
如果是软件层面,通常就是整个文件hash,直接对比hash,不需要上传就去重了,因此也出现了秒传的现象,实际上根本没传文...


你说的对。我忘了网盘可以在自己的客户端做hash.

但对于NAS,对于标准协议,不管是samba, nfs,afp,ftp,webdav,,都能去重,则需要对应用层透明,只有上传之后才能做去重。
发布自 安卓客户端
[62 楼] windyboy [老坛泡菜]
21-5-12 17:54
loblab 发表于 2021-5-9 23:36
最初我还纳闷ZFS为什么不提供去重级别的选项。后来想了想,文件级别的去重未必比块级别的去重更有优势。

对于网盘,一个2G的文件全部上传完之后才知道是重复的。而块级别的去重,边上传边写的时候就知道是重复的了,根本就不会占用存储空间和IO资源。

软件终归是要分层的。在应用层还是系统层去做,逻辑上没有区别。

你刚好说反了
如果是软件层面,通常就是整个文件hash,直接对比hash,不需要上传就去重了,因此也出现了秒传的现象,实际上根本没传文件体
如果是文件系统层面,必须是整个文件先传上去,才轮到文件系统分块,再比较没块的hash
[61 楼] windyboy [老坛泡菜]
21-5-12 17:51
loblab 发表于 2021-5-9 23:55
不懂。
你是指阵列卡比SATA扩展卡更好吗?


传统阵列卡对硬盘有限制
所有硬盘必须一样
zfs不但不需要一样,连容量都可以有不同,只是计算的时候以最小的为准
各种不需要关机的在线操作,阵列卡也没办法
[60 楼] loblab [泡菜]
21-5-11 09:03
无计留春住 发表于 2021-05-10 03:32
这个性能是有针对性的,服务器CPU的性能和桌面CPU性能没法放在一起比,因为需求不一样、运行的程序不一样。否则,为什么不在服务器上使...


没那么神秘,跑一模一样的应用,1/2的成本,得到两倍的速度,有啥不可比的?

不用的原因有很多,市场的垄断,惯性,人的求稳心理,甚至采购的回扣。。

发布自 安卓客户端
[59 楼] loblab [泡菜]
21-5-11 08:54
天放 发表于 2021-05-10 13:10
是指总带宽,或者插槽数量。  以下数据查的是新品

如:4U的DELL R940
插槽
PCIe
13 x Gen3 sl...


这个总带宽对大多数场景都没用。
4盘的SATA扩展卡居然是PCIe 3.0x1,欺负硬盘速度慢啊。
GPU服务器可能用得上那么多插槽。但那么多GPU,散热也是问题,还不如多整几台机器。。

发布自 安卓客户端
[58 楼] 天放 [资深泡菜]
21-5-10 21:10
loblab 发表于 2021-5-9 23:48
为什么服务器PCIe带宽更高?
每个插槽的规格定了带宽不就定了吗?
你是指总带宽吗?

另外服务器上都普及PCIe4.0了吗?


是指总带宽,或者插槽数量。  以下数据查的是新品

如:4U的DELL R940
插槽
PCIe
13 x Gen3 slots (3 x 8 slots + 10x 16 slots)

只有AMD芯片组支持 PCIE4.0 ,如:DELL 2U的AMD CPU的机架,R7525

插槽
多达 8 个 PCIe 第 4 代插槽
[57 楼] 盲目信仰 [资深泡菜]
21-5-10 14:16
loblab 发表于 2021-5-10 00:01
去重并不会导致更慢吧。我前面的测试在AMD3900X超过两个万兆口的速度。

也考虑作为原NAS的镜像,每晚同步。


我这是脑补的印象,没有实践过。
我是这么想的,去重、压缩之类的功能依赖CPU运算,但如果你全是HDD硬盘,等CPU运算的时间小于等磁盘读写的时间,所以测不出区别。也许可以上SSD试试效果?
[56 楼] 无计留春住 [泡菜]
21-5-10 11:32
loblab 发表于 2021-5-9 23:50
不是浪费,而是不够。
服务器CPU的单核性能只有桌面CPU的一半。而价格是两倍。


这个性能是有针对性的,服务器CPU的性能和桌面CPU性能没法放在一起比,因为需求不一样、运行的程序不一样。否则,为什么不在服务器上使用桌面CPU? 本帖最后由 无计留春住 于 2021-5-10 11:33 编辑
[55 楼] loblab [泡菜]
21-5-10 00:01
盲目信仰 发表于 2021-05-06 15:47
如果用作迁移时的中转站,不应该考虑去重功能,因为这个迁移的业务停机时间才是最重要的,宁愿用大容量把数据快速倒腾出来。
去重更适合冷备份吧...


去重并不会导致更慢吧。我前面的测试在AMD3900X超过两个万兆口的速度。

也考虑作为原NAS的镜像,每晚同步。

发布自 安卓客户端
[54 楼] loblab [泡菜]
21-5-9 23:55
windyboy 发表于 2021-05-09 03:42
阵列卡面对ZFS
基本上不值一提
兼容性,性能
成本,各方面都是全面碾压


不懂。
你是指阵列卡比SATA扩展卡更好吗?

发布自 安卓客户端
[53 楼] loblab [泡菜]
21-5-9 23:53
luckcat 发表于 2021-05-07 02:29
支持ATX,不支持E-ATX。
我才装了一台,用的是华硕M13H+11900K,刚刚好塞满,就是因为没有装水冷的位置,才会吐槽,水冷压...


谢谢。银欣的产品规格上没说支持ATX,你说了之后特地找客服确认了下,也说是支持。

加上有独立硬盘指示灯,看来是首选了。

发布自 安卓客户端
[52 楼] loblab [泡菜]
21-5-9 23:50
无计留春住 发表于 2021-05-07 02:53
机架的太吵了;现在CPU性能已经足够(多核多线程),一般情况下双路CPU已经没啥用场了,尤其是对lz的需求来说,双路就是浪费。


不是浪费,而是不够。
服务器CPU的单核性能只有桌面CPU的一半。而价格是两倍。

发布自 安卓客户端
[51 楼] loblab [泡菜]
21-5-9 23:48
天放 发表于 2021-05-09 01:53
管理8个以上的硬盘,还是要用于专门的控制卡,就是RAID卡;相应的多硬盘的硬盘架,硬盘供电支持还是服务器做的专业。SAS硬盘接口是兼容SAT...


为什么服务器PCIe带宽更高?
每个插槽的规格定了带宽不就定了吗?
你是指总带宽吗?

另外服务器上都普及PCIe4.0了吗?

发布自 安卓客户端
[50 楼] loblab [泡菜]
21-5-9 23:42
eagleisyou 发表于 2021-05-09 11:46
如果涉及到对旧数据的修改会比较多,那磁盘去重是灾难。


对于块级别的去重,这根本不是灾难。

加上COW,代价很小,反而体现出其优越性。

发布自 安卓客户端
[49 楼] loblab [泡菜]
21-5-9 23:36
windyboy 发表于 2021-05-08 05:12
百度这种是应用的问题,应该在应用层面解决
不应该在存储层支持
也就是去重的意义在于上传的文件做一个hash而不是文件分成块以后,...


最初我还纳闷ZFS为什么不提供去重级别的选项。后来想了想,文件级别的去重未必比块级别的去重更有优势。

对于网盘,一个2G的文件全部上传完之后才知道是重复的。而块级别的去重,边上传边写的时候就知道是重复的了,根本就不会占用存储空间和IO资源。

软件终归是要分层的。在应用层还是系统层去做,逻辑上没有区别。
发布自 安卓客户端
[48 楼] eagleisyou [泡菜]
21-5-9 19:46
loblab 发表于 2021-5-6 22:56
比如说像百度网盘这样的应用,很多用户可能在自己网盘里保存着同样的电影或软件。这种时候百度不会使用去重?

对我的应用来说,这种重复更严重,就类似于5~10个用户,90%的数据都是重复的。
50T的空间可以达到300T的效果,而增加的CPU和内存成本就一两块硬盘的钱。
显然这种方案是更省钱的。
我还可以把省下的钱去买SSD,作为缓存,来提高速度。

另外,减少I/O本来就可以提升速度。看我前面的测试,两块硬盘的ZFS“写速度”竟然可以快过12块硬盘的RAID,因为这时并没有多少写操作,数据都是重复的。

其实我略担心的是ZFS在普通Linux上的稳定度,所以想用FreeBSD.
[47 楼] windyboy [老坛泡菜]
21-5-9 11:46
263469250 发表于 2021-5-9 09:20
千兆肯定没啥感觉,万兆就能看出区别了

从官方的给出的性能数据101版本的lz4
1000兆传输需要1秒,解压,压缩都在0.2秒以内
[46 楼] windyboy [老坛泡菜]
21-5-9 11:42
天放 发表于 2021-5-9 09:53
管理8个以上的硬盘,还是要用于专门的控制卡,就是RAID卡;相应的多硬盘的硬盘架,硬盘供电支持还是服务器做的专业。SAS硬盘接口是兼容SATA硬盘的

如果想上NVME,就使用PCIE-NVME转接卡或阵列卡,这是服务器的优势又出来了,服务器的PCIE的带宽比桌面芯片组的带宽高,支持多个高带宽PCIE
计算压力其实没那么高,就是文件存入的时候,计算一次文件hash消耗比较大,结果是保存到数据库中,读取的时候,是一次数据库查询和IO。

二手双C服务器,上8个SATA SSD硬盘,内存加到96G(8G*12,我自己的一个服务器,12个DDR3内存槽,使用4G内存条满装到48G),CPU升级高一些的,比自己DIY桌面芯片组的好很多


阵列卡面对ZFS
基本上不值一提
兼容性,性能
成本,各方面都是全面碾压
[45 楼] 天放 [资深泡菜]
21-5-9 09:53
管理8个以上的硬盘,还是要用于专门的控制卡,就是RAID卡;相应的多硬盘的硬盘架,硬盘供电支持还是服务器做的专业。SAS硬盘接口是兼容SATA硬盘的

如果想上NVME,就使用PCIE-NVME转接卡或阵列卡,这是服务器的优势又出来了,服务器的PCIE的带宽比桌面芯片组的带宽高,支持多个高带宽PCIE
计算压力其实没那么高,就是文件存入的时候,计算一次文件hash消耗比较大,结果是保存到数据库中,读取的时候,是一次数据库查询和IO。

二手双C服务器,上8个SATA SSD硬盘,内存加到96G(8G*12,我自己的一个服务器,12个DDR3内存槽,使用4G内存条满装到48G),CPU升级高一些的,比自己DIY桌面芯片组的好很多
[44 楼] 263469250 [泡菜]
21-5-9 09:20
windyboy 发表于 2021-5-8 15:50
lz4吗?好像无论读写都没啥感觉
http://lz4.github.io/lz4/
千兆肯定没啥感觉,万兆就能看出区别了
[43 楼] windyboy [老坛泡菜]
21-5-8 15:50
263469250 发表于 2021-5-6 18:36
读取基本不耗费cpu,但写入非常耗,耗多少看你写入速度有多快


lz4吗?好像无论读写都没啥感觉
http://lz4.github.io/lz4/
[42 楼] windyboy [老坛泡菜]
21-5-8 13:12
loblab 发表于 2021-5-6 22:56
比如说像百度网盘这样的应用,很多用户可能在自己网盘里保存着同样的电影或软件。这种时候百度不会使用去重?

对我的应用来说,这种重复更严重,就类似于5~10个用户,90%的数据都是重复的。
50T的空间可以达到300T的效果,而增加的CPU和内存成本就一两块硬盘的钱。
显然这种方案是更省钱的。
我还可以把省下的钱去买SSD,作为缓存,来提高速度。

另外,减少I/O本来就可以提升速度。看我前面的测试,两块硬盘的ZFS“写速度”竟然可以快过12块硬盘的RAID,因为这时并没有多少写操作,数据都是重复的。

其实我略担心的是ZFS在普通Linux上的稳定度,所以想用FreeBSD.


百度这种是应用的问题,应该在应用层面解决
不应该在存储层支持
也就是去重的意义在于上传的文件做一个hash而不是文件分成块以后,每个块做hash

我家里就是freebsd
用的freenas

补充一下,买SSD做缓存也是属于官方指引,SSD可以设置成二级缓存,也可以用于LOG
提升效能比较明显
本帖最后由 windyboy 于 2021-5-8 13:14 编辑
[41 楼] 无计留春住 [泡菜]
21-5-7 10:56
loblab 发表于 2021-5-2 11:05
看了下,银欣基本上就CS380, DS380,后者可以8+4硬盘。
万由的810A,看着更像NAS。。

但是都不支持大板啊。主板的选择性就少了。
主板上需要插显卡,万兆网卡,还有SATA扩展卡。


要用大主板就选全塔式机箱,盘位也足够。
[40 楼] 无计留春住 [泡菜]
21-5-7 10:53
sss668800 发表于 2021-5-1 21:34
ZFS要想稳定+用得爽,直接上服务器双路CPU+大容量内存

最好是直接上机架2U,塔式的升级比较局促。

PS:缺钱的话戴尔R720,12盘位3.5寸的,比较适合你


机架的太吵了;现在CPU性能已经足够(多核多线程),一般情况下双路CPU已经没啥用场了,尤其是对lz的需求来说,双路就是浪费。
[39 楼] luckcat [资深泡菜]
21-5-7 10:29
loblab 发表于 2021-5-6 22:45
CS380不支持ATX大板。P101S支持,可以考虑。不过这机箱是不是太便宜了?

不过我有个疑问,服务器上哪个硬盘坏了, 有指示灯。但这些机箱,有每个硬盘的指示灯吗?

支持ATX,不支持E-ATX。
我才装了一台,用的是华硕M13H+11900K,刚刚好塞满,就是因为没有装水冷的位置,才会吐槽,水冷压不住11900K,不得已又花大价钱买了一个外置水冷。
CS380有硬盘背板,所以是有指示灯的,只不过它这个指示灯非常不明显,要仔细看才能看到。
P101S就没有硬盘指示灯了,这就是个传统机箱,400多的空箱不算便宜了,我有一个P110,材质很厚,很重,感觉比CS380扎实的多。
[38 楼] 盲目信仰 [资深泡菜]
21-5-6 23:47
loblab 发表于 2021-05-02 03:38
理解,也听过很多。只买最贵的,还不行那就不是我的锅了。IT也是这种态度,省自己的事。

我这台NAS,是备用和研究性质,不会上线...


如果用作迁移时的中转站,不应该考虑去重功能,因为这个迁移的业务停机时间才是最重要的,宁愿用大容量把数据快速倒腾出来。
去重更适合冷备份吧
发布自 安卓客户端