解决方案概述
本博客介绍 Dell EMC HPC NFS 存储解决方案版本 7.4 (NSS7.4),该版本利用英特尔的第二代 Xeon Scalable 处理器(代号为“Cascade Lake”)。 这些经过改进的 Xeon 处理器每个插槽具有最多 28 个核心、高达 38.5 MB 的最后一级高速缓存和六条 2933 MT/s 内存通道。 级联 Lake 处理器的主要功能是针对端通道攻击、
INTEL DL 提升(VNNI)的集成式
硬件缓解,并且支持更高的时钟速率和内存速度。
级联 Lake 及其前代 Skylake 包括名为
ADDDC的
功能(Daptivedouble
dRAM
d备
Correction)。ADDDC 在运行时部署,以动态标出故障 DRAM 设备,同时继续提供
Single
Device
Data
Correction(SDDC,单设备数据校正)、纠错码 (ECC) 内存,从而延长 DIMM 使用寿命。此功能仅对 x4 DRAM 设备有效,当系统中有 x8 DRAM 设备时不起任何作用。由于最新 NSS-HA 版本 7.4 仅使用 16GB 内存,即 x8 组织方式,因此 ADDDC 呈灰色显示,不是 BIOS 中的可调选项。但是,如果您使用的是 x4 的32GB 内存,则 ADDDC 将作为可调式的选项提供,建议设置为 disabled (已禁用)以覆盖 RAS 功能的性能。
建议配置具有 HPC 配置文件的 NFS 服务器,如 blog "
Intel 级联 Lake processor 的 BIOS 特性" 中所述),其中包括调整 BIOS 以将启用了子 NUMA 群集、逻辑处理器禁用和系统配置文件设置为 "性能"。如果升级现有系统,请确保先将 BIOS 更新到支持 Cascade Lake CPU 的版本,然后再将 CPU 升级到 Cascade Lake 处理器。HPC 和 AI 创新实验室的 HPC 工程团队使用配备 Cascade Lake 处理器的 NSS 服务器进行了一系列基准测试,并与以前从 NSS7.3-HA 解决方案中获得的结果进行比较,该方案使用的是配备上一代“Skylake-SP”Xeon 系列处理器的最新版本 PowerEdge 服务器。本博客中介绍了基准测试结果和比较。
Dell EMC 提供的 NFS 存储解决方案经过优化和调整,以实现最佳性能。 在设置 NSS7.4-HA 解决方案时,应注意以下要点:
- 使用 Cascade Lake 处理器的最低支持操作系统是 Red Hat Enterprise Linux 7.6。但是,使用内核版本 3.10.0-957.el7,NFS 共享将随同一个任务(如 kworker)挂起,占用 100% 的 CPU。问题的根本原因是 TCP 层失去与 sunrpc 层传输状态的同步。软件包 kernel-3.10.0-957.5.1.el7 或更高版本已解决此问题。因此,此解决方案使用的基本操作系统是 RHEL7.6,使用的内核版本是 kernel-3.10.0-957.5.1.el7。请参阅 https://access.redhat.com/solutions/3742871,了解详细信息。
- 对于 NSS7.4-HA 解决方案,除非安装了以下软件包,否则 nfsserver 资源无法启动,因为 nfs-idmapd.service 无法启动。请参阅 https://access.redhat.com/solutions/3746891,了解详细信息。
- resource-agents-4.1.1-12.el7_6.4
- resource-agents-aliyun-4.1.1-12.el7_6.4
- resource-agents-gcp-4.1.1-12.el7_6.4 或更高版本。
- RHEL7.6 发行说明提到的注意事项是,LVM 的 I/O 层中程序错误会导致物理卷的前 128KB 可分配空间中的数据损坏。 lvm2-2.02.180-10.el7_6.2 或更高版本已解决该问题。 因此,请确保将 lvm2 软件包更新到最新版本。如果更新 lvm2 不是一个选项,则变通方法是,当正在使用卷组 (VG) 中的逻辑卷时,不要使用更改 VG 元数据的 LVM 命令(如 lvcreate 或 lvextend)。
NSS7.4-HA 体系结构
图 1 显示 NSS7.4-HA 的设计。除了必要的软件和固件更新以外,NSS7.4-HA 和 NSS7.3-HA 还共享相同的 HA 群集配置和存储配置。主动-被动高可用性配置中的一对 NFS 服务器连接到 PowerVault ME4084。每台 NFS 服务器都有双 SAS 卡。每个卡都有一条 SAS 电缆连接到共享存储中的每个控制器,因此单个 SAS 卡或 SAS 电缆故障不会影响数据可用性。(有关配置的详细信息,请参阅
NSS7.3-HA 白皮书)。
NSS7.4-HA 体系结构
NSS7.4-HA 与 NSS7.3-HA 中的组件比较
虽然 Dell NSS-HA 解决方案从首次发布以来已经得到多次硬件和软件升级,以提供更高的可用性、更高的性能和更大的存储容量,但是,NSS-HA 的体系结构设计和部署指导原则保持不变。此最新版本和早期版本 NSS7.3-HA 共享相同的存储后端,即 Power Vault ME4084。下表对最新 NSS7.4-HA 解决方案和早期 NSS7.3-HA 解决方案中的组件进行比较
表 1:表 1:NSS7.4-HA 与 NSS7.3-HA 中的组件比较
解决方案 |
NSS7.4-HA 版本(2019 年 6 月) |
NSS7.3-HA 版本(2018 年 10 月) |
NFS 服务器型号 |
2x Dell EMC PowerEdge R740 |
内部连接 |
使用 Dell Networking S3048-ON 的千兆位以太网 |
存储子系统 |
Dell EMC PowerVault ME4084 84-3.5 "NL SAS 驱动器,最多 12 tb。 支持高达1008TB (原始空间) 8 个 lun,线性 8 + 2 RAID 6,区块大小128KiB。 4 个全局硬盘备件。 |
存储连接 |
12 Gbps SAS 连接。 |
处理器 |
2x Intel Xeon Gold 6240 @ 2.6 GHz,每个处理器 18 核 |
2x Intel Xeon Gold 6136 @ 3.0 GHz,每个处理器 12 核 |
内存 |
12 x 16GiB 2933 MT/s RDIMM |
12 x 16GiB 2666 MT/s RDIMM |
操作系统 |
Red Hat Enterprise Linux 7.6 |
Red Hat Enterprise Linux 7.5 |
内核版本 |
3.10.0-957.5.1.el7.x86_64 |
3.10.0-862.el7.x86_64 |
Red Hat 可扩展文件系统 (XFS) |
v4.5 0-18 |
v4.5 0-15 |
外部网络连接 |
Mellanox ConnectX-5 InfiniBand EDR/100 GbE 和 10 GbE |
Mellanox ConnectX-5 InfiniBand EDR 和 10 GbE。 对于 NSS 7.3-HA 解决方案博客,使用 Mellanox ConnectX-4 IB EDR/100 GbE。 |
OFED 版本 |
Mellanox OFED 4.5-1.0.1.0 |
Mellanox OFED 4.4-1.0.0 |
在博客的其余部分,将介绍 NSS7.4-HA 的测试台和 I/O 性能信息。为显示 NSS7.4-HA 与先前版本之间的性能差异,还提供 NSS7.3-HA 的相应性能数据。
试验台配置
下面介绍用于评估 NSS7.4-HA 解决方案的性能和功能的试验台。请注意,性能测试所用的 CPU 与解决方案所选的处理器不同,因为开展这项工作未及时收到 Xeon Gold 6240 CPU。计划是在收到 6240 处理器后重做一些测试,并根据需要修改此报告。
表 2:NSS 7.4-高可用性硬件配置
服务器配置 |
NFS 服务器型号 |
Dell PowerEdge R740 |
处理器 |
2x Intel Xeon Gold 6244 CPU @ 3.60GHz,每个处理器 8 核 |
内存 |
12 x 16GiB 2933 MT/s RDIMM |
本地磁盘和 RAID 控制器 |
配有五个 300GB 15K SAS 硬盘的 PERC H730P。在 RAID1 中为操作系统配置了两个驱动器,在 RAID0 中为交换区配置了两个驱动器,第五个驱动器是 RAID1 磁盘组的热备件。 |
Mellanox EDR 卡(插槽 8) |
Mellanox ConnectX-5 EDR 卡 |
1GbE 以太网卡(子卡插槽) |
Broadcom 5720 QP 1 千兆位以太网网络子卡。或 Intel(R) 千兆位 4P I350-t rNDC |
外部存储控制器(插槽 1 和插槽 2) |
两个 Dell 12Gbps SAS HBA |
系统管理 |
iDRAC9 Enterprise |
存储配置 |
存储盘柜 |
1x Dell PowerVault ME4084 盘柜 |
RAID 控制器 |
Dell ME4084 中的双工 RAID 控制器 |
硬盘 |
每个阵列 84 个 10TB 7.2K NL SAS 驱动器,总计 84 个 10TB 磁盘 |
其他组件 |
专用千兆位以太网交换机 |
Dell Networking S3048-ON |
配电装置 |
两个 APC 交换式机架 PDU,型号 AP7921B |
表 3:NSS 7.4-HA 服务器软件版本
组件 |
描述 |
操作系统 |
Red Hat Enterprise Linux (RHEL) 7.6 x86_64 errata |
内核版本 |
3.10.0-957.5.1.el7.x86_64 |
群集套件 |
RHEL 7.6 的 Red Hat 群集套件 |
文件系统 |
Red Hat 可扩展文件系统 (XFS) 4.5. 0-18。 |
系统管理工具 |
Dell OpenManage Server Administrator 9.3.0-3407_A00 |
表 4:NSS 7.4-HA 客户端配置
组件 |
描述 |
服务器 |
32x Dell EMC PowerEdge C6420 计算节点 |
CPU |
2x Intel Xeon Gold 6148 CPU @ 2.40GHz,每个处理器 20 核 |
内存 |
12 x 16GiB 2666 MT/s RDIMM |
操作系统 |
Red Hat Enterprise Linux Server 发行版 7.6 |
内核版本 |
3.10.0-957.el7.x86_64 |
互连 |
Mellanox InfiniBand EDR |
OFED 版本 |
4.3-1.0.1.0 |
ConnectX-4 固件 |
12.17.2052 |
NSS7.4-HA I/O 性能摘要
本节介绍当前 NSS7.4 解决方案的 I/O 性能测试的结果。所有性能测试均在无故障的情况下进行,以测量解决方案的最大能力。测试重点是三种类型的 I/O 模式:大量的顺序读取和写入、小量的随机读取和写入,以及三项元数据操作(文件创建、统计和删除)。与以前版本 NSS 7.3-HA 一样,该解决方案使用截止时间 i/o 调度程序和 256 NFS 守护程序。
840TB (原始存储大小)配置与通过 EDR 的 IPoIB 网络连接进行了基准。使用 32 个节点计算群集来生成基准测试的工作负载。每个测试都在一系列客户端上运行,以测试解决方案的可扩展性。
本调查中使用的是 IOzone 和 mdtest 基准。IOzone 用于顺序和随机测试。对于顺序测试,使用了 1024KiB 的请求大小。传输的数据总量为 2TB,以确保 NFS 服务器高速缓存达到饱和。随机测试使用了 4KiB 请求大小,每个客户端读取并写入一个 4GiB 文件。使用 mdtest 基准配合 OpenMPI 执行了元数据测试,包括文件创建、统计和删除操作。(请参阅 NSS7.3-HA 白皮书的附录 A,了解测试中使用的全部命令。)
IPoIB 顺序写入和读取 N-N
为了评估顺序读取和写入,在顺序读取和写入模式下使用了 IOzone 基准,版本 3.487。这些测试是在多线程上进行的,从 1 个线程开始,以 2 为指数增加,最多达 64 个线程。在每次线程计数时,都生成同等数量的文件,因为此测试的工作方式是每线程一个文件或 N-N(多对多)情况。已选择2TB 的聚合文件大小,这将在任意给定测试中的线程数上均匀划分。
图2与 NSS 7.3-HA 版本的 NSS 7.4-HA 版本的顺序 i/o 性能进行了比较。从图中可以看出,最新 NSS7.4 和先前的 NSS7.3 具有类似的峰值性能,读取速度约为 7 GB/s,峰值写入性能约为 5 GB/s。但是,与 NSS7.3-HA 解决方案相比,在某些线程数上测量的写入性能降低了 15-20%。此性能差异的调查工作正在进行中。在线程数为 1 和 2 的情况下,读取性能增加了将近 45%,线程数为 8 时增加了 18%。对于线程数大于 8 的情况,读取性能与 NSS7.3-HA 解决方案的测量结果类似。线程数较低时读取性能的提高可能是由于 Cascade Lake 处理器上有防御侧通道攻击的硬件免疫。IPoIB 大规模顺序 I/O 性能
IPoIB 随机写入和读取 N-N
为了评估随机 IO 性能,在随机模式下使用了 IOzone 版本 3.487。测试在多种线程数上进行,以 2 为指数,从 1 个线程增加到 64 个。选择的记录大小为 4KB。每个客户端读取或写入一个 4GiB 文件,以模拟小量的随机数据访问。 由于群集只有32节点,因此将获得64线程数据点,其中的32客户端分别运行2个线程。
图3显示了 NSS 7.4-HA 的随机写入和读取 i/o 性能与 NSS 7.3-高可用性的比较。从图中可以看出,NSS7.4 的随机写入峰值性能与 NSS7.3-HA 的相似,约为 7300 IOPS。 在 NSS7.4-HA 解决方案中,对于较低的线程数 1 和 2,与以前版本的解决方案相比,写入性能降低了大约 14%,这个问题正在调查中。 在 NSS7.4 上,随机读取性能稳步增加,在 64 个线程上达到 16607 IOPS 的峰值性能。在上一版本 (NSS7.3-HA) 中,在 32 个线程上达到了峰值性能 28811 IOPS,比 NSS7.4-HA 解决方案中的随机读取所达到的峰值性能高 42%。IPoIB 随机 I/O 性能
IPoIB 元数据操作
为了评估系统的元数据性能,使用了 MDTest 工具版本 1.9.3。使用的 MPI 发行版为 OpenMPI 版本 1.10.7。 执行元数据测试的方法是,为最多 32 个线程数创建 960000 个文件,然后增加文件数,以测试解决方案的可扩展性,如表 5 中列出的结果。元数据测试:跨线程分发文件和目录
线程数 |
每个目录的文件数 |
每个线程的目录数 |
文件总数 |
1 |
3000 |
320 |
960000 |
2 |
3000 |
160 |
960000 |
4 |
3000 |
80 |
960000 |
8 |
3000 |
40. |
960000 |
16 |
3000 |
20 |
960000 |
32 |
3000 |
10 |
960000 |
64. |
3000 |
8 |
1536000 |
128 |
3000 |
4 |
1436000 |
256 |
3000 |
4 |
3072000 |
512 |
3000 |
4 |
6144000 |
图 4、图 5 和图 6 分别显示文件创建、统计和删除操作的结果。由于 HPC 计算群集有 32 个计算节点,在下面的图表中,每个客户端最多执行每节点一个线程,线程数最多 32 个。对于客户端数为 64、128、256 和 512 的情况,每个节点执行了 2、4、8 或 16 个并发操作。
在文件创建上,最多 16 个线程上有 20% 的性能提高,从 32 个线程往上,两个版本的性能几乎相同。
NSS 7.4 中的 Stat 操作针对较低的线程数量(1、2、8和16)的性能提高了10% 的性能,并且在更高的线程数量(从64线程到512线程)的情况下,性能下降了 > 30%。
最后,"remove" 操作的性能下降了14%,最多64个客户端,并且更高的线程计数为128256和 512 > 20%。
图 4:IPoIB 文件创建
性能
图5:IPoIB fiel stat
性能
图6:IPoIB fie 删除性能
结论
下表汇总观测到的最新 NSS7.4 与 NSS7.3 解决方案之间的性能差异。 表 5:NSS7.4 和 NSS7.3 HA 版本的性能比较
Dell EMC HPC NFS 存储 |
NSS7.4-HA |
NSS7.4 – HA NSS7.3-HA |
顺序1MB 写入峰值:降低1.4% |
4,834 MB/s |
4,906 MB/s |
顺序1MB 读取峰值:降低0.7% |
7,024 MB/s |
7,073 MB/s |
随机4KB 写入峰值:降低0.7% |
7,290 IOps |
7,341 IOps |
随机4KB 读取峰值:降低42% |
16,607 IOps |
28,811 IOps |
Create operations/second 峰值:降低1.1% |
54,197 Op/s |
54,795 Op/s |
Stat operations/second 峰值:降低35% |
522,231 Op/s |
808,317 Op/s |
Remove operations/second 峰值:降低35% |
47,345 Op/s |
73,320 Op/s |
从上述结果中,我们可以得出结论:当前 NSS7.4-HA 解决方案可提供与其前任 NSS7.3-HA 解决方案相媲美的性能。我们计划使用每个处理器有 18 核的 Xeon Gold 6240 CPU 运行基准测试,以了解是否由于 NSS7.4-HA 解决方案性能基准测试所使用的 Xeon Gold 6244 CPU(每个处理器 8 核)的核心数量较少,导致随机读取的性能降低以及文件统计和文件操作中在较高线程数上出现性能降低。
参考材料
有关 NSS-HA 解决方案的详细信息,请参阅我们发布的白皮书