Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

适用于 HPC BeeGFS 存储的 Dell EMC Ready 解决方案的功能

Summary: HPC 和 AI 创新实验室, BeeGFS 高性能存储解决方案, 顺序读取和写入性能, 随机读取和写入性能, PowerEdge R740xd, PowerEdge R640, PowerSwitch S3048-ON, Mellanox SB7890, BeeGFS v7.1.3, HPC and AI Innovation Lab, HPC, BeeGFS High Performance Storage Solution, IOzone, Sequential Read and Write Performance, Random Read and Write Performance ...

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Dell EMC HPC 和 AI 创新实验室的 Nirmala Sundararajan 于 2019 年 11 月撰写的文章

Cause

适用于 HPC BeeGFS 存储的 Dell EMC Ready 解决方案的功能

Resolution

目录

  1. 简介
  2. StorageBench — 比较不同 RAID 配置的性能
  3. StorageBench — 识别有缺陷或配置错误的存储目标
  4. 结论和未来的工作
     

简介

此博客讨论了最近发布的 适用于 HPC BeeGFS 存储的 Dell EMC 就绪型解决方案 的主要功能。这是该系列中第三篇关于 BeeGFS 高性能存储解决方案的博客。  第一个博客宣布发布该解决方案。第二篇博客讨论了 适用于 HPC BeeGFS 存储的 Dell EMC 就绪型解决方案的可扩展性。它提供了有关基本配置、灵活的可扩展配置以及各种配置的实际测量顺序读/写性能的详细信息,这表明解决方案中的服务器数量可扩展性是线性的。当前的博客将重点介绍使用“StorageBench”(BeeGFS 的内置存储目标基准)。

BeeGFS 是一种开放源代码文件系统,可从 www.beegfs.io 下载。它是一个并行文件系统,可跨多个存储目标分发数据。它是一种软件定义的存储,可将逻辑文件系统与底层存储硬件分离,使用户能够定义数据的存储方式和位置。文件系统软件包括企业级功能,如高可用性、配额强制实施和访问控制列表。BeeGFS 的主要特点包括易用性、可扩展性和灵活性。  它的易用性源于这样一个事实:所有服务器端组件都是用户空间守护程序,而客户端是内核模块,不需要内核本身的任何修补程序。所有 BeeGFS 组件均可安装和更新,而无需重新启动服务器。因此,我们可以将客户端和服务器添加到现有系统,而不会造成任何停机。通过添加服务器并提高文件系统的性能和容量,可以在此处链接的博客中进行更多扩展。BeeGFS 支持多个 Linux 发行版,旨在与任何符合 POSIX 标准的本地文件系统配合使用。BeeGFS 还支持在同一服务器上运行给定服务的多个实例。

适用于 HPC BeeGFS 存储的 Dell EMC 就绪型解决方案利用了 BeeGFS 文件系统的所有关键功能,并经过精心设计,可实现高性能。该解决方案使用 PowerEdge R740xd 服务器来存储和提供/处理元数据和数据。  每台 PowerEdge R740xd 服务器都有 24 个 1.6 TB 英特尔 P4600 NVMe SSD,被视为驱动器技术的第二次重大飞跃,SSD 是第一个。  在 HPC 环境中,暂存空间通常是一个限制因素。它可能太小或太慢。  Dell EMC Ready Solutions for HPC BeeGFS Storage 旨在用作暂存解决方案,并使用 BeeGFS 文件系统提供暂存存储。

BeeGFS 包括两个内置基准测试工具,可分别帮助描述或评估网络或存储 NetBench 和 StorageBench 的特征。启用 NetBench 模式后,服务器将放弃收到的写入请求,而不是写入数据。同样,如果存在读取请求,而不是从底层文件系统读取,则只会将内存缓冲区发送到客户端。NetBench 模式旨在独立于底层磁盘测试网络流吞吐量。另一方面,StorageBench 旨在独立于网络性能测量底层文件系统的流吞吐量。StorageBench 是不使用网络的存储目标基准。storage-bench 命令只需将请求发送到存储目标即可开始写入/读取数据。这样一来,我们就消除了网络的影响。如果网络性能理想,我们从存储台获得的输出是系统可以实现的最佳性能。此博客说明了如何使用 StorageBench 比较不同存储目标的性能,从而确定有缺陷或配置错误的目标。


