想 DIY 一台基于 ZFS 的 NAS
2056 65
[37 楼] 263469250 [泡菜]
21-5-6 23:18
loblab 发表于 2021-5-6 23:03
了解,所以我前面测试是800GB的数据,远大于内存。

另外,考虑用SSD作缓存。
读取缓存可以全用ssd~但写入缓存一定是内存的~系统里面确实是有两种缓存,确实是有一个写缓存,我记得是叫log~但那个写缓存只是放写入文件的目录而已,占不了大空间的~也就是稍微给内存搭把手,但主要文件还是先进内存的~我当初试的时候就一边看着监控一边写,就发现那个写缓存的ssd不知为啥就是空荡荡的~最近看司波图那个威联通TS-H973AX评测才幡然醒悟网络上说有多少t硬盘就配多少g内存~读缓存不应该超过内存的十倍~但我自己没咋验证过,哈哈哈哈
[36 楼] loblab [泡菜]
21-5-6 23:03
263469250 发表于 2021-5-6 18:41
内存越大越好,对于zfs来说,内存不单单止是运算的缓存,还是整个文件写入周期的写入缓存来的~例如你网络接口是万兆,但你hdd阵列速度只有500m~你写入的速度一开始也是能跑满万兆,直到内存写满了,才跌落到hdd阵列的缓外速度的


了解,所以我前面测试是800GB的数据,远大于内存。

另外,考虑用SSD作缓存。
[35 楼] loblab [泡菜]
21-5-6 22:56
windyboy 发表于 2021-5-6 16:28
去重意为着每次写入数据块的时候要找以前有没有重复的
属于一个看上去很好,但生产上不建议使用的功能
过程中要耗费大量的CPU的内存
数据越多,整体效率越低,会越来越慢

在内存和处理器上的投资不如直接换成加硬盘


比如说像百度网盘这样的应用,很多用户可能在自己网盘里保存着同样的电影或软件。这种时候百度不会使用去重?

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

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

其实我略担心的是ZFS在普通Linux上的稳定度,所以想用FreeBSD.
[34 楼] loblab [泡菜]
21-5-6 22:45
luckcat 发表于 2021-5-6 13:05
银欣CS380比较合适,我才买了一个,上面光驱位换成了三硬盘的抽取盒,一共可以装11个硬盘进去。
不过银欣这个机箱材质很一般,感觉对不起800多的价格。优点是有抽取盒,有硬盘背板,比较灵活、方便。
如果不考虑抽取,可以用安钛克P101S,可以装10个硬盘,价格也便宜的多,只要400多。
一些服务器机箱也不错,联想TS440、DELL T330之类的塔式机箱。


CS380不支持ATX大板。P101S支持,可以考虑。不过这机箱是不是太便宜了?

不过我有个疑问,服务器上哪个硬盘坏了, 有指示灯。但这些机箱,有每个硬盘的指示灯吗?
[33 楼] 263469250 [泡菜]
21-5-6 18:41
loblab 发表于 2021-5-2 10:49
需要那么大内存吗?现在只有64G。现在在拷数据,只用了13G。等应用跑起来,我再看看。

但我觉得也要看对数据的使用方式。比如我的应用基本上只会使用最近的数据;数据的读写速度不会超过万兆网卡的速度。

如果用PC,内存基本上最大128GB了。
内存越大越好,对于zfs来说,内存不单单止是运算的缓存,还是整个文件写入周期的写入缓存来的~例如你网络接口是万兆,但你hdd阵列速度只有500m~你写入的速度一开始也是能跑满万兆,直到内存写满了,才跌落到hdd阵列的缓外速度的
[32 楼] 263469250 [泡菜]
21-5-6 18:36
windyboy 发表于 2021-5-6 16:35
标准的压缩协议基本上不耗费CPU
读取基本不耗费cpu,但写入非常耗,耗多少看你写入速度有多快
[31 楼] 263469250 [泡菜]
21-5-6 18:35
loblab 发表于 2021-5-1 10:43
因为业务数据有大量的重复,所以试了下ZFS的去重功能,一试吓一跳,省了N倍的空间。

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

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

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

