71 Linux下基于ZFS的TiB DIY NAS

2014年8月2日星期六 类别:存储

这是我新的71 xb DIY NAS。这个服务器是我六岁时的继承者,二十岁的驱动器18tb NAS (17tib).它的存储容量是原来的四倍,读取(2.5 GB/s)/写入(1.9 GB/s)性能令人难以置信,是一个值得继承的产品。

zfs nas

目的

这台机器的用途是存储备份和媒体,主要是视频。

规格

部分 描述
情况下 Ri-vier rv - 4324 - 01 - a
处理器 Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
内存 16 GB
主板 超微型计算机X9SCM-F
局域网 英特尔千兆
存储连接 InfiniBand MHGA28-XTC2023: Mellanox ConnectX-3 Pro 10Gbit以太网(X312B-XCCT)
事业单位 季节性白金860
控制器 3 * IBM M1015
磁盘 24 * HGST HDS724040ALE640 4 TB (7200RPM)
固态硬盘 2 x关键M500 120GB
数组 启动方式:2 * 60gb RAID 1,存储方式:18盘RAIDZ2+ 6盘RAIDZ2
难看的存储 86 TiB (96 TB)
清爽的存储 71 TiB (78 TB)
操作系统 Linux Debian Wheezy2023: Ubuntu 22.04
文件系统 ZFS
重建时间 取决于数据量(速率为4 TB/小时)
联合包裹 备份rs1200液晶显示器使用Apcupsd
用电 欧宝体育直播官网约200瓦闲置

前面前面前面

CPU

英特尔Xeon E3-1230 V2不是最新一代的Xeon,但它是你能买到的最便宜的Xeon之一,它支持ECC内存。它是一个带有超线程的四核处理器。

在这里您可以看到它与其他处理器相比的性能。

内存

系统有16gb ECC RAM。现在内存相对便宜,但我没有任何理由升级到32gb。我认为8gb的内存对这个系统来说已经很好了。

主板

服务器是围绕SuperMicro X95SCM-F主板

这是一个服务器级主板,并具有您可能期望的典型功能,如ECC内存支持和带外管理(IPMI)。

Smboard俯视图

该主板在一个8x物理插槽中有4个PCIe插槽(2 x 8x和2 x 4x)。我的构建需要四个PCIe 4x+插槽,在这个价格点上没有(m)任何其他服务器板支持在一个8倍大小的插槽中有四个PCIe插槽。

底盘

底盘有六排四个驱动舱,保持凉爽的三个120毫米风扇在风扇墙后面的驱动舱。在表壳的后部,有两个“强大的”80mm风扇,与电源模块一起消除表壳的热量。

机箱有6个SAS背板,每个背板连接4个硬盘。背板有双molex电源连接器,因此您可以在机箱中添加冗余电源。冗余电源更昂贵,由于它们的尺寸,通常有更小的风扇,因此噪音更大。由于这是一个家庭建造,我选择了一个普通的电源模块。

当面向前方时,在机箱左侧有一个位置,可以并排安装一个3.5英寸或两个2.5英寸驱动器作为启动驱动器。我已经挂载了两个ssd (RAID1)。

这个特殊的机箱版本支持SPGIO,这应该有助于识别哪个驱动器发生了故障。我使用的IBM 1015卡确实支持SGPIO。通过LSI megaraid CLI,我已经验证了SGPIO的工作,因为您可以使用这个工具作为驱动器定位器。我不完全确定SGPIO与ZFS协同工作的效果如何。

电力供应

我以前用过海盗船860i,但它不稳定,在我身上死了。

对于这个系统来说,季节性白金860可能看起来有点过头了。但是,我没有对24个驱动器使用交错旋转。因此,所有驱动器都在一次启动,这导致峰值功率使用600+瓦。

电源模块有一个沉默模式,导致风扇只有在负载达到一定阈值时才旋转。由于电源风扇也有助于从机箱中去除暖空气,我已经禁用了这一功能,所以风扇一直在旋转。