StorageBench — 比较不同 RAID 配置的性能

StorageBench 不使用已装载的文件系统。当我们运行 StorageBench 时,每个文件只有一个目标。Storagebench 在系统上的每个存储目标上创建一个目录,其中创建的测试文件等于测试线程数。数据直接流式传输到此位置,以显示每个存储目标可用的低级别吞吐量。如果没有任何网络通信,则无法模拟文件条带化。因此,存储基准测试结果与禁用条带化的客户端 IO 相当。当运行实际基准测试时,如果采用默认条带化模式,文件将跨 4 个存储目标进行条带化。 

为了测试不同的存储目标,使用了博客中介绍的有关 Dell EMC BeeGFS 存储解决方案可扩展性的中小型配置。  这两种配置都具有在 RAID 1 中配置的相同数量的元数据目标。它们在存储目标的 RAID 配置上有所不同。虽然小型设置具有存储,目标配置在 6 个驱动器的 RAID 0 中,但中型配置具有在 RAID 10(共 6 个驱动器)中配置的存储目标。在中小型设置上配置的存储目标如下所示:

 

表 1 测试式配置
配置 中 - 用于存储目标的 RAID 10 小型 — 用于存储目标的 RAID 0
元数据目标的数量 6 6
元数据服务的实例数 6 6
存储服务器数量 5 2
存储目标的数量 22 10
每台服务器的存储服务数量 4 4
每个 NUMA 分区的存储服务数量  2 2
每个存储服务实例的目标数  2 2

提醒:上述中型设置配置仅用于测试使用 StorageBench 工具在不同 RAID 配置中配置的存储目标的吞吐量。


StorageBench 写入基准测试 — 在 RAID 0 中配置了存储目标的小型配置上


存储基准测试使用 beegfs-ctl 工具启动和监视。beegfs-utils 软件包提供了 beegfs-ctl 命令行工具,可用于运行存储目标基准测试。以下示例对 IO 数据块大小为 512 KB 的所有 BeeGFS 存储服务器的所有目标启动写入基准测试,每个目标使用 16 个线程,每个目标将 200 Gb 数据写入自己的文件。

