新的对象存储指标

新的对象存储指标Nele-Diel 的《飞行堡垒》

S3对象存储命令 Mail.ru 云存储 翻译了一篇关于选择对象存储时重要标准的文章。 以下是作者视角的文字。

当谈到对象存储时,人们通常只考虑一件事:每 TB/GB 的价格。 当然,这一指标很重要,但它使该方法片面并将对象存储等同于归档存储工具。 此外,这种方法降低了对象存储对于企业技术堆栈的重要性。

选择对象存储时,应注意五个特点:

  • 性能;
  • 可扩展性;
  • S3兼容;
  • 对失败的反应;
  • 正直。

这五个特征以及成本是对象存储的新指标。 让我们看看它们。

Производительность

传统的对象存储缺乏性能。 服务提供商为了追求低价而不断牺牲它。 然而,现代对象存储的情况有所不同。

各种存储系统接近甚至超过 Hadoop 的速度。 现代对读写速度的要求:硬盘驱动器为 10 GB/s,NVMe 高达 35 GB/s。 

此吞吐量足以支持 Spark、Presto、Tensorflow、Teradata、Vertica、Splunk 和分析堆栈中的其他现代计算框架。 MPP 数据库被配置为对象存储这一事实表明它越来越多地被用作主存储。

如果您的存储系统无法提供您所需的速度,您就无法使用数据并从中提取价值。 即使您将数据从对象存储检索到内存中处理结构中,您仍然需要带宽来将数据传输到内存或从内存中传输数据。 传统的对象存储还不够。

这是关键点:新的性能指标是吞吐量,而不是延迟。 它是大规模数据所必需的,也是现代数据基础设施的规范。

虽然基准测试是确定性能的好方法,但在环境中运行应用程序之前无法准确测量它。 只有在它之后你才能说出瓶颈到底在哪里:在软件、磁盘、网络还是在计算级别。

可扩展性

可扩展性是指适合一个命名空间的 PB 数。 供应商声称易于扩展,但他们没有说的是,随着扩展,大型整体系统会变得脆弱、复杂、不稳定且昂贵。

可扩展性的新指标是您可以服务的命名空间或客户端的数量。 该指标直接取自超大规模企业,其中存储构建块很小,但可扩展至数十亿个单位。 一般来说,这是一个云指标。

当构建块较小时,更容易针对安全性、访问控制、策略管理、生命周期管理和无中断更新进行优化。 并最终确保生产力。 构建块的大小是故障区域可控性的函数,这就是构建高弹性系统的方式。

多租户有很多特点。 虽然该维度涉及组织如何提供对数据和应用程序的访问,但它也指应用程序本身以及将它们相互隔离背后的逻辑。

现代多客户端方法的特征:

  • 短时间内,客户数量可以从数百增长到数百万。
  • 客户端之间完全隔离。 这使得他们能够运行同一软件的不同版本,并存储具有不同配置、权限、功能、安全性和维护级别的对象。 当扩展到新的服务器、更新和地理位置时,这是必要的。
  • 存储可弹性扩展,资源按需提供。
  • 每个操作均由 API 控制,并且是自动化的,无需人工干预。
  • 软件可以托管在容器中并使用标准编排系统(例如 Kubernetes)。

S3兼容

Amazon S3 API 是对象存储事实上的标准。 每个对象存储软件供应商都声称与其兼容。 与 S3 的兼容性是二进制的:要么完全实现,要么没有完全实现。

实际上,在使用对象存储时,有数百或数千种边缘场景会出现问题。 特别是来自专有软件和服务的提供商。 它的主要用例是直接归档或备份,因此调用 API 的理由很少,用例是同构的。

开源软件具有显着的优势。 考虑到应用程序、操作系统和硬件架构的规模和多样性,它涵盖了大多数边缘场景。

所有这些对于应用程序开发人员都很重要,因此值得与存储提供商一起测试应用程序。 开源使这个过程变得更容易——更容易理解哪个平台适合您的应用程序。 该提供程序可以用作存储的单一入口点,这意味着它将满足您的需求。 

开源意味着:应用程序不依赖于供应商并且更加透明。 这确保了较长的应用程序生命周期。

还有一些关于开源和 S3 的注意事项。 

如果您正在运行大数据应用程序,S3 SELECT 可以将性能和效率提高一个数量级。 它通过使用 SQL 从存储中仅检索您需要的对象来实现此目的。

关键点是对存储桶通知的支持。 存储桶通知促进无服务器计算,这是作为服务交付的任何微服务架构的重要组成部分。 鉴于对象存储实际上是云存储,当基于云的应用程序使用对象存储时,此功能变得至关重要。

最后,S3 实施必须支持 Amazon S3 服务器端加密 API:SSE-C、SSE-S3、SSE-KMS。 更好的是,S3 支持真正安全的篡改保护。 

对失败的响应

一个可能经常被忽视的指标是系统如何处理故障。 发生故障的原因有多种,对象存储必须处理所有这些原因。

例如,存在单点故障,其度量为零。

不幸的是,许多对象存储系统使用特殊节点,必须启用这些节点才能使集群正常运行。 其中包括名称节点或元数据服务器 - 这会产生单点故障。

即使存在多个故障点,承受灾难性故障的能力也至关重要。 磁盘故障,服务器故障。 关键是创建能够将故障视为正常情况的软件。 如果磁盘或节点发生故障,此类软件将继续工作而无需更改。

针对数据擦除和数据降级的内置保护可确保您丢失与奇偶校验块一样多的磁盘或节点(通常是磁盘的一半)。 只有这样软件才会无法返回数据。

故障很少在负载下进行测试,但这种测试是强制性的。 模拟负载故障将显示故障后产生的总成本。

一致性

100% 的一致性分数也称为严格一致性。 一致性是任何存储系统的关键组成部分,但强一致性很少见。 例如,Amazon S3 ListObject并不是严格一致的,它只是在末尾一致。

严格一致性是什么意思? 对于确认 PUT 操作之后的所有操作,必须发生以下情况:

  • 从任何节点读取时更新的值都是可见的。
  • 更新受到保护,免受节点故障冗余的影响。

这意味着如果您在录音过程中拔掉插头,不会丢失任何内容。 系统永远不会返回损坏或过时的数据。 这是一个在许多场景中都很重要的高标准,从事务性应用程序到备份和恢复。

结论

这些新的对象存储指标反映了当今组织的使用模式,其中性能、一致性、可扩展性、故障域和 S3 兼容性是云应用程序和大数据分析的构建块。 我建议在构建现代数据堆栈时除了价格之外还使用此列表。 

关于 Mail.ru 云解决方案对象存储: S3架构。 Mail.ru 云存储 3 年的演变.

还有什么要读的:

  1. S3 对象存储中基于 Webhook 的事件驱动应用程序示例 Mail.ru Cloud Solutions.
  2. 不只是 Ceph:MCS 云块存储 
  3. 使用 Mail.ru Cloud Solutions S3 对象存储作为文件系统.
  4. 我们的 Telegram 频道提供有关 S3 存储和其他产品更新的新闻

来源: habr.com

添加评论