写入速度要求:1.1GB / s可能吗?


29

我们将拥有一台正在运行的机器,该机器在达到最佳性能时,应该能够每小时推送50个(“写磁头”)x 75GB的数据。那是约1100MB / s写入速度的最高性能。要从计算机上获得该数据,它需要两条10GBi线路。我的问题是什么样的服务器+技术可以处理/存储这种数据流?

当前,对于数据存储,我们使用ZFS,尽管写入速度从来都不是问题。(我们甚至没有接近这些速度)ZFS(Linux上的zfs)是否可以选择?我们还需要存储大量数据,“ IT指南”建议总计在50-75 TB之间。因此,除非我们想为我们的长子提供孩子,否则可能不可能全部都是SSD。

根据出色的答复,添加了一些内容:

  • 高峰期间最大为50x75GB /小时,少于24小时(最有可能是<6小时)
  • 我们预计这种情况不会很快发生,很有可能我们将以每小时5-10x75GB的速度运行
  • 这是pre-alpha机器,但是应该满足要求(即使有很多问号在起作用)
  • 我们将使用NFS作为从机器到服务器的连接
  • 布局:生成机->存储(这一个)->(安全团队6)->计算集群
  • 因此读取速度不是必需的,但是从计算群集中使用它会很好(但这是完全可选的)
  • 最有可能是大数据文件(不是很多)

8
mb是megaBIT还是megaByte?请使用MBi MiBi MByte或MB声明字节。另外2条10 gbit线路将为您提供2400 MByte / s
mzhaase

1
现在更加清楚了,谢谢。还有更多问题。峰值性能为1.1 GBps,但平均水平是多少?这些峰值持续多长时间?您愿意接受的最低连续产量是多少?是写一个大文件还是多个小文件?将使用哪种协议?您想要哪种冗余?听起来像某种医疗或科学设备,您可以链接数据表吗?由于您已经在使用ZFS,因此您可以与ZFS专业存储公司联系,该公司有两家。他们可以为您选择一个系统。
mzhaase

2
这真的必须在一台机器上完成吗?对多台计算机进行负载平衡可以简化此过程。您可以使用共享存储或稍后合并数据。在AWS上,您可以使用ELB,自动缩放,许多EC2实例和EFS,但这听起来像您需要硬件。您的问题不能很好地描述用例。
蒂姆(Tim)

1
请注意,您不需要“峰值”性能-您需要1.1GBpS的“持续”性能
jsbueno

1
@jsbueno您是正确的,但是我们可以选择激活多少个写磁头,因此“ 1GB / s”是“最坏的情况”,但是考虑到它可能需要数小时才能保持性能。
SvennD

Answers:


18

绝对...如果架构正确,则Linux上的ZFS是可能的。在许多情况下,ZFS设计不佳,但是做得很好,可以满足您的要求。

因此,主要决定因素是您如何连接到该数据存储系统。是NFS吗?CIFS?客户端如何连接到存储?还是在存储系统完成了处理等工作?

填写更多详细信息,我们可以查看是否可以提供帮助。

例如,如果这是NFS并具有同步挂载,那么绝对有可能在Linux上扩展ZFS以满足写性能需求,并仍然保持长期存储容量要求。数据可压缩吗?每个客户端如何连接?千兆以太网?


编辑:

好吧,我会咬:

这是一个大约17,000美元至23,000美元的规格,适合2U机架空间。

HP ProLiant DL380 Gen9 2U Rackmount
2 x Intel E5-2620v3 or v4 CPUs (or better)
128GB RAM
2 x 900GB Enterprise SAS OS drives 
12 x 8TB Nearline SAS drives
1 or 2 x Intel P3608 1.6TB NVMe drives

使用硬件RAID6或ZFS RAIDZ2,此设置将为您提供80TB的可用空间。

由于重点是基于NFS的性能(假定同步写入),因此我们可以使用P3608 NVMe驱动器(带条纹的SLOG)轻松吸收所有这些。它们可以连续写入的速度达到3GB / s,并且具有足够高的耐久等级,可以连续处理您描述的工作负载。在SLOG用例下,可以轻松地过度配置驱动器以添加一些保护。

使用NFS工作负载时,写入将合并并刷新到旋转磁盘中。在Linux下,我们将其调整为每15-30秒刷新一次。旋转磁盘可以处理此问题,并且如果此数据是可压缩的,则可能会受益更多。

可以通过另外4个开放的PCIe插槽和一个用于双端口10GbE FLR适配器的附加端口来扩展服务器。因此,您具有网络灵活性。


