设计工具
存储

打造性能高达数百万 IOPS 的网络文件系统

Ryan Meredith | 2020 年 6 月

利用 Weka™ 打造性能高达数百万 IOPS 的网络文件系统

如何在整个数据中心共享现代 NVMe™ 驱动器的性能? 对于这个问题,有许多彼此矛盾的答案,也有许多公司提出了令人兴奋的解决方案。

究竟哪种解决方案比较理想,这取决于当前应用的需求。在多个服务器和应用之间共享数据的最简单方法是将数据加载到远程文件系统上。诸如 NFS 和 Windows SMB 等基于文件的解决方案虽然因易于使用而得到了普遍采用,但它们并不高效。如果您需要远程文件系统存储和超高性能,该怎么办? 许多基于文件系统的高价值工作负载(如人工智能训练和推理)都可以从高性能文件存储中受益。这正是 Weka™ 的用武之地。

我在美光解决方案工程实验室 (Micron Solutions Engineering Lab) 的团队最近完成了利用 Weka 共享美光主流 7300 PRO NVMe SSD 的概念验证。结果(文件系统的 IOPS 达到数百万)非常值得关注。

测试配置

Weka 构建了一个高性能、可共享的并行文件系统,叫做 WekaFS。据 Weka 称,它在生产环境中的部署通常需要至少八个节点,但如果用户不需要虚拟备用容量来重建节点,节点数量可以减少到六个。

我们的测试使用了 4 + 2(数据 + 奇偶校验)纠删码数据保护配置中的六个节点。Weka 支持 N + 2 和 N + 4 的纠删码配置,可以使用两个或四个数据保护节点。随着以数据为中心的节点数量的增加,会发生两件事:写入性能提高和数据暴露可能性降低。(详见 Weka 数据保护白皮书。)

下面是我们在测试中使用的配置(图 1):

  • 6 个 Dell™ R740xd 2U,搭载 2 个英特尔 6142 处理器 (16 核 2.60GHz)
  • 每台服务器 1 个 100 GbE Mellanox™ ConnectX™-5 NIC
  • 每台服务器 6 个 7300 PRO 7.68TB SSD(共 36 个驱动器)
  • 9 个 FIO 负载生成器,每个带有 100 GbE NIC
  • Cumulus™ Linux™ 100 GbE 交换机(启用巨型帧)
  • WekaFS 版本 3.6.1
  • CentOS™ 7.6.1810(内核 3.10.0-957.el7.x86_64)
通过 100GbE 链路连接到 WEKA 存储服务器和 FIO 工作负载生成器的网络交换机 图 1:测试架构概览

我们选择了容量大、性能出色(表 1)的美光 7300 PRO 7.68TB SSD 来完成这项测试。

Weka 的安装和配置非常简单,这让我们能够快速配置系统。对于那些在安装过程中需要帮助的人,Weka 有一个很好的支持团队。

表 1:美光 7300 的性能特点
模态 容量 4KB 随机读取 IOPS 4KB 随机写入 IOPS 4KB 随机 70/30 (IOPS) 128KB 顺序读取 128KB 顺序写入
美光 7300 PRO 7.68TB 520KB 85KB 190KB 3.0GB/s 1.8 GB/s

测试方法

为了评估使用美光 7300 PRO SSD 的 Weka 解决方案的性能,我们采用了传统的“四指标”测试策略,在 100% 读取、100% 写入和 70% 读取/30% 写入混合的小块工作负载上测试每秒的操作次数,并在 100% 读取和写入的大块工作负载上测试吞吐量。

我们使用九个客户端节点(每个节点运行八个 fio 执行作业)来执行所有测试,每个客户端针对共享文件系统上的单独文件夹。对于每个工作负载,我们逐渐增加队列深度 (QD),直到可以确定最高性能水平。我们将 Weka 配置为使用 19 个 CPU 内核,其中 6 个内核专门用于管理每个 Weka 数据节点中 6 个数据驱动器的 I/O。

