HPC SSD 环境中 ZFS RAIDz1/2 的开销是多少?

HPC SSD 环境中 ZFS RAIDz1/2 的开销是多少?

示例硬件/主机:

  • 现代 64 核 CPU、128GB 内存
  • 8 个 Micron Pro 15.36TB u.2 SSD
  • 每个设备通过专用的 Oculink 连接 SSD(无背板或 PCIe 共享)
  • Ubuntu 20.04

用例:

  • 数百台主机的备份服务器。备份通过增量 rsync 执行,首先涉及来自远程主机的 rsync,然后是本地副本(使用 cp)以创建快照。 - - - 数百万个小文件(电子邮件、html 文件等)是备份的典型特征。
  • 服务器可能同时处理 50 个传入的 rsync(CPU 轻量加密算法且无压缩)
  • 冗余虽然有好处,但不是必需的。最多只有一个驱动器发生故障。
  • 文件轮换需要极端的本地 i/o
  • rsync 和硬链接差异复制(“rsnapshot”)的使用无法改变,这是已部署并投入生产的备份软件所需要的 - 因此 BTRFS 快照是不可能的。

我想到了两个可能的解决方案:

  1. 将我的数据存储分片,无冗余。以每个驱动器为基础,在 BTRRFS 中格式化,并使用内联 LZO 压缩进行安装。
  • 优点:简单轻量,无 raid 管理开销
  • 优点:隔离故障,磁盘发生故障时,只有一小部分备份会丢失,可以快速重建
  • 优点:获得最大总容量
  • 缺点:容量管理的复杂性 - 没有一个大卷意味着需要在特定磁盘上战略性地平衡数据,以最大限度地利用它们
  • 缺点:磁盘故障确实会丢失数据
  1. 所有磁盘上的 ZFS RAIDz1/2 用于一个大卷
  • 优点:1 或 2 个磁盘故障冗余
  • 优点:易于管理,所有内容都集中在一个巨大的卷中 - 空间充足。
  • 缺点:损失 1 或 2 个磁盘的容量

问题是:与选项 1 相比,ZFS RAID 管理开销是否会显著降低阵列的性能? - 在设计时,其在每个级别都旨在最大化操作系统和 SSD 之间的磁盘吞吐量(每秒数十 GB),ZFS RAID 管理的开销是否会导致性能显著下降和/或 CPU 或内存过载?

谢谢。

答案1

使用 ZFS。使用 LZ4 压缩。适当调整您的 ZFS,因为默认设置对于许多 NVMe 驱动器来说并不理想。

使用您的实际工作量进行测试和基准测试。我们无法告诉您其性能如何。

RAIDZ 开销不是这个问题。

CPU 的微基准测试会自动为您的给定平台选择最快的速度。

查看ZFS 模块参数

在此处输入图片描述

答案2

由于 BTRFS RAID5 并非 100% 稳定,因此我甚至不建议将其用作备份机器。此外,对于这些大型 SSD,我会使用 RAID6 而不是 RAID5。

因此,我建议使用带有 XFS 的 MD RAID6,或者对于 Ubuntu 机器,使用带有 lz4 压缩的 ZFS RAIDZ2。

编辑:我只是不认为使用单驱动器 BTRFS 文件系统是一种有效的备份方法。在此配置中,任何单个驱动器故障将导致(部分)数据丢失。我强烈建议您使用带 LZ4 压缩的 RAIDZ2,或者为了获得最佳性能,使用带 XFS 的 MD RAID6(但会丢失压缩和校验和)。

相关内容