SSD可能也是需要的。

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

谢谢。
不用3900x太狠了~我试过2400g跑万兆就已经足够了~不过给我就不折腾了,直接买威联通的zfs系列产品算了,没那个精力了~默认的lz4压缩算法我试过放进去视频剪辑素材大概能压缩1/10空间,但去重那个就不知道咋测试结果了~而且zfs是软raid而已,主办硬盘不够也还是可以用raid卡的~硬raid卡可以开个jbod模式,那就相当于软raid卡了~也有直接软raid卡的,貌似就叫hba卡~这两种方法都可以帮助zfs实现更多硬盘~至于主板就是看着能否支持ecc内存来买就好,机箱这方面就不太熟悉了
[30 楼] windyboy [老坛泡菜]
21-5-6 16:35
loblab 发表于 2021-5-3 18:35
ZFS还可以开启压缩。

同时开启压缩和去重,不一定会比仅开启去重慢很多,因为数据量变小了,看压缩和hash,谁更耗CPU。

总之有很多实验可以做。

总之对于ZFS的这些特性,CPU越快越好。

标准的压缩协议基本上不耗费CPU
[29 楼] windyboy [老坛泡菜]
21-5-6 16:28
去重意为着每次写入数据块的时候要找以前有没有重复的
属于一个看上去很好,但生产上不建议使用的功能
过程中要耗费大量的CPU的内存
数据越多,整体效率越低,会越来越慢

在内存和处理器上的投资不如直接换成加硬盘
[28 楼] luckcat [资深泡菜]
21-5-6 13:05
银欣CS380比较合适,我才买了一个,上面光驱位换成了三硬盘的抽取盒,一共可以装11个硬盘进去。
不过银欣这个机箱材质很一般,感觉对不起800多的价格。优点是有抽取盒,有硬盘背板,比较灵活、方便。
如果不考虑抽取,可以用安钛克P101S,可以装10个硬盘,价格也便宜的多,只要400多。
一些服务器机箱也不错,联想TS440、DELL T330之类的塔式机箱。
[27 楼] loblab [泡菜]
21-5-3 18:35
ZFS还可以开启压缩。

同时开启压缩和去重,不一定会比仅开启去重慢很多,因为数据量变小了,看压缩和hash,谁更耗CPU。

总之有很多实验可以做。

总之对于ZFS的这些特性,CPU越快越好。

[26 楼] loblab [泡菜]
21-5-3 18:08
1W块的PC超过了4W块的服务器。

可见:
1。在ZFS开启去重时,CPU的重要性;
2。Intel的服务器CPU确实垃圾。

所以,要用ZFS+去重,还用Intel服务器CPU,真的没啥意思。
[25 楼] loblab [泡菜]
21-5-3 18:05
机器2:PC,AMD 3900X, 8T*2

跑了3次:
858993459200 bytes (859 GB, 800 GiB) copied, 286.72 s, 3.0 GB/s
858993459200 bytes (859 GB, 800 GiB) copied, 291.362 s, 2.9 GB/s
858993459200 bytes (859 GB, 800 GiB) copied, 292.728 s, 2.9 GB/s

(两块8T的普通硬盘,显然不可能达到2.9GB/s的写速度,这也说明去重确实发生了作用)
[24 楼] loblab [泡菜]
21-5-3 18:02
做了个对比实验,测试ZFS去重开启时的写,简单地写0:

dd if=/dev/zero of=tmp.dat bs=1M oflag=direct count=819200

机器1:服务器,Intel 服务器CPU,6T*12, RAID6

跑了3次:
858993459200 bytes (859 GB, 800 GiB) copied, 417.892 s, 2.1 GB/s
858993459200 bytes (859 GB, 800 GiB) copied, 429.973 s, 2.0 GB/s
858993459200 bytes (859 GB, 800 GiB) copied, 429.576 s, 2.0 GB/s