驱动管理

我写了一个工具叫lsidrivemap在ASCII表中显示每个驱动器,反映机箱的物理布局。

数据是基于我的IBM 1015控制器的LSI 'megacli'工具的输出。

root@nano:~# lsidrivemap disk | SDR | SDS | SDT | SDQ | | sdu | SDV | SDX | SDW | | sdi | SDL | SDP | SDM | | SDJ | SDK | SDN | sdo | | SDB | SDC | sde | SDF | | sda | SDD | SDH | SDG |

这个布局是为我的机箱“硬编码”的,但Python脚本可以很容易地为你自己的服务器量身定制,如果你感兴趣的话。

它还可以显示同一表中磁盘驱动器的温度:

root@nano:~# lsidrivemap temp | 36 | 39 | 40 | 38 | | 36 | 36 | 37 | 36 | | 35 | 38 | 36 | 36 | | 35 | 37 | 36 | 35 | | 35 | 36 | 36 | 35 | | 34 | 35 | 36 | 35 |

这些温度表明顶部驱动器比其他驱动器运行得稍微热一些。一个未经证实的解释可能是三个120毫米的风扇不在风扇壁的中心。他们倾斜到墙的底部,所以他们可能倾向于较低的驱动海湾。

ZFS文件系统()

我使用ZFS作为存储阵列的文件系统。目前,还没有其他文件系统具有与ZFS相同的特性和稳定性。BTRFS甚至还没有完成。

ZFS的首要设计目标是确保数据完整性。ZFS检查和所有数据,如果使用RAIDZ或镜像,它甚至可以修复数据。即使它不能修复文件,它至少可以告诉您哪些文件损坏了。

ZFS主要关注的不是性能,但是为了获得最好的性能,它会大量使用RAM来缓存读和写。这就是为什么ECC内存如此重要。

ZFS还实现了RAID。因此,没有必要使用MDADM。我以前的文件服务器运行一个20 x 1TB驱动器的RAID 6。在这个新系统中,我用两个RAIDZ2 vdev创建了一个单独的池。

能力

厂商仍然宣传他们的硬盘在TB中的容量,而操作系统使用TiB。ob体育下载所以我使用的4 TB驱动器实际上是3.64 TiB。

系统裸存储总容量约为86tib。欧宝体育直播官网

我的zpool是vdev中“适当的”磁盘数量(2^n +奇偶校验^)。所以我有一个18盘RAIDZ2 VDEV(2^4+2)和一个6盘RAIDZ2 VDEV(2^2+2^)总共24个驱动器。

通常不建议在单个池中使用不同的VDEV大小,但是ZFS非常聪明和酷:它根据VDEV的大小在各个VDEV之间实现负载平衡。我可以用zpool iostat -v 5验证这一点,并实时见证这一点。与大型VDEV相比,小型VDEV只获得了一小部分数据。

这个选择让我的容量更少(71 TiB vs. 74 TiB RAIDZ3),而且使用18盘RAIDZ2 VDEV也有更多的风险。关于后一种风险,我在过去6年里一直在运行一个20盘的MDADM RAID6,没有发现任何问题。这并不能说明一切,但我愿意承担这种风险。

最初,我计划使用RAIDZ3,通过使用shift=9(512字节扇区),我将恢复VDEV中由于非最佳驱动器数量而损失的大部分空间。那我为什么改变主意了?因为我的4K驱动器上的shift=9池的性能恶化得如此之严重,以至于一个失败驱动器的恢复器将需要很长时间。


存储控制器

IBM 1015 HBA的价格合理,买三个,通常比只买一个带有SAS扩展器的HBA便宜。然而,它可能更便宜的搜索一个HP SAS扩展器,只使用一个M1015和节省一个PCIe插槽。

我没有像大多数人那样将控制器切换到“IT模式”。它们作为hba可以开箱即用,尽管启动系统可能需要稍长的时间,但我决定不这么麻烦。

