本文由 Nirmala Sundararajan、HPC 和 AI 创新实验室编写,2020年4月
HPC BeeGFS 高容量存储的 Dell EMC 就绪解决方案是完全受支持的高吞吐量并行文件系统存储解决方案。本博客介绍了解决方案体系结构,它如何针对 HPC 性能进行调整,并使用 IOZone 顺序和随机基准来呈现 i/o 性能。在 11 月2019日发布的本博客中介绍了构建在 NVMe 设备上的 BeeGFS 高性能存储解决方案。该体系结构重点介绍了性能,此处介绍的解决方案是一种高容量存储解决方案。 这两个适用于 BeeGFS 的解决方案在设计目标和使用情形方面有所不同。 高性能解决方案设计为临时存储解决方案,这是临时数据集的转移接地,通常在作业的生存期以外。高容量解决方案使用 4x Dell EMC PowerVault ME4084 阵列,完全填充336个驱动器,并提供4PB 的原始容量(如果配备 12 TB SAS 驱动器)。
HPC BeeGFS 高容量存储的 Dell EMC Ready 解决方案包含一个管理服务器、一对元数据服务器、一对存储服务器和关联的存储阵列。解决方案提供的存储使用的是群集的计算节点可轻松访问的单个命名空间。下图显示了具有以下主要组件的解决方案参考体系结构:
图1显示了解决方案的参考体系结构。
图 1:HPC BeeGFS 存储
Dell EMC Ready 解决方案在图1中,运行 BeeGFS monitoring 守护程序的管理服务器是 PowerEdge R640。 在主动-主动高可用性配置中,两个元数据服务器(MDS) PowerEdge R740 服务器。 MDS 对连接到2U,PowerVault ME4024 阵列,通过 12 Gb/s SAS 链路。ME4024 存储阵列托管元数据目标(MDTs)。另一对 PowerEdge R740 服务器,也处于主动-主动高可用性配置中,用作存储服务器(SS)。 此 SS 对使用 12 Gb/s SAS 链路连接到四个完全填充 PowerVault ME4084 存储阵列。ME4084 阵列支持选择 4 TB、8 TB、10 TB 或 12 TB NL SAS 7.2 K RPM 硬盘驱动器(Hdd,并为 BeeGFS 文件系统提供存储目标(STs)的主机。此解决方案对数据网络使用 Mellanox 不适用的 HDR100。客户端和服务器连接到 1U Mellanox 量子 HDR Edge 交换机 QM8790,它通过使用 HDR 拆分器缆线支持最多80个 HDR100 端口。
下表介绍了为解决方案验证的硬件 speficiations 和软件版本。
Management Server | 1x Dell EMC PowerEdge R640 |
---|---|
元数据服务器(MDS) | 2x Dell EMC PowerEdge R740 |
存储服务器(SS) | 2x Dell EMC PowerEdge R740 |
处理器 | Management Server2 x 英特尔至强黄金 5218 @ 2.3 GHz、16核 MDS 和 SS:2x Intel Xeon Gold 6230 @ 2.10 GHz,每个处理器 20 核 |
内存 | Management Server12 x 8GB DDR4 2666MT/s Dimm-96GB MDS 和 SS:12x 32GB DDR4 2933MT/s Dimm-384GB |
未 HCA (插槽8) | 每个 MDS 和 SS 为 1x Mellanox ConnectX-6 单端口 HDR100 适配器 |
外部存储控制器 | 2个 Dell 12Gbps SAS Hba (在每个 MDS 上) 4x Dell 12Gbps SAS hba (在每个 SS 上) |
数据存储机柜 | 如果在 4X ME4084 中配备 8 tb SAS 驱动器,则4个 Dell EMC POWERVAULT ME4084 机柜,完全填充336个驱动器 2.69 PB 原始存储容量 |
元数据存储机柜 | 1个 Dell EMC PowerVault ME4024 机柜,完全填充24个驱动器 |
RAID 控制器 | ME4084 和 ME4024 机柜中的双工 RAID 控制器 |
硬盘 | 84-8 TB 7200 RPM NL SAS3 驱动器,每个 ME4084 机柜 24-960GB SAS3 ssd/ME4024 机柜 |
操作系统 | CentOS Linux release 8.1.1911 (Core) |
内核版本 | 4. 0-147,el8 _1. x86_64 |
Mellanox OFED 版本 | 4.7-3.2.9。0 |
Grafana | 6.6.2-1 |
InfluxDB | 1.7.10-1 |
BeeGFS FILE SYSTEM(“NTFS文件系统”) | 7.2 beta2 |
表 1:试验台配置
注:为了提高性能,已使用 BeeGFS 版本 7.2 beta2。
BeeGFS 体系结构包含四个主要服务:
此外,还有一个可选的 BeeGFS 监测服务。
除了作为内核模块的客户端服务,管理、元数据和存储服务是用户空间进程。可以在同一台计算机上同时运行 BeeGFS 服务(客户端和服务器组件)的任意组合。此外,还可以在同一台计算机上运行任何 BeeGFS 服务的多个实例。在 Dell EMC 高容量配置 BeeGFS 中,监测服务在管理服务器上运行,在元数据服务器上运行多个元数据服务实例,在存储服务器上运行一个存储服务实例。在元数据服务器上安装了管理服务。
BeeGFS monitoring service (BeeGFS-周一)会收集 BeeGFS 统计信息,并使用时序数据库 InfluxDB将其提供给用户。 对于数据的可视化, beegfs-grafana 提供了预定义的 grafana 控制面板,可供使用。图2概述了 BeeGFS 群集,其中显示了设置中的存储服务和元数据服务的数量(称为控制面板中的节点)。它还列出了可用的其他控制面板视图,并概述了存储目标。
图 2 Grafana 控制面板-BeeGFS 概述
用于元数据存储的 ME4024 存储阵列已使用 24x 960GB Ssd 完全填充。这些驱动器配置在两个驱动器的12x 线性 RAID1 磁盘组中,如图3所示。每个 RAID1 组都是一个元数据目标。
图3完全填充的 ME4024 阵列,带有12个 MDTs
在 BeeGFS 中,每个元数据服务仅处理一个 MDT。由于有12个 MDTs,因此需要有12个元数据服务实例。两个元数据服务器都运行六个元数据服务实例。元数据目标 使用 ext4 文件系统进行格式化 (ext4 文件系统可很好地处理小文件和小文件操作)。此外,BeeGFS 还会将信息存储在扩展属性中,并直接存储在文件系统的 inode 上,以优化性能,这两种方式均可与 ext4 文件系统配合使用。
返回页首
Beegfs-mgmtd服务在两个元数据服务器上均已设置。在元数据目标1上的目录 mgmtd 中初始化 beegfs mgmtd 存储,如下所示:
/opt/beegfs/sbin/beegfs-setup-mgmtd-p/beegfs/metaA-numa0-1/mgmtd-S beegfs-管理
在 metaA 服务器上启动了管理服务。
在此高容量 BeeGFS 解决方案中,数据存储跨四个 PowerVault ME4084 存储阵列。每个阵列上都创建了10个驱动器的线性 RAID 6 磁盘组(8 + 2)。将为每个磁盘组创建一个使用所有空间的卷。这将导致每个阵列8个磁盘组/卷。每个阵列都有84个驱动器,创建8个 RAID 6 磁盘组后,可将4个驱动器配置为阵列卷上的全局热备用。
如上面所述的布局,图1所示的基本配置中的 4 x ME4084 总共有 32 x RAID 6 卷。其中每个 RAID-1 卷均配置为 BeeGFS 文件系统的存储目标(ST),从而导致整个文件系统总共 32 STs。
每个 ME4084 阵列都有84个驱动器,其中顶部盘位中的驱动器编号为0-41,底部盘位中的42-84 编号为。 在图5中,每组标记为1至8的10个驱动器表示8xRAID6 组。从每个 RAID6 组中创建一个卷。标记为 "S" 的驱动器表示全局备盘。图5显示了配置8个卷和4个全局备用后阵列的前视图。
图 4 RAID 6 (8 + 2)一个 ME4084 上的磁盘组布局
BeeGFS 客户端模块已加载到需要访问 BeeGFS 文件系统的所有主机上。当加载 BeeGFS 模块并启动 BeeGFS 客户端服务 时,该服务将装载在/etc/BeeGFS/beegfs-mounts. 会议 文件中定义的文件系统,而不是基于 /etc/fstab的常用方法。 通过这种方法, beegfs 客户端 可通过服务启动脚本从任何其他 Linux 服务开始,并支持在系统更新后自动重新编译 beegfs 客户端模块。
本部分介绍使用 IOzone 顺序和随机基准测试 HPC BeeGFS 高容量存储解决方案的 Dell EMC Ready 解决方案的性能特征。 有关使用 IOR 和 MDtest 进一步提高性能的详情,以及有关高可用性配置的详细信息,请参阅稍后将发布的白皮书。
已使用 IOzone 基准(v 3.487)评估存储性能。按顺序读取和写入吞吐量以及测量的随机读取和写入 IOPS。表2介绍了用作 BeeGFS 客户端以执行这些性能研究的 PowerEdge R840 服务器的配置。
端可 | 8x Dell EMC PowerEdge R840 |
---|---|
处理器 | 4 x Intel (R)至强(R)白金级 8260 CPU @ 2.40 GHz,24核 |
内存 | 24 x 16 GB DDR4 2933MT/s Dimm-384GB |
操作系统 | Red Hat Enterprise Linux Server 7.6 版 (Maipo) |
内核版本 | 3.10.0-957.el7.x86_64 |
互连 | 1x Mellanox ConnectX-6 单端口 HDR100 适配器 |
OFED 版本 | 4.7-3.2.9。0 |
表2客户端配置
通过 HDR100 网络连接服务器和客户端,并在下面的表3中提供网络详细信息:
InfiniBand 开关 | QM8790 Mellanox 量子 HDR Edge 交换机-IU 与 80x HDR 100 100Gb/s 端口(使用拆分器缆线) |
---|---|
管理交换机 | Dell Networking S3048-ON ToR 交换机-1U with 48x 1GbE,4x SFP + 10GbE 端口 |
表 3:连网
使用 IOzone 的顺序读取和写入模式测量顺序读取和写入。这些测试是在多线程上进行的,从 1 个线程开始,以 2 为指数增加,最多达 512 个线程。在每次线程计数时,都生成同等数量的文件,因为此测试的工作方式是每线程一个文件或 N-N(多对多)情况。这些进程以循环方式分布在8个物理客户端节点上,因此请求通过负载平衡得以均匀分布。
对于线程计数16及更高,已选择 8 TB 的聚合文件大小,以最大限度地减少从服务器和 BeeGFS 客户端进行高速缓存的影响。对于小于16的线程计数,文件大小为每个线程 768 GB (即,2个线程为 1.5 TB,3TB 为4个线程,6TB 为8个线程)。在任何给定的测试中,使用的聚合文件大小在线程数上均匀划分。1MiB 的记录大小用于所有运行。下面提供了用于按顺序 N-N 测试的命令:
顺序写入和读取: iozone-i $test-c-e-w-r 1m-s $Size-t $Thread-+ n-+ m/path/to/threadlist
通过运行以下命令,还可在两次迭代之间将操作系统缓存拖放到服务器上,以及通过运行命令来执行写入和读取测试:
# sync & & echo 3 >/proc/sys/vm/drop_caches
文件系统已在两次迭代之间卸载和重新装载,以及写入和读取测试之间的操作,以清除高速缓存。
图 5 N-N 顺序性能
在图5中,23.70 GB/s 的峰值吞吐量是在256线程上获得的,22.07 GB/s 的峰值写入在512线程上获得。单线程写入性能为 623 MB/s,读取为 717 MB/s。性能最多可扩展到32个线程。完成此操作后,我们将看到在我们进行扩展时,读取和写入饱和。这将使我们明白,此配置的总体持续性能为≈ 23GB/s,写入操作的≈ 22GB/s 会与上面提到的峰值相同。读取次数非常接近或略高于写入次数,而不依赖于所用线程的数量。
IOzone 在随机模式中使用,以评估随机 IO 性能。 对从16个到512个线程的线程计数执行了测试。 直接 IO 选项(-I)用于运行 IOzone,以便所有操作都绕过缓冲区缓存,直接转到磁盘。已使用 BeeGFS 条带数(1)和1MB 的块大小。请求大小已设置为4KiB。性能以每秒 i/o 操作数衡量(IOPS)。在 BeeGFS 服务器上运行的操作系统高速缓存被丢弃。在测试迭代之间卸载并重新装载文件系统。用于随机读取和写入测试的命令如下所示:
iozone-i 2-w-c-O-I-r 4K-s $Size-t $Thread-+ n-+ m/path/to/threadlist
图 6-n 随机性能
图6显示了写入性能达到 31K IOPS,并且保持从32线程稳定至512线程。与之相比,读取性能会增加,而 I/O 请求数会增加 47K IOPS 512 线程,这是为解决方案测试的最大线程数。ME4 需要更高的队列深度来达到最大读取性能,并且图形表示如果运行1024并发线程,我们可以获得更高的性能。但是,由于测试仅使用8个客户端运行,因此我们没有足够的核心来运行1024线程数。
返回页首
在执行解决方案的性能特征时,以下调整参数已就位。
BeeGFS 的默认条带数为4。但是,每个文件的块大小和目标数(stipe 计数)可根据每个目录或逐个文件进行配置。对于所有这些测试,BeeGFS 条带大小设置为1MB,条带数设置为1,如下所示:
$beegfs-ctl--getentryinfo--mount =/mnt/beegfs//mnt/beegfs/benchmark/--verbose
条目类型:目录
EntryID:1-5E72FAD3-1
ParentID: root
元数据节点: metaA-numa0-1 [ID:1]
条带模式详细信息:
+ 类型:RAID0
+ Chunksize:1m
+ 存储目标的数量:需要:1
+ 存储池:1(默认值)信息
节点哈希路径:61/4C/1-5E72FAD3-1
已禁用透明大页面,以及在元数据和存储服务器上配置的以下虚拟内存设置:
以下调整选项用于存储服务器上的存储数据块设备。
除了上述 BeeGFS 特定的调整选项以外,还使用了以下内容:
beegfs-元. 会议
connMaxInternodeNum = 64
tuneNumWorkers = 12
tuneUsePerUserMsgQueues = true # Optional
tuneTargetChooser = roundrobin (基准测试)
beegfs-存储。会议
connMaxInternodeNum = 64
tuneNumWorkers = 12
tuneUsePerTargetWorkers = true
tuneUsePerUserMsgQueues = true # Optional
tuneBindToNumaZone = 0
tuneFileReadAheadSize = 2m
beegfs-client. 会议
connMaxInternodeNum = 24
connBufSize = 720896
本博客宣布发布了 Dell EMC BeeGFS 高容量存储解决方案,并突出显示其性能特性。此解决方案为读取和 22.1 GB/s 提供 23.7 GB/s 的峰值性能,以使用 IOzone 顺序基准进行写入。我们还会在 31.3 K IOPS 和随机读取 47.5 K IOPS 看到随机写入峰值。
作为后续步骤的一部分,我们将对元数据性能和 N 个线程进行评估,以实现此解决方案的单个文件(N 至1) IOR 性能。白皮书介绍了该解决方案的元数据和 IOR 性能,并提供了有关具有高可用性的此高容量解决方案的设计注意事项的更多详细信息,预计将在验证和评估流程完成后发布。