性能结果

我们的前三项测试侧重于以每秒读写操作次数 (IOPS) 衡量的 4KB 区块大小。我们还提供以微秒 (µs) 为单位的平均延迟。

显示小块、100% 随机读取性能结果的图表 图 2:小块 100% 随机读取性能结果

当使用 100% 4KB 随机读取时,我们看到随着队列深度的增大,性能持续提高。达到 QD32 时,最高性能超过 460 万 IOPS,而平均延迟增至 487µs,比 QD16 时增加 63%(图 2)。

小块 100% 随机写入性能结果 图 3:小块 100% 随机写入性能结果

当使用 100% 4KB 随机写入时,我们看到随着队列深度从 QD1 增大到 QD4,性能快速提高至约 626,000 IOPS。而后随着队列深度继续增大,IOPS 明显趋于平稳,最后达到最高 696,000 IOPS,而延迟则从 QD8 时的 830µs 增加到 QD16 时的 1.6ms(图 3)。

根据我们的经验,在这种性能水平下,对远程文件系统的 4KB 随机写入达到亚毫秒级延迟是相当引人注目的。需要注意的是,写入性能会极大地受到已部署数据节点数量的影响。使用更多节点可提高整体写入性能。

小块 70% 读取/30% 写入性能结果 图 4:小块 70% 读取/30% 写入性能结果

最后,对于 IOPS 性能,我们使用 4KB 70% 读取/30% 写入工作负载进行了测试。I/O 性能峰值超过 160 万 IOPS,在 QD16 时,读取延迟为 467µs,写入延迟为 3.6ms(图 4)。

我们接下来的一系列测试侧重于大块 (128KB) 顺序工作负载。大块 I/O 测试旨在模拟视频流媒体、数据库决策支持系统或大数据分析工作负载等应用场景。这类工作负载测试以每秒传输千兆字节 (GB/s) 为单位衡量了数据吞吐量。

大块 100% 顺序读取性能结果 图 5:大块 100% 顺序读取性能结果

首先,我们测试了各种队列深度下的 128KB 顺序 100% 读取。在 QD16 时性能达到最高,为 62GB/s,此时平均延迟为 2.3ms(图 5)。

大块 100% 顺序写入性能结果 图 6:大块 100% 顺序写入性能结果

测试表明,100% 128KB 顺序写入工作负载的吞吐量也在 QD16 时达到最大。但与 128KB 顺序读取工作负载一样,QD16 时的写入性能也反映了延迟相对于 QD8 时的增加,在本例中,延迟增加了大约 86%(图 6)。

结论

我们的测试表明,使用 Weka 可以获得令人印象深刻的性能。美光 NVMe SSD(如美光 7300)在易于管理的文件系统解决方案中可以达到高水平的性能。Weka 通过同时提供数据保护的软件定义解决方案生成数百万 IOPS 和 GB/s 的吞吐量,突破了高性能文件存储的极限。

美光 7300 NVMe SSD 兼具了 NVMe 的高性能与通常只能在 SATA 解决方案中看到的低成本和低功耗特性。这些因素使得 7300 成为广泛部署场景(如 Weka 提供的基于文件的存储架构)的首选驱动器。

更多信息

要了解有关 Weka 分布式文件系统的更多信息,请下载 WekaFS 数据表

要了解有关美光 NVMe SSD(如美光 7300)的更多信息,请访问 micron.com 上的数据中心 SSD 页面

此外,请关注我们的 Twitter 及 LinkedIn 账号,了解未来有关在数据中心解决方案(如 Weka 提供的解决方案)中使用 SSD 的最新讨论。

Director, Storage Solutions Architecture

Ryan Meredith

Ryan Meredith is director of Data Center Workload Engineering for Micron's Storage Business Unit, testing new technologies to help build Micron's thought leadership and awareness in fields like AI and NVMe-oF/TCP, along with all-flash software-defined storage technologies.