这里的主要风险是,如果没有正确读取扇区,控制器如何处理驱动器。它可能会完全禁用驱动器,这对于ZFS来说是不必要的,通常也不是首选的。

存储性能

在一个机箱中有24个驱动器,看看您可以从系统中获得什么样的性能是很有趣的。

让我们从一个24个驱动器的RAID 0开始。我使用的驱动器的持续读写速度为160 MB/s,因此应该可以达到3840 MB/s或3.8 GB/s。那太棒了。

这是所有24个硬盘组成的RAID 0 (MDADM)的性能。

root@nano:/storage# dd if=/dev/zero of=test.bin bs=1M count=1000000 1048576000000 bytes (1.0 TB) copies, 397.325 s, 2.6 GB/s root@nano:/storage# dd if=test.bin of=/dev/null bs=1M 1048576000000 bytes (1.0 TB) copies, 276.869 s, 3.8 GB/s

你可能会说,说得很对,但如果你用276秒除以1tb,那更像是3.6 GB/s。我觉得还是很接近了。

这台机器将被用作文件服务器,稍微冗余一点就好了。那么,如果我们在所有驱动器的RAID6上运行相同的基准测试会发生什么呢?

root@nano:/storage# dd if=/dev/zero of=test.bin bs=1M count=100000 104857600000 bytes (105gb) copies, 66.3935 s, 1.6 GB/s root@nano:/storage# dd if=test.bin of=/dev/null bs=1M 104857600000 bytes (105gb) copies, 38.256 s, 2.7 GB/s

我对这些结果非常满意,特别是对于RAID6。但是,带有24个驱动器的RAID6感觉有点风险。因此,由于MDADM/Linux中不支持三奇偶校验磁盘RAID,所以我使用ZFS。

牺牲了性能,我决定(正如我前面提到的)在这些4K扇区驱动器上使用shift=9,因为我获得了大约5 TiB的存储空间。欧宝体育直播官网

这是一个shift=9的RAIDZ3 VDEV中24个驱动器的性能。

root@nano:/storage# dd if=/dev/zero of= ashhift9 .bin bs=1M count=100000 104857600000 bytes (105gb) copies, 97.4231 s, 1.1 GB/s root@nano:/storage# dd if= ashhift9 .bin of=/dev/null bs=1M 104857600000 bytes (105gb) copies, 42.3805 s, 2.5 GB/s

与其他结果相比,写性能下降了,尽管还不算太糟。

这是18盘RAIDZ2 + 6盘RAIDZ2 zpool (shift=12)的写性能:

root@nano:/storage# dd if=/dev/zero of=test.bin bs=1M count=1000000 1048576000000 bytes (1.0 TB) copies, 543.072 s, 1.9 GB/s root@nano:/storage# dd if=test.bin of=/dev/null bs=1M 1048576000000 bytes (1.0 TB) copies, 400.539 s, 2.6 GB/s

正如您可能注意到的那样,写性能比shift=9或shift=12 RAIDZ3 VDEV更好。

最后我选择了使用18盘RAIDZ2 + 6盘RAIDZ2的设置,因为性能更好,并且符合ZFS的标准。


我没有对随机I/O性能进行基准测试,因为它与这个系统无关。使用ZFS, VDEV的随机I/O性能相当于单个驱动器的性能。

引导驱动器

我使用的是两个关键M500 120GB SSD驱动器。它们被配置在RAID1 (MDADM)中,我在它们上面安装了Debian Wheezy。

起初,我打算将一部分容量用于与ZFS结合使用的缓存目的。然而,实际上没有必要这样做。事后看来,我也可以使用非常便宜的2.5英寸硬盘(类似于我以前的NAS),这将比一个M500的成本还要低。ob体育下载

更新2014-09-01:实际上,我重新安装了Debian,并在两台m500上保留了大约50%的空闲空间欧宝体育直播官网,并将这些空间放在一个分区中。这些分区已经作为L2ARC缓存提供给ZFS池。我这样做是因为我可以,但另一方面,我想知道我是否真的只是更快地消耗我的ssd。