本帖最后由 loblab 于 2021-5-3 18:11 编辑
[23 楼] loblab [泡菜]
21-5-3 14:56
简单测试下现在NAS的写速度(6T*12, RAID6)

dd if=/dev/zero of=tmp.dat bs=1M oflag=direct count=81920

非ZFS分区:
85899345920 bytes (86 GB, 80 GiB) copied, 34.6105 s, 2.5 GB/s

ZFS分区:
85899345920 bytes (86 GB, 80 GiB) copied, 37.7858 s, 2.3 GB/s

ZFS分区+去重:(CPU load ~10)
85899345920 bytes (86 GB, 80 GiB) copied, 40.7119 s, 2.1 GB/s

以下内容由 loblab 于 2021-5-3 18:23 补充
更大数据量的普通文件系统:
429496729600 bytes (429 GB, 400 GiB) copied, 178.465 s, 2.4 GB/s

CPU占用基本为0。

这个基本相当于10块硬盘的速度,符合预期。
[22 楼] 电池满格 [禁言中]
21-5-3 11:58
loblab 发表于 2021-5-1 16:39
谢谢。这种我见过9代的。4盘位的吧?我需要至少8盘位。
我的8位机箱是买的二手thinkserver,300块钱,比任何同价位全新的都好的多。
[21 楼] loblab [泡菜]
21-5-3 11:45
苕溪渔隐 发表于 2021-5-2 11:24
如果想过一把DIY的瘾,可以选择超微SuperMicro的机箱和主板,能够满足你的要求。


超微的确实可以满足,但销量很少。做OEM的?

今天翻到 追风者,好几款可以满足,买的人也挺多的

比如这款可以装19个硬盘,两块主板

https://item.jd.com/100014391454.html
[20 楼] loblab [泡菜]
21-5-2 12:53
目标就是开发/实验平台。可用于试验NAS,但不限于(甚至会插一块强的显卡,试验深度学习)。

方案1: AMD 3900X
围绕这个CPU,主板就是 华硕Pro WS X570-ACE

缩小范围,好选一点。

除非另选其它CPU。
[19 楼] sss668800 [资深泡菜]
21-5-2 11:45
loblab 发表于 2021-5-2 10:49
需要那么大内存吗?现在只有64G。现在在拷数据,只用了13G。等应用跑起来,我再看看。

但我觉得也要看对数据的使用方式。比如我的应用基本上只会使用最近的数据;数据的读写速度不会超过万兆网卡的速度。

如果用PC,内存基本上最大128GB了。


ZFS用ECC内存是最稳的,容量一般推荐1G/T,你可以根据你们需要来选择。

限制还是在平台,如果将来考虑升级HDD,那么内存预留空间也要够。
消费级一方面是容量限制128G,另一方面不支持ECC
[18 楼] loblab [泡菜]
21-5-2 11:38
苕溪渔隐 发表于 2021-5-2 11:15
ECC内存、越大越好、大容量SAS盘,12G接口HBA卡,有机房的话搞台2U 12盘位服务器吧,公司用要的就是稳定,别折腾什么桌面级的东西了


理解,也听过很多。只买最贵的,还不行那就不是我的锅了。IT也是这种态度,省自己的事。

我这台NAS,是备用和研究性质,不会上线使用(最多当几天的备胎),甚至可以不买。买了就是研究下什么方案可以更优化,以及迁移的时候顶替一下。就像之前不知道ZFS去重可以节省这么大的空间。这次也是临时在一台PC上试验的,在扩容和迁移的过程中,就用这台PC充当了备份和备胎的角色,在假期临时顶替下。但我觉得这个备胎要更强一点。