谢谢ewwwite; 我们将使用NFS,并且只有一个客户端(计算机)(可选),我们会将其用作集群中的读取设备。(但是什么处理或如何处理是未知的)我们在RAID 6存储服务器上有可用的“空间”。
SvennD

@SvennD如果它是NFS并带有同步挂载,那么绝对有可能在Linux上扩展ZFS以满足写性能需求并仍然保持长期存储容量要求。数据可压缩吗?那是另一个因素。但是,这超出了我可以免费在在线论坛上提供的建议的范围。我的联系信息可在ServerFault配置文件中找到。如果您需要进一步讨论,请与我联系。
ewwhite

5
ZFS能够满足您的要求。第一个问题是要确保您的实际硬件能够胜任。如果您不小心的话,在适配器或背板级别意外地创建一个瓶颈,其瓶颈会比1GB /秒更容易。确保您正确理解了那部分内容,然后询问如何避免ZFS方面的问题。
Jim Salter

@SvennD使用基本设计规范和粗略成本进行编辑。
ewwhite

我想我建议在HP服务器上使用Oracle X6-2L。Oracle服务器具有四个现成的10GB网络端口。根据我的经验,HP因使用ILOM,许可ILOM软件等而使您ni不休,以至于HP服务器比同等的Oracle产品贵。我的经验还告诉我,Oracle机器的性能将优于HP机器-并且比HP机器具有@JimSalter提到的那些硬件瓶颈之一的可能性要小得多。是的,从Oracle购买可能会很痛苦。
安德鲁·亨勒

23

对于这样的极高写入速度,我建议不要使用ZFS,BTRFS或任何CoW文件系统。我将使用XFS,它在大型/流传输中非常高效。

有很多丢失的信息(您打算如何访问这些数据?读取速度很重要?您打算以大块写入?等)为您提供具体建议,但是一些常规建议是:

  • 在原始分区或大型LVM卷上使用XFS(请勿使用精简卷)
  • 调整ioblock的大小,以有效应对大量数据写入
  • 使用具有Powerloss保护的写缓存的硬件RAID卡;如果毫无疑问要使用硬件RAID,请使用软件RAID10方案(避免使用任何基于奇偶校验的RAID模式)
  • 使用两个10Gb / s网络接口和LACP(链路聚合)
  • 确保启用巨型帧
  • 在使用NFS时,请考虑使用pNFS(v4.1)来提高可伸缩性
  • 当然还有很多其他事情...

3
另外,如果使用XFS,则将日志放在SSD RAID1对上。
TB

2
如果将RAID卡与受功率损耗保护的写回缓存一起使用,则日志可以保留在主阵列上:写缓存将吸收并合并日志写的内容。此外,根据OP的描述,与数据流相比,元数据负载应相当低。
shodanshok

2
ZFS可以正常工作,并且可以比XFS更快。当然,您需要正确设置它,并为ZIL和SLOG提供RAM和SSD,但是对于所需的速度,这可能并不重要。
John Keates

3
我将Linux上的XFS视为旧技术。OP可以在硬件RAID上轻松运行ZFS。我建议使用ZFS的原因是允许SLOG以低延迟吸收传入的NFS同步写入,而无需使用全SSD池。
ewwhite

6
谢尔比眼镜蛇是“旧技术”,但它仍然可以将大多数汽车冒出大门。ZFS从未被设计成一开始就作为高性能的文件系统,尽管可以对其进行优化以使其在特定的工作负载下达到极快的速度,但这并不是默认情况下设计的。它将需要更多的硬件,更多的内存以及大量的调整,才能使其胜过XFS通过一些文件安装和格式化选项免费为您提供的功能。
TB

4

25Gbps以太网已经成为主流,而基于PCIe的NVMe可以轻松实现这一流量。

作为参考,我最近使用四个常规的双至强服务器(在这种情况下为HPE DL380 Gen9)构建了一个小型的“日志捕获”解决方案,每个服务器都有6个NVMe驱动器,我在Infiniband上使用了IP,但那些25 / 40Gbps NIC却是相同的而且我们每台服务器最多可捕获8GBps的带宽。

基本上,它并不便宜,但如今已经非常可行。


1
是的,但是如何在NVMe上存储〜50TB?旋转器很便宜,所以我们如何合并以保持最高速度...
SvennD

好一点,实际上,您在一台服务器上只能获得4 x 4TB,我使用多台服务器,大概不能吗?否则,R10中的负载仅为2.5“ 10krpm
Chopper3'1