更新2015-10-04:我不知道为什么我的ssd会因为L2ARC而磨损,所以我把它们从池中删除了。对我来说绝对没有好处。

组网(更新2017-03-25)

电流:已安装Mellanox MHGA28-XTC ib卡。我使用InfiniBand over IP,所以InfiniBand卡实际上是一个更快的网卡。我与另一台服务器有点对点连接,我没有ib交换机。

我从这张卡获欧宝体育直播官网得了大约6.5 Gbit的数据,这甚至还没有接近理论性能极限。然而,这转化为一个恒定的750 MB/s文件传输速度在NFS上,这是惊人的。

使用Linux绑定和四端口以太网适配器,我只能获得400 MB/s,传输速度波动很大。

原:也许我将来会投资10gb以太网或InfiniBand硬件,但目前我选择了四端口千兆适配器。使用Linux绑定,我仍然可以获得450 + MB / s数据传输,这足以满足我的需求。

四口卡是除了两个板载千兆网卡之外的。我使用其中一个机载端口进行客户端访问。四口卡上的四个端口都属于不同的vlan,客户端设备无法访问。

存储将通过NFS和SMB进行访问。客户端将通过一个机载千兆局域网接口访问存储。

保持冷静和安静

将驱动器温度保持在可接受的水平是很重要的,24个驱动器放在一起会增加过热的风险。

底盘配备齐全,以保持驱动器冷却,三个120mm风扇和两个强大的80mm风扇,所有支持PWM(脉宽调制)。

问题是默认情况下,BIOS以过低的速度运行风扇,以使驱动器保持在合理的温度。我想把硬盘温度保持在40摄氏度左右。欧宝体育直播官网但我也想把噪音保持在合理的水平。

我写了一个python脚本叫做storagefancontrol它会根据最热的驱动器的温度自动调整风扇速度。

联合包裹

我在运行一个HP N40L微服务器作为我的防火墙/路由器。我的APC backup - ups RS 1200 LCD(720瓦)通过USB连接到这台机器上。我正在使用apcupsd监控UPS,如果电池电量不足就关闭服务器。

所有服务器,包括我的新构建,都在网络模式下运行apcupsd,并与N40L交谈,以了解电源是否仍然正常。

保持合理的功耗

这些是电力使用数据。

96瓦,圆盘向下旋转。176瓦,磁盘旋转但空闲。253瓦,磁盘写入。

编辑2015-10-04:我确实有一个未解决的问题,就是硬盘一直在转,即使盒子上的所有服务都被杀死了,包括Cron。所以它的配置使驱动器一直在旋转。/结束编辑

但最重要的数据是,如果断电,它将使用0瓦。只有在必要时,系统才会通过唤醒网络(wake-on-lan)开启。它大部分时间都是关机的,比如我工作或睡觉的时候。

成本

这套系统花了我大约6000欧元。欧宝体育直播官网以下所有费用均以欧元计算,含税(21%)。

描述 产品 价格 总计
底盘 瑞维4U 24舱存储底盘RV-4324-01A 554 1 554
CPU 英特尔至强E3-1230V2 197 1 197
Mobo 超微型计算机X9SCM-F 157 1 157
内存 金士顿DDR3 ECC KVR1333D3E9SK2/16G 152 1 152
事业单位 AX860i 80Plus白金 175 1 175
网卡 NC364T PCI快速四端口千兆 145 1 145
HBA控制器 IBM serveraid m1015 118 3. 354
ssd 关键的M500 120GB 62 2 124
风扇 Zalman FB123 Casefan支架+ 92mm风扇 7 1 7
ob体育下载 日立3.5 4TB 7200RPM (0S03356) 166 24 3984
SAS电缆 25 6 150
风扇电缆 6 1 6
Sata-to-Molex 3、5 1 3、5
莫仕分配器 3. 1 3.
6012

关闭的话

如果你有任何问题或意见,可以自由地留下评论,我很感激。欧宝体育直播官网

评论

Baidu
map