[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16
写入存储基准测试已启动。
您可以使用 beegfs-ctl 的 --status 参数查询状态。
服务器基准测试状态:
正在运行:     10

“Running:10 英寸输出表示系统中总共配置了 10 个存储目标。

要查询所有目标的基准测试状态/结果,可以执行以下命令:

[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --status
Server 基准测试状态:
完成:    10
写入基准测试结果:
最小吞吐量:            4692435 KiB/s 节点 ID: stor1-numa0-2 [ID:6], targetID:50
最大吞吐量:            5368537 KiB/s 节点 ID: meta-stor-numa1-2 [ID:2], targetID:48
平均吞吐量:            4907091 KiB/s
聚合吞吐量:     49070915 KiB/s

将详细信息添加到上述命令中,显示所有目标及其各自吞吐量的列表。

[root@meta-stor ~]# beegfs-ctl --storagebench --alltargets --status --verbose
Server 基准测试状态:
完成:    10
写入基准测试结果:
最小吞吐量:            4692435 KiB/s 节点 ID: stor1-numa0-2 [ID:6], targetID:6
最大吞吐量:            5368537 KiB/s 节点 ID: meta-stor-numa1-2 [ID:2], targetID:2
平均吞吐量:            4907091 KiB/s
聚合吞吐量:     49070915 KiB/s
列出所有目标:
1 5368477 KiB/s 节点 ID:meta-stor-numa1-1 [ID:1]
2 5368537 KiB/s 节点 ID:meta-stor-numa1-2 [ID:2]
3 4706368 KiB/s 节点 ID: stor1-numa0-1 [ID:3]
4 4896077 KiB/s 节点 ID: stor1-numa1-1 [ID:4]
5 4872876 KiB/s 节点 ID: stor1-numa1-2 [ID:5]
6 4692435 KiB/s 节点 ID: stor1-numa0-2 [ID:6]
7 4879054 KiB/s nodeID: stor2-numa1-2 [ID:7]
8 4864737 KiB/s 节点 ID: stor2-numa1-1 [ID:8]
9 4696152 KiB/s nodeID: stor2-numa0-1 [ID:9]
10 4726202 KiB/s 节点 ID: stor2-numa0-2 [ID:10]

输出中的推理:

RAID 0 中配置的每个存储目标的平均吞吐量为 5.02 GB/s。  


StorageBench 写入基准测试 — 在 RAID 10 中配置了存储目标的中型配置上

以下示例对 IO 数据块大小为 512 KB 的所有 BeeGFS 存储服务器的所有目标启动写入基准测试,每个目标使用 16 个线程,每个目标将 200 Gb 数据写入自己的文件。

[root@node001 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16
写入存储基准测试已启动。
您可以使用 beegfs-ctl 的 --status 参数查询状态。
服务器基准测试状态:
正在运行:     22

将详细信息添加到上述命令中,显示所有目标及其各自吞吐量的列表。

[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose
Server 基准测试状态:
完成:    22
写入基准测试结果:
最小吞吐量:            2705987 KiB/s 节点 ID: node006-numa0-1 [ID:19],targetID:1
最大吞吐量:            3364311 KiB/s 节点 ID: node001-numa1-1 [ID:1], targetID:1
平均吞吐量:            3212845 KiB/s
聚合吞吐量:     70682603 KiB/s

所有目标的列表:
1 3364311 KiB/s 节点 ID:node001-numa1-1 [ID:1]
2 3361591 KiB/s 节点 ID:node001-numa1-2 [ID:2]
3 3309530 KiB/s 节点 ID:node002-numa0-1 [ID:3]
4 3312840 KiB/s 节点 ID:node002-numa0-2 [ID:4]
5 3332095 KiB/s 节点 ID:node002-numa1-1 [ID:5]
6 3323319 KiB/s 节点 ID:node002-numa1-2 [ID:6]
7 3313000 KiB/s 节点 ID:node003-numa0-1 [ID:7]
8 3321214 KiB/s 节点 ID:node003-numa0-2 [ID:8]
9 3335072 KiB/s 节点 ID:node003-numa1-1 [ID:9]
10 3339743 KiB/s 节点 ID:node003-numa1-2 [ID:10]
11 3302175 KiB/s 节点 ID:node004-numa0-1 [ID:11]
12 3309474 KiB/s 节点 ID:node004-numa0-2 [ID:12]
13 3329879 KiB/s 节点 ID:node004-numa1-1 [ID:13]
14 3328291 KiB/s 节点 ID:node004-numa1-2 [ID:14]
15 3306132 KiB/s 节点 ID:node005-numa0-1 [ID:15]
16 3307096 KiB/s 节点 ID:node005-numa0-2 [ID:16]
17 3318436 KiB/s 节点 ID:node005-numa1-1 [ID:17]
18 3329684 KiB/s 节点 ID:node005-numa1-2 [ID:18]
19 2705987 KiB/s 节点 ID:node006-numa0-1 [ID:19]
20 2716438 KiB/s 节点 ID:node006-numa0-2 [ID:20]
21 2707970 KiB/s 节点 ID:node006-numa1-1 [ID:21]
22 2708326 KiB/s 节点 ID:node006-numa1-2 [ID:22]

输出中的推理:

每个存储目标的平均吞吐量为 3.29 GB/s。

从在两个不同的 BeeGFS 设置(一个在 RAID 0 中配置了存储目标,另一个在 RAID 10 中配置了存储目标)上执行的 StorageBench 基准测试输出中,很明显,在 RAID 0 中配置的存储目标而不是 RAID 10 中,写入性能更好。当使用 dd 命令写入具有 1M 数据块大小和“oflag=direct”的 10G 文件时,RAID 0 中配置的小型系统的平均吞吐量约为 5.1 GB/s,而 RAID 10 中配置的中型系统的平均吞吐量约为 3.4 GB/s,这与使用 storagebench 工具获得的结果相当。 


StorageBench — 识别有缺陷或配置错误的存储目标

StorageBench 在 公告博客 中所述的中型配置上运行,以了解系统中是否存在任何错误配置或有缺陷的存储目标。

[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose
Server 基准测试状态:
完成:    33
读取基准测试结果:
最小吞吐量:            2830479 KiB/s 节点 ID: node003-numa1-2 [ID:14],targetID:14
最大吞吐量:            3025500 KiB/s 节点 ID:node005-numa0-1 [ID:22],targetID:22
平均吞吐量:            2917836 KiB/s
聚合吞吐量:     96288596 KiB/s
列出所有目标:
1 2950039 KiB/s 节点 ID:node001-numa1-1 [ID:1]
2 2956121 KiB/s 节点 ID:node001-numa1-2 [ID:2]
3 2954473 KiB/s 节点 ID:node001-numa1-3 [ID:3]
4 2957658 KiB/s 节点 ID:node002-numa0-1 [ID:4]
5 2947109 KiB/s 节点 ID:node002-numa0-2 [ID:5]
6 2969886 KiB/s 节点 ID:node002-numa0-3 [ID:6]
7 2892578 KiB/s 节点 ID:node002-numa1-1 [ID:7]
8 2886899 KiB/s 节点 ID:node002-numa1-2 [ID:8]
9 2888972 KiB/s 节点 ID:node002-numa1-3 [ID:9]
10 2861995 KiB/s 节点 ID:node003-numa0-1 [ID:10]
11 2874314 KiB/s 节点 ID:node003-numa0-2 [ID:11]
12 2879096 KiB/s 节点 ID:node003-numa0-3 [ID:12]
13 2832635 KiB/s 节点 ID:node003-numa1-1 [ID:13]
14 2830479 KiB/s 节点 ID:node003-numa1-2 [ID:14]
15 2830971 KiB/s 节点 ID:node003-numa1-3 [ID:15]
16 2986890 KiB/s 节点 ID:node004-numa0-1 [ID:16]
17 2979197 KiB/s 节点 ID:node004-numa0-2 [ID:17]
18 2983958 KiB/s 节点 ID:node004-numa0-3 [ID:18]
19 2897974 KiB/s 节点 ID:node004-numa1-1 [ID:19]
20 2900880 KiB/s 节点 ID:node004-numa1-2 [ID:20]
21 2904036 KiB/s 节点 ID:node004-numa1-3 [ID:21]
22 3025500 KiB/s nodeID: node005-numa0-1 [ID:22]
23 3021558 KiB/s 节点 ID:node005-numa0-2 [ID:23]
24 3017387 KiB/s 节点 ID:node005-numa0-3 [ID:24]
25 2921480 KiB/s 节点 ID:node005-numa1-1 [ID:25]
26 2930226 KiB/s 节点 ID:node005-numa1-2 [ID:26]
27 2930548 KiB/s 节点 ID:node005-numa1-3 [ID:27]
28 2900018 KiB/s 节点 ID:node006-numa0-1 [ID:28]
29 2898520 KiB/s 节点 ID:node006-numa0-2 [ID:29]
30 2907113 KiB/s 节点 ID:node006-numa0-3 [ID:30]
31 2855079 KiB/s 节点 ID:node006-numa1-1 [ID:31]
32 2853527 KiB/s 节点 ID:node006-numa1-2 [ID:32]
33 2861480 KiB/s 节点 ID:node006-numa1-3 [ID:33]

从上述输出中可以看出,所有存储目标均匀执行,并且系统中没有有缺陷的目标。

 

结论和未来的工作

此博客讨论了 BeeGFS 的主要功能,并解释了存储基准测试用于评估或比较不同 RAID 配置的性能以及确定是否有任何存储目标存在缺陷或配置错误的有用性。  作为后续步骤的一部分,我们将在稍后发布一份白皮书,其中包含元数据性能和 IOR 性能,以及有关设计注意事项、调整和配置的其他详细信息。 


参考材料

1) Dell EMC Ready Solutions for HPC BeeGFS Storage https://www.dell.com/support/article/sln319381/
2) 适用于 HPC BeeGFS 存储的 Dell EMC 就绪型解决方案的可扩展性 https://index?page=content&actp=search&id=sln319382
3) BeeGFS 文档: 
https://www.beegfs.io/wiki/4) 如何连接同一子网上的两个接口: 
https://access.redhat.com/solutions/305645) 使用外部内存的 PCI Express Direct 内存访问参考设计:https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760

 

 

Article Properties


Affected Product

PowerSwitch S3048-ON, Mellanox SB7800 Series, PowerEdge R640, PowerEdge R740XD

Last Published Date

03 Oct 2023

Version

5

Article Type

Solution