WEKA 存储解决方案
WEKA 数据平台是一款基于软件的解决方案,旨在实现企业数据堆栈的现代化。其面向数据管道的先进 AI 原生架构可提供大规模高性能,因此 AI 工作负载运行速度更快,工作效率更高。
我们选择 WEKA 数据平台作为 AI JVD 设计的一部分,因为它具有以下优势:
- 高性能:Weka 的架构专为极致性能而设计,适用于 AI/ML 工作负载、大数据分析和高性能计算 (HPC) 环境。
- 可扩展性:Weka 可以从几 TB 扩展到 EB 数据,使客户能够在不影响性能的情况下增加存储容量。WEKA 的分布式架构不同于典型的纵向扩展式存储系统、设备和基于虚拟机管理程序的软件定义存储解决方案。它克服了可能成为大规模 AI 部署瓶颈的传统存储扩展和文件共享限制,成为客户的首选之一。
- 统一存储:Weka 提供可支持多种协议(例如 NFS、SMB、POSIX、S3)的单一存储解决方案,提供访问和管理数据的灵活性,并允许 Nvidia 的 GPUDirect 存储访问。
- 数据弹性:Weka 提供先进的数据保护功能,包括纠删码,可确保数据弹性和针对硬件故障的保护。如果至少配置为六台存储服务器,群集可以在两台服务器故障后继续运行。
- 易于管理:Weka 的软件定义存储解决方案易于部署和管理,具有用户友好的界面和自动化管理功能。它可以安装在任何基于 AMD EPYC™ 或 Intel Xeon™ 可扩展处理器的标准硬件上,并配备适当的内存、CPU 处理器、网络和 NVMe 固态驱动器。
- 对 GPU 的支持:Weka 针对 GPU 加速进行了优化,使其成为严重依赖 GPU 计算的环境(例如 AI 和机器学习应用程序)的理想存储解决方案。
- 低延迟:Weka 的架构允许非常低延迟地访问数据,这对于需要实时数据处理的应用程序至关重要。
AI JVD 实验室中的 Weka 存储群集
我们构建了 WEKA 存储群集,其中包含八台基于 SuperMicro 的服务器连接到存储后端交换矩阵,提供 242TB 的可用存储。WEKA 建议使用八个群集节点,并且至少需要六个节点进行生产部署。
每台 WEKA 服务器具有以下规格
- AMD EPYC 9454P 处理器
- 384GB 系统内存
- 作系统驱动器:2 个 1.92TB M.2 NVMe 数据中心 SSD (PCIe 4.0)
- 数据驱动器:7 个 7.68TB U.2 NVMe 数据中心 SSD (PCIe 4.0)
- 板载 OOB 网络连接 (RJ45) 和以下附加接口卡:
- 1 个 NVIDIA Mellanox ConnectX-6 DX 适配器卡,100GE,双端口 QSFP28,PCIe 4.0 x16
- 2 个 NVIDIA Mellanox ConnectX-6 VPI 适配器卡,HDR、IB 和 200GE,双端口 QSFP56,OCP 3.0
- 软件:
- 安装的作系统是 Ubuntu 22.04 LTS。
- 在此设计中测试的 WEKA 版本为 4.2.5。
- WEKA 闪存级许可证,带 SnapShot 和高性能协议服务
- (POSIX、NFS-W、S3 和 SMB-W)
需要进行常见的设置更改
WEKA 强烈建议某些 BIOS 设置,并且所有节点都匹配 Mellanox 驱动程序。为方便起见,此处记录了这些更改。
BIOS 设置:
可以通过应用bios_settings.yml来更改 BIOS 设置:
-
Supermicro: AMD: ACPISRATL3CacheAsNUMADomain#0099: Disabled IOMMU#00EA: Disabled NUMANodesPerSocket#703F: Auto SMTControl#00CB: Disabled SR-IOVSupport#0067: Enabled DFCstates#7104: Disabled GlobalC-stateControl#00CD: Disabled
有关如何应用这些更改的更多详细信息,请参阅: GitHub - weka/bios_tool:用于查看/设置 Weka 服务器bios_settings的工具
瞻博网络 WEKA 群集的网络配置
如存储后端部分所述,WEKA 服务器是双宿主的,并使用 NVIDIA Mellanox ConnectX-6 VPI 适配器卡中的 200GE 端口连接到单独的存储后端交换机(storage-backend-weka-leaf 1 和 storage-backend-weka-leaf 2)。此 JVD 未使用额外的 QSFP28 100Gbe 端口,但可用于前端入口/出口流量、暂存和管理。
图 113:存储接口连接
OFED 驱动程序:
WEKA 建议在使用 Connect-X 卡时遵循 Nvidia 对 OFED (Mellanox) 驱动程序的建议。 NVIDIA 文档 - 安装 Mellanox OFED。
驱动程序版本应为 5.8 或更高版本
确保 OFED 驱动程序的所有版本在 WEKA 群集中的所有节点上保持一致(即确保 weka01 安装了适当的 OFED)。
对于 Ubuntu,建议使用以下命令:
-
./mlnxofedinstall --force --dkms --all.
也可以在所有计算机上(以 root 身份)运行以下脚本以设置适当的 Mellanox 固件设置。
-
#!/bin/bash mst start for MLXDEV in /dev/mst/* ; do mlxconfig -d ${MLXDEV} -y s ADVANCED_PCI_SETTINGS=1 PCI_WR_ORDERING=1 mlxfwreset -y -d ${MLXDEV} reset done netplan apply mst stop
使用瞻博网络交换机的 WEKA 数据平台最佳实践
我们的群集是使用 WEKA 分布式 POSIX 客户端配置的,这需要进行一些调整才能集成到设计的其余部分。
我们建议采取以下措施:
- 将 MTU 设置为 9000
- 如果后端存储交换矩阵与其他资源共享,请设置适当的 CoS 优先级,以确保 AI 提取和检查点流量不会因其他应用程序的网络 I/O 请求而中断。
- 如果使用 GPU 直接存储而不是 WEKA 分布式 POSIX 客户端,则必须利用显式拥塞通知 (ECN) 和优先流控制 (PFC) 在网络上设置拥塞管理和缓解功能。
WEKA 还提供了可用于从 WEKA 系统角度测试和测量网络活动的工具。
命令行工具“weka stats”报告“良好”网络性能的百分比输出。
-
weka stats --start-time -24h --end-time -1m --show- internal --stat GOODPUT_TX_ RATIO,GOODPUT_RX_RATIO
当输出以百分比形式显示时,任何低于 85% 的数据都表示需要进一步检查的潜在问题。
示例:
-
NODE CATEGORY TIMESTAMP STAT VALUE all network 2024-06-14T12:58:00 GOODPUT_RX_RATIO 99.7636 % all network 2024-06-14T12:58:00 GOODPUT_TX_RATIO 99.7636 % all network 2024-06-14T12:57:00 GOODPUT_RX_RATIO 99.7663 % all network 2024-06-14T12:57:00 GOODPUT_TX_RATIO 99.7663 % all network 2024-06-14T12:56:00 GOODPUT_RX_RATIO 99.752 % all network 2024-06-14T12:56:00 GOODPUT_TX_RATIO 99.752 % all network 2024-06-14T12:55:00 GOODPUT_RX_RATIO 99.7578 % all network 2024-06-14T12:55:00 GOODPUT_TX_RATIO 99.7578 % all network 2024-06-14T12:54:00 GOODPUT_RX_RATIO 99.7795 % all network 2024-06-14T12:54:00 GOODPUT_TX_RATIO 99.7795 % all network 2024-06-14T12:53:00 GOODPUT_RX_RATIO 99.7685 % all network 2024-06-14T12:53:00 GOODPUT_TX_RATIO 99.7685 % all network 2024-06-14T12:52:00 GOODPUT_RX_RATIO 99.775 % all network 2024-06-14T12:52:00 GOODPUT_TX_RATIO 99.775 %
weka stats --category=network --show-internal --stat DROPPED_PACKETS --start-time -24h --end-time -1m -z
-
NODE CATEGORY TIMESTAMP STAT VALUE all network 2024-06-14T13:06:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:05:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:04:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:03:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:02:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:01:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T13:00:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:59:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:58:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:57:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:56:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:55:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:54:00 DROPPED_PACKETS 0 Packets/Sec all network 2024-06-14T12:53:00 DROPPED_PACKETS 0 Packets/Sec
如果 weka stats 命令报告如图所示丢弃的数据包,则需要进一步调查。
更多详细信息和其他工具可以在 WEKA 网站上找到 手动准备系统以进行 WEKA 配置 |W E K A.