不需要的更像是它,我们不需要那些规格,只需进入大门,我就不需要多台服务器开销的噩梦。仅一台机器。R10足够快吗?(是否袭击了硬件?)
SvennD

我们有一个Windows 2012R2盒,它是从未使用的备用套件中构建的,我们将其用作NAS,内部有6个400GB SAS SSD,8个D2600架子,每个架子上有25个900GB的10k SAS磁盘和一个D6000带有70个4TB磁盘的机架,可以轻松地淹没10Gbps的NIC-尚未尝试使用25Gb的NIC尚待尝试。
Chopper3

1
@MSalters有许多8/10 TB PMR(非SMR)驱动器,传输速率在200 MB / s的范围内。RAID10和RAID6中的12或16驱动器阵列应轻松超过所需的1.1 GB / s传输速度。
shodanshok

2

听起来没什么大不了的。我们当地的硬件供应商将此产品作为标准产品 -显然,它可以在CCTV录制模式下保持1400MB / s的速度,这应该比您的峰值要求难。

(链接是默认的12GB配置,但他们指出20x4TB也是一个选项。使用此特定型号的服务器没有任何个人经验。)


4
好吧,“标准产品”是指具有20 x 600gb sas 15k和3 x企业ssd的“黑色软件盒”。这是一个公平的报价,我们得到了一家类似的硬件供应商,但是对我来说,基本上免费的东西(ZFS)的许可费用让我发了疯。感谢您共享构建!(链接不错)
SvennD

2

对于现代硬件,以1100MB / s的顺序写入速度不是问题。有趣的是,我的家用设置包括8x5900 RPM笔记本电脑驱动器,2x15000 RPM驱动器和2x7200 RPM驱动器,可提供300 MB / s的16GB一次性有效负载。

该网络是具有光纤电缆的10GbE,以太网上的9000 MTU,应用程序层是Samba 3.0。该存储在raid50中配置,在三个4驱动器raid5卷上具有三个条带。控制器是LSI MegaRAID SAS 9271-8i,每个端口的速度高达6Gb / s(我还有一个较慢的端口倍增器)。

与经验丰富的系统管理员联系,他们应能够准确告诉您哪些控制器和驱动器将满足您的要求。

我认为您可以尝试使用任何12Gb / s控制器并配置两个8个7200 RPM驱动器的镜像条带(几乎任何驱动器都应该这样做)。启动3-4个TCP连接以使链接饱和,如果一对10GbE卡无法处理,请使用四张卡。


2

切线,但考虑使用InfiniBand而不是双10GbE链接。您可以以相当便宜的价格获得56Gbps Infiniband卡,或者以不多的价格获得100Gbps的卡,在Linux上,可以很容易地将NFS与RDMA结合使用IB,这将为您提供极低的延迟和接近理论的线速吞吐量(如果您的基础存储可以处理它)。您不需要开关,只需两张InfiniBand卡和一条直接连接电缆(如果需要更长的距离,则可以使用InfiniBand光纤电缆)。

像MCB191A-FCAT这样的单端口Mellanox 56Gbps卡(8x PCIe 3.0)不到700美元,而2米长的铜直连电缆则要80美元。

在所有用例中,性能通常会给水带来10GbE的损失。毫无缺点,除非您需要从无法完全使用InfiniBand的许多不同客户端访问服务器(即使那样,Mellanox的交换机也可以将10GbE和40GbE桥接到IB,但这是一项更多的投资,当然)。


1

可以使用ZFS进行此操作,但是,请考虑使用FreeBSD,因为FreeBSD具有更快的网络堆栈。一台机器上可能允许100 GBit。

1100 MBps的声音听起来很多,但是您可以通过仅使用常规硬盘驱动器来实际实现此目的。您说需要75 TB的空间,因此可以在镜像中使用24个8 TB的硬盘驱动器。这样一来,单个驱动器的写入速度将提高12倍,驱动器读取速度将提高24倍。由于这些驱动器的写入速度超过100 MBps,因此应该可以轻松处理带宽。请确保不要使用SMR驱动器,因为它们的写入速度会大大降低。

ZFS确实为每个块创建校验和。这是单线程实现的。因此,您应该拥有一个时钟频率相当快的CPU来不会阻塞。

但是,确切的实现细节在很大程度上取决于细节。


12
“ FreeBSD具有更快的网络堆栈” [需要引用]
Jim Salter

究竟。Linux非常强大。
ewwhite

1

我们已将10G NIC固定在其保险丝客户端上,将数据转储到Gluster群集。从3.0开始,您将不敢相信它会达到的性能需要一点点调整。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.