示例硬件/主机:
- 现代 64 核 CPU,128GB 内存
- 8 个美光 Pro 15.36TB u.2 SSD
- 每个设备通过专用 Oculink 连接 SSD(无背板或 PCIe 共享)
- Ubuntu 20.04
用例:
- 数百台主机的备份服务器。备份是通过增量 rsync 执行的,首先是来自远程主机的 rsync,然后是本地副本(使用 cp)以创建快照。- - - 数以百万计的小文件(电子邮件、html 文件等)是典型的备份。
- 在任何时候,服务器都可以处理 50 个传入的 rsync(cpu 轻加密算法和无压缩)
- 冗余虽然是有利的,但不是必需的。最多单个驱动器故障。
- 文件轮换所需的极端本地 i/o
- rsync 和硬链接差异复制('rsnapshot')的使用不能改变,这是已部署并投入生产的备份软件所要求的 - 所以 BTRFS 快照是不可能的。
我提出了两种可能的解决方案:
- 分片我的数据存储,没有冗余。BTRRFS 中基于每个驱动器的格式,并使用内联 LZO 压缩进行安装。
- 优点:简单轻量,无raid管理开销
- 优点:独立故障,在磁盘故障时只有一小部分备份丢失,可以快速重新建立
- 优势:获得的最大总容量
- 缺点:容量管理的复杂性——没有一个大容量意味着战略性地平衡特定磁盘上的数据以充分利用它们
- 缺点:磁盘故障确实会丢失数据
- 一个大卷跨所有磁盘的 ZFS RAIDz1/2
- 优点:1或2个磁盘故障冗余
- 优点:易于管理,所有内容都集中在一个巨大的体积中 - 空间充足。
- 缺点:损失 1 或 2 个磁盘的容量
问题:与选项 1 相比,是否存在显着的 ZFS RAID 管理开销会降低阵列的性能?- 在他设计的每个级别以最大限度地提高操作系统和 SSD 之间的磁盘吞吐量的配置中,以每秒 10 千兆比特为单位,ZFS RAID 管理的开销是否会导致性能显着下降和/或 CPU 或内存过载?
谢谢你。
使用 ZFS。使用 LZ4 压缩。适当地调整您的 ZFS,因为默认值对于那么多 NVMe 驱动器来说并不理想。
使用您的实际工作负载进行测试和基准测试。我们无法告诉您它将如何执行。
RAIDZ 开销不是这个问题。
CPU 的微基准测试会自动为您的给定平台选择最快的。
查看ZFS 模块参数:
由于 BTRFS RAID5 不被认为是 100% 稳定的,所以我不建议将它用于备份机器。此外,对于这些大型 SSD,我会使用 RAID6 而不是 RAID5。
所以我建议使用带有 XFS 的 MD RAID6,或者作为 Ubuntu 机器,使用带有 lz4 压缩的 ZFS RAIDZ2。
编辑:我根本不考虑使用单驱动器 BTRFS 文件系统作为有效的备份方法。在此配置中,任何单个驱动器故障都将导致(部分)数据丢失。我强烈建议您使用带有 LZ4 压缩的 RAIDZ2,或者为了获得最佳性能,使用带有 XFS 的 MD RAID6(但会丢失压缩和校验和)。