对象存储的新指标
通常,当人们考虑对象存储时,他们会考虑一件事-每TB / GB的价格。尽管是合法的成本度量标准,但它具有使对象存储成为一维并将其降级到存档用例的作用。此外,它扭曲了与企业技术堆栈这一日益重要的部分相关的价值。
坦率地说,应该归咎于传统对象存储的参与者。多年来,他们一直在技术方面进行创新不足,以制造出更便宜的电器。这些老派厂商可能会争辩说这是客户想要的,但他们会错了。
可以证明这一点的是Amazon Web Services去年创造的250亿美元收入,其中绝大部分来自高性能的主要对象存储。如果我们保守地将200亿美元分配给S3存储服务,我们也可以肯定地说S3可能与其他设备市场的总和一样大。加上价格相似且快速增长的Azure Blob和Google Cloud收入,情况就很清楚了-成本只是考虑因素之一。
因此,现代企业将重点放在更广泛的指标上,这些指标强调绩效,运营效率,灵活性和价格,而不仅仅是价格。他们认识到,将您的数据置于冰上会降低其对组织的价值。在目标是最大程度地提高组织数据价值的时候,设备供应商的方法似乎是对立的。
企业应该考虑什么?好吧,它们分为五大类:
性能
可扩展性
S3兼容性
失败回应
一致性
除成本之外,这五个要素还定义了对象存储中的新指标。他们是超级六。让我们依次看一下它们。
性能
传统上,对象存储因性能而闻名。在价格竞争中,家电厂商不断牺牲性能。也就是说,他们使用诸如“冰河”之类的术语来定义其产品。
现代对象存储改变了这一点。
从Amazon到MinIO,我们看到接近Hadoop甚至超过Hadoop的速度。对象存储的新指标与HDD的10s GB / s的读写速度和NVMe的35 + GB / s的读写速度有关。对于Spark,Presto,Tensorflow,Teradata,Vertica,Splunk以及分析堆栈中其他现代计算框架而言,此吞吐量非常快。MPP数据库以对象存储为目标这一事实证明了对象存储越来越成为主要存储。
如果您的对象存储系统无法提供这些速度,那么您将无法与所有数据进行交互,也无法从中提取适当的值。即使将数据从传统对象存储中拉出到内存处理框架中,您仍然需要吞吐量才能将数据穿梭到该内存中或从内存中穿出-您根本无法从传统对象设备中获得该吞吐量。
这是关键。新的性能指标是吞吐量,而不是延迟。这是大规模数据所需要的—这是现代数据基础架构中的规范。
应该注意的是,虽然性能基准测试是一个很好的代理,但是直到性能基准在该环境中运行特定应用程序后,他们才真正知道性能是什么样。只有这样,他们才能了解瓶颈是存储软件,驱动器,网络还是计算层。
可扩展性
可伸缩性通常是指适合单个命名空间的PB数。每个供应商都声称zeta规模,但它掩盖了一个事实,那就是,随着规模的扩大,庞大的整体系统变得脆弱,复杂,不稳定且昂贵。
可伸缩性的新指标是您可以处理多少个不同的名称空间或租户。
该指标直接取自超级缩放器,在超级构建器中,构建块很小,但规模可扩展到数十亿。简而言之,它是云原生方式。
如果构建模块很小,则可以更有效地理解和优化所有内容,包括安全性,访问控制,策略管理,生命周期管理,无中断的升级和更新以及最终的性能。构建块的大小取决于故障域的可管理性。这就是架构高弹性系统的方式。
在现代企业中,多租户具有多个维度。当然,它指的是企业如何组织对数据和应用程序的访问,但同时也指的是应用程序本身,以及它们在逻辑上是如何相互隔离的。
现代的多租户方法具有以下特征:
租户可以在短时间内从几百个增长到几百万个。
租户彼此完全隔离,使他们可以运行具有不同配置,权限,功能,安全性和服务级别的同一对象存储软件的不同版本。当扩展新服务器,更新和地理位置时,这是生活中不可或缺的事实。
弹性且按需。
每个操作都是由API驱动和自动化的,无需人工干预仪表板。
该软件足够轻便,可以进行容器化,并利用Kubernetes等行业标准的编排服务。
S3相容性
Amazon S3 API是对象存储的事实上的标准,直到每个对象存储软件供应商都宣称具有兼容性。也就是说,AWS S3兼容性实际上是二进制的。它在所有情况下均有效,或在所有情况下均无效。S3兼容性的度量标准为1。
这就是说,在成百上千个可能发生的极端情况下,您期望发生的事情不会发生。对于专有软件或设备供应商而言,这尤其具有挑战性。原因是它们的大多数用例都是直接归档或备份,因此API调用的多样性非常低,并且用例相当同类。显然,这是开源软件具有明显优势的领域。考虑到应用程序,操作系统和硬件体系结构的大小和多样性,他们已经看到了大多数情况。
作为应用程序创建者,这很重要。您将需要针对那些供应商测试您的应用程序。开源使您可以轻松评估供应商的索赔并确定针对您的应用程序的平台。如果您的供应商足够好,可以充当网关,并被其他人所使用,那么您可以放心,它也可以满足您的需求。关于开源和S3的最后一点。开源意味着企业避免供应商锁定并提高透明度。这为解决方案提供了舒适的解决方案,其使用寿命远比部署的解决方案更长。
有关S3兼容性的其他几点要点。
如果您正在运行任何大数据应用程序,则S3 SELECT通过使用SQL从对象存储中仅提取需要的内容,可以提高性能和效率的数量级。
此外,支持桶通知是关键。桶通知可简化无服务器计算,这是任何基于微服务的功能即服务中的关键组成部分。假设对象存储是云中的实际存储,那么在将对象服务器暴露给云本机应用程序时,此功能就成了赌注。
最后,S3实现需要支持Amazon S3服务器端加密API(SSE-C,SSE-S3,SSE-KMS)。更好的是,它应该支持可证明是安全的防篡改。少了会带来不必要的风险。
失败
对象存储中最容易被忽视的指标也许是系统如何处理故障。失败会发生并且有多种味道。对象存储系统需要妥善处理所有这些对象。
例如,存在单点故障。度量标准为零。
不幸的是,许多对象存储系统将采用必须运行的“特殊”节点才能使群集正常工作。这些包括名称节点或元数据服务器。这将导致单点故障。
即使在多个故障点,承受灾难性故障的能力也至关重要。驱动器发生故障。服务器出现故障。关键是采用旨在将故障视为正常情况的软件。这意味着,当磁盘或节点出现故障时,该软件将保持正常运行。
内联擦除编码和位保护保护带来的革新确保在软件不再能够返回数据之前,您可以丢失具有奇偶校验块的磁盘或节点。通常,这将是驱动器的一半。
失败很少在量表中进行测试,但是应该是强制性的。在负载下模拟故障将提供该故障的总成本(数据丢失,时间和技能)的准确信息。
一致性
一致性指标为100%-否则称为严格。一致性是任何存储系统中的关键组成部分,但是严格的一致性很少见。例如,Amazon S3 ListObject不是严格一致的,它只是最终一致的。
严格一致性是什么意思?对于经过确认的PUT操作之后的所有操作,必须满足以下条件:
从任何节点读取时,更新的值都是可见的。
通过冗余保护更新免受节点故障的影响。
这意味着,如果在写入过程中拔出插头,则不会丢失任何内容。结果是系统永远不会返回损坏或过时的数据。这是一个很高的标准,从事务性应用程序到备份和还原用例都有影响。
结论
这些是对象存储中的新指标,反映了现代企业的使用模式-性能,一致性,可伸缩性,故障域和S3兼容性是云原生应用程序和大数据分析的基础。我们鼓励读者在构建现代数据堆栈时除了考虑成本外,还使用此列表。我们认识到成本很重要-这就是为什么我们在网站上发布透明的定价的原因。随时查看并与我们进行对话。如果您有PB数据,请务必注意上限,因为它可以为将来的成本提供特殊的确定性。