另外,Intel服务器CPU性能低也是一方面。 本帖最后由 loblab 于 2021-5-2 11:40 编辑
[17 楼] 苕溪渔隐 [泡菜]
21-5-2 11:24
如果想过一把DIY的瘾,可以选择超微SuperMicro的机箱和主板,能够满足你的要求。
[16 楼] 苕溪渔隐 [泡菜]
21-5-2 11:15
ECC内存、越大越好、大容量SAS盘,12G接口HBA卡,有机房的话搞台2U 12盘位服务器吧,公司用要的就是稳定,别折腾什么桌面级的东西了
[15 楼] loblab [泡菜]
21-5-2 11:05
斯文赫定 发表于 2021-5-1 21:20
八盘位估计要银欣或者万由的机箱啦


看了下,银欣基本上就CS380, DS380,后者可以8+4硬盘。
万由的810A,看着更像NAS。。

但是都不支持大板啊。主板的选择性就少了。
主板上需要插显卡,万兆网卡,还有SATA扩展卡。
[14 楼] loblab [泡菜]
21-5-2 10:49
sss668800 发表于 2021-5-2 09:21
楼主说是组NAS,其实需求就是服务器,还不如一步到位。
50TB容量,按照1G/T来计算,得需要512G内存。

全塔服务器倒也是可以,看楼主选择了。如果像我们单位已经有机房了,肯定选择机架。


没本 发表于 2021-5-2 03:24
ZFS做专用文件服务器,内存必须充足,64GB起步,建议128GB


需要那么大内存吗?现在只有64G。现在在拷数据,只用了13G。等应用跑起来,我再看看。

但我觉得也要看对数据的使用方式。比如我的应用基本上只会使用最近的数据;数据的读写速度不会超过万兆网卡的速度。

如果用PC,内存基本上最大128GB了。
本帖最后由 loblab 于 2021-5-2 11:15 编辑
[13 楼] loblab [泡菜]
21-5-2 10:36
sss668800 发表于 2021-5-1 21:34
ZFS要想稳定+用得爽,直接上服务器双路CPU+大容量内存

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

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


现在的NAS就是用的2U的服务器,华为2288 , 6TB*12

公司买东西其实还好,IT跟我讲这波涨价前某部门买了台NAS,200TB的吧,100W

我说买啥老板也不会反对。但我觉得没必要浪费钱。这个系统里,需要CPU的我就直接用的AMD 3900X的PC,如果用服务器价格起码x3吧。

总之我可以自由地选择服务器或PC。

手头这台NAS,正在恢复数据(刚从 6TB*8升级的,顺便把文件系统改为ZFS了),最后肯定可以存储超过200TB的数据,但价格不到可怜的4W,哈哈。

本帖最后由 loblab 于 2021-5-2 10:37 编辑
[12 楼] sss668800 [资深泡菜]
21-5-2 09:21
没本 发表于 2021-5-2 03:29
楼主是组NAS,你给推荐上机架的服务器机箱,完全南辕北辙了吧。
有侧重硬盘的全塔机箱,放公司不用考虑托管机房那种机架节省体积。


楼主说是组NAS,其实需求就是服务器,还不如一步到位。
50TB容量,按照1G/T来计算,得需要512G内存。

全塔服务器倒也是可以,看楼主选择了。如果像我们单位已经有机房了,肯定选择机架。
[11 楼] 没本 [泡菜]
21-5-2 03:29
sss668800 发表于 2021-5-1 21:34
最好是直接上机架2U,塔式的升级比较局促。


楼主是组NAS,你给推荐上机架的服务器机箱,完全南辕北辙了吧。
有侧重硬盘的全塔机箱,放公司不用考虑托管机房那种机架节省体积。
[10 楼] 没本 [泡菜]
21-5-2 03:24
ZFS做专用文件服务器,内存必须充足,64GB起步,建议128GB
[9 楼] sss668800 [资深泡菜]
21-5-1 21:34
ZFS要想稳定+用得爽,直接上服务器双路CPU+大容量内存

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

PS:缺钱的话戴尔R720,12盘位3.5寸的,比较适合你
[8 楼] 斯文赫定 [老坛泡菜]
21-5-1 21:20
八盘位估计要银欣或者万由的机箱啦