块比对象存储和其他神话更快

块比对象存储和其他神话更快

我们一直在与一家大型金融服务机构合作,一家领先的图形数据库供应商告诉他们“S3 blob 存储速度太慢,无法支持任何数据库,您应该改用更快的块存储和文件系统。”

忽略声明甚至没有意义的事实 - 它是苹果(存储访问类型)与橙子(存储类型)的比较,我们认为它需要直接解决。

有问题的数据库供应商并不是故意的,也没有特定的议程,但如果他们不知道更多,其他人也可能不知道。这篇文章旨在阐明不同的存储技术如何在架构中发挥不同的作用,讨论哪些因素会影响性能,并从总体上直接说明对象存储对数据库工作负载的适用性。

让我们从处理苹果和橘子问题开始。将存储系统的性能与存储访问类型相关联在多个层面上都是错误的。不幸的是,这是业内常见的误解和混乱根源。

既然我们已经明确了访问与性能的关系,那么让我们来处理性能问题。

存储系统性能

当您考虑存储系统性能时,您通常会考虑吞吐量和 IOPS/延迟。传统上,业界认为对象存储是吞吐量优化的存储系统,而文件/块是 IOPS/延迟优化的解决方案。

我说传统上,因为线条现在更加模糊。例如,MinIO 在小文件优化方面投入了大量资金,这反过来又带来了主要的 IOPS 收益。此外,SAN/NAS 解决方案的速度大大超过了 PB,因此优势减弱了。

这里的要点是,当涉及到存储系统性能时,工作负载的大小、类型和特征非常重要,并且依赖过时的“格言”是构建现代系统的糟糕方法。

因为它具体涉及上面的“对象很慢”的说法,所以这是不正确的。自早期对象存储系统以低端设备硬件和 HDD 进入市场以来,对象存储已经取得了长足的进步。话虽如此,快速对象存储并不是今天的新闻。也许他们还在将 AWS S3 即服务(不是 S3 API)与本地 SSD/NVME 驱动器性能进行比较,但即便如此,两者都非常快。Snowflake 在 S3 上运行,并且从一开始就有。如果它不快,他们会选择别的东西。他们不必选择 S3。

现代对象存储将以硬件速度运行。有来自多个来源的大量数据支持该断言。IntelWestern DigitalSuperMicroSeagate都对 MinIO 进行了性能测试,发现确实如此。给一个像 MinIO NVMe 这样的现代对象存储系统,我们将淹没一个 100GbE 网络。给我们 HDD,我们会在网络饱和之前将其最大化。

正确架构后,像 MinIO 这样的现代对象存储与您安装的硬件一样快。那只是一个事实。

最近的一项基准测试在 GET 上达到了 325 GiB/s (349 GB/s),在 PUT 上达到了 165 GiB/s (177 GB/s),只有 32 个现成的 NVMe SSD 节点。MinIO 不仅提供了为要求苛刻的工作负载提供动力所需的性能,例如Apache SparkStarburst Presto/TrinoClickhouse以及您能想到的任何其他云原生数据库、分析或 AI/ML 工作负载。

在这种情况下,应用程序供应商可能会推荐基于文件系统或块的存储,因为它们依赖于这些“存储访问”方法,而不是因为“存储系统”及其性能特征。如果是这样的话,那将是他们系统中的一个缺点——而不是技术论据。尽管如此,让我们将注意力转移到访问问题上。

存储访问

同样,存储访问(即文件与块与对象)与性能不同。主要区别在于 API。对象使用 RESTful API,这就是云的运行方式。文件使用 POSIX。块使用 FC/SCSI/iSCSI。最后两个早于云,通常被认为是该运营模型中的遗留问题。还有其他考虑因素。例如,与本质上简单(因此本质上可扩展)的基于对象的协议(即 S3)相比,基于文件的协议(即 POSIX)可能有更多的选项和聊天。尽管如此,这些选择是独立于性能但对性能有影响的。

访问方法也有点(不完全)依赖于硬件。这包括 CPU、驱动器类型、内存等。软件架构也很重要。接入侧的关键区域是层数和每层的效率。如果存在必须导航的多个层,例如使用 S3 接口前置文件存储,您将构建复杂性,从而抑制性能。同样,每一层如何组织、写入、扫描和读取数据对存储系统的整体性能有很大影响。最好的存储访问架构具有最少数量和最高效的层 - 认识到每个人最终都会在块层写入和读取驱动器(虽然不是本文的重点 - 从存储的角度来看“块”不是“一层”)。块是必不可少的层,因为它需要访问底层物理存储,但块在管理和呈现有关非结构化数据的元数据方面的能力有限。在这种情况下,需要对象存储来快速有效地执行依赖于元数据的操作,例如搜索。

消除外部依赖性,如外部数据库(用于元数据)也将解决潜在的性能问题,因为环境规模(一层但多路径)。

结论


架构师需要了解存储访问和存储性能不应混为一谈。它们在某些方面是相关的,但其中一个的选择不会自动决定另一个的行为。块并不总是很快。对象不慢。有足够的数据可以使这成为一个有争议的问题。

任何以不同方式告诉您的人要么不了解存储,要么试图向您推销东西。


上一篇 下一篇