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

Sve*_*nnD 29 performance zfs storage write

我们将有一台机器在工作,在最佳性能下,每小时应该能够推送50(“写磁头”)x 75GB的数据。这是约 1100MB/s 写入速度的峰值性能。为了从机器上得到它,它需要两条 10GBi 线。我的问题是什么样的服务器+技术可以处理/存储这样的数据流?

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

基于优秀回复的一些补充:

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

sho*_*hok 23

对于如此极端的写入速度,我建议不要使用 ZFS、BTRFS 或任何 CoW 文件系统。我会使用 XFS,它在大型/流传输上非常有效。

有很多缺失的信息(你打算如何访问这些数据?读取速度重要吗?你打算写大块吗?等等)给你具体的建议,但一些一般性的建议是:

  • 在原始分区或胖 LVM 卷上使用 XFS(不要使用瘦卷)
  • 调整 ioblock 大小以有效应对大数据写入
  • 使用带有掉电保护写缓存的硬件 RAID 卡;如果使用硬件 RAID 没有问题,请使用软件 RAID10 方案(避免任何基于奇偶校验的 RAID 模式)
  • 使用两个 10Gb/s 网络接口和 LACP(链路聚合)
  • 确保启用巨型帧
  • 当您要使用 NFS 时,请考虑使用pNFS (v4.1) 以提高可扩展性
  • 当然还有很多其他的东西......

  • 谢尔比眼镜蛇是“老技术”,但它仍然可以将大多数汽车熏出大门。ZFS 从来没有被设计为一个高性能的文件系统,尽管可以对其进行调整,使其在特定工作负载下的速度非常快,但它并不是默认设计的。它需要更多的硬件、更多的内存和大量的调整,才能通过一些文件挂载和格式化选项来击败 XFS 免费为您提供的东西。 (6认同)
  • 此外,如果使用 XFS,请将日志放在 SSD RAID1 对上。 (3认同)
  • 我认为 Linux 上的 XFS 是旧技术。OP 可以轻松地在硬件 RAID 上运行 ZFS。我推荐 ZFS 的原因是允许 SLOG 以低延迟吸收传入的 NFS 同步写入,而无需全 SSD 池。 (3认同)
  • 如果使用带有断电保护回写缓存的 RAID 卡,日志可以留在主阵列上:写缓存将吸收并合并日志写入。此外,根据 OP 的描述,与数据流相比,元数据负载应该相当低。 (2认同)
  • ZFS 可以正常工作,并且可以比 XFS 快得多。当然,您需要正确设置它,并为 ZIL 和 SLOG 配备 RAM 和 SSD,但这可能与所需的速度无关。 (2认同)

eww*_*ite 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
Run Code Online (Sandbox Code Playgroud)

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

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

对于 NFS 工作负载,写入将合并并刷新到旋转磁盘。在 Linux 下,我们会调整它以每 15-30 秒刷新一次。旋转磁盘可以处理这个问题,如果这些数据是可压缩的,可能会受益更多。

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

  • ZFS 能够满足您的要求。第一个问题是确保您的实际*硬件* 能够做到这一点。如果您不小心,很容易在适配器或背板级别意外地创建比 1GB/秒更紧的瓶颈。确保你做对了那部分,然后询问如何避免 ZFS 方面的问题。 (5认同)