一般来说,当人们考虑对象存储时,只考虑一件事——每TB/GB的价格。尽管这是一个不错的成本指标,但它的作用是使对象存储一维化,并将其降级为存档用例。此外,它扭曲了企业技术堆栈中这一日益重要的部分的价值。
坦率地说,这应该归咎于传统对象存储厂商。多年来,它们在技术方面创新不足,转而提供更便宜的产品。它们还会说这就是顾客想要的,但它们错了。
AWS去年收入达250亿美元可作为证据——其中绝大多数是高性能的主要对象存储。如果我们保守地将S3存储服务的规模算为200亿美元,可以说,S3的规模是其他厂商的总和。再加上价格相似、增长迅速的Azure Blob和Google Cloud,情况就明朗了——成本只是一个考虑因素。
这就是为什么现代企业关注的是更广泛的一系列指标——强调性能、运维效率、灵活性和价格的指标,而不仅仅是价格。他们认识到将数据放在“冰上”会降低其价值。在目标是最大化组织数据的价值的时候,供应商的方法似乎与之背道而驰。
企业应该考虑什么?这分为五大类:性能、可扩展性、S3兼容性、故障响应、一致性。成本之外,这五个要素定义了对象存储中的新指标。
性能
传统上,对象存储并不以性能着称。在价格竞争中,厂商不断牺牲性能。现代对象存储改变了这一点。
从Amazon到Minio,我们都看到了接近甚至超过Hadoop的速度。新的对象存储指标涉及到读写速度(HDD为10GB/s,NVMe为35+GB/s)。对于Spark、Presto、Tensorflow、Teradata、Vertica、Splunk和分析堆栈中的其他现代计算框架来说,这种吞吐量非常快。MPP数据库以对象存储为目标这一事实证明,对象存储越来越成为主要存储。
如果对象存储系统无法提供这些速度,则无法与所有数据交互,也无法从中提取价值。即使你将数据从传统对象存储中提取到内存中的处理框架中,你仍然需要吞吐量来将数据往返于该内存中——你根本无法从传统对象设备获得这样的吞吐量。
这是一个关键点。新的性能指标是吞吐量,而不是延迟。这是大规模数据所需要的——这是现代数据基础设施中的一个标准。
应该注意的是,虽然性能基准是一个很好的代理,但是只有在该环境中运行了特定的应用程序之后,才能真正知道性能是什么样子的。只有这样,它们才能理解瓶颈到底是什么,是存储软件、驱动器、网络还是计算层。
可伸缩性
可伸缩性通常指一个命名空间中的PB数。每个供应商都声称zeta规模,但隐藏了这样一个事实:随着规模的扩大,庞大的、单体的系统变得脆弱、复杂、不稳定和昂贵。
可伸缩性的新指标是你可以处理多少个不同的命名空间或租户。
这个指标是直接从hyper-scaler中获取的,其中,构建块很小,但可以扩展到数十亿个。简而言之,这是云原生的方式。
当构建块很小时,一切都可以更有效地理解和优化——安全性、访问控制、策略管理、生命周期管理、无中断升级和更新以及最终的性能。构建块的大小是故障域可管理性的函数。这就是高弹性系统的架构。
多租户在现代企业中具有多个维度。当然,它指的是企业如何组织对数据和应用程序的访问,它也指应用程序本身以及它们在逻辑上如何相互隔离。
现代多租户方法具有以下特点:
——租户可以在短时间内从几百个发展到几百万个。
——租户之间完全隔离,使它们能够运行具有不同配置、权限、功能、安全性和服务级别的同一对象存储软件的不同版本。当扩展新服务器、更新和地理位置时,这是一个实际的运维问题。
——有弹性和按需。
——每个操作都是API驱动的,自动化的,没有人看仪表板。
——软件足够轻量,可以进行容器化,并利用Kubernetes等行业标准的编排服务。
S3兼容性
Amazon S3 API是对象存储的事实标准,以至于每个对象存储软件供应商都声称与之兼容。也就是说,AWS S3的兼容性实际上是二元的。S3兼容性的指标是1。
这意味着,有成百上千的“角落”用例并没有如你所愿发生。这对专有软件或设备供应商来说尤其具有挑战性。原因是,它们的大多数用例都是直接存档或备份,因此API调用的多样性很低,而且用例非常同质。显然,这是一个开源软件具有显着优势的领域。考虑到应用程序、操作系统和硬件架构的大小和多样性,足以覆盖大多数“角落”用例。
对应用程序创建者来说,这很重要。你需要测试应用程序。开源使评估供应商声明和确定平台对应用程序性能的影响变得容易。如果你的供应商足够好,可以作为一个门户,并被其他人作为一个门户,那么你可以有信心,它能满足你的需要。关于开源和S3的最后一点是,开源意味着企业避免了供应商锁定,提高了透明度。
关于S3兼容,如果你正在运行大数据应用程序,S3 SELECT通过用SQL从对象存储中只提取所需的内容,可以大大提高性能和效率。
另外,对bucket通知的支持也是关键。bucket通知有助于无服务器计算——这是任何基于微服务的功能即服务中的关键组件。假设对象存储是云中存储的事实标准,那么当将对象服务器公开给云原生应用程序时,此功能是必须的。
最后,S3实现需要支持Amazon S3服务器端加密API(SSE-C、SSE-S3、SSE-KMS)。更棒的是,它应该支持可证明足够安全的防篡改。
故障
在对象存储中,最容易被忽略的指标可能是系统如何处理故障。故障会发生,有多种形式。对象存储系统需要优雅地处理所有这些问题。
例如,如果存在单点故障,那么这个指标是零。
不幸的是,许多对象存储系统将使用“特殊”节点,这些节点必须启动才能使集群正常工作。其中包括名称节点或元数据服务器。这就会造成单点故障。
即使有多个故障点,承受灾难性失败的能力也是至关重要的。驱动器会出现故障,服务器会坏。关键是采用将故障视为正常情况的软件。这意味着,当磁盘或节点关闭时,软件可以不受影响地继续运行。
inline erasure coding和bitrot protection带来的革命确保在软件返回数据之前,你可以丢失与奇偶校验块一样多的磁盘或节点(这通常是驱动器的一半)。
故障很少大规模测试,但应该是强制性的。模拟负载下的故障将提供故障总成本(数据丢失、时间和技能)的准确消息。
一致性
一致性的指标是100%。一致性是任何存储系统中的一个关键组件,但严格的一致性很少。例如,Amazon S3 ListObject不是严格一致的,它只是最终一致的。
严格一致性是什么意思?对于确认的PUT操作之后的所有操作,必须保持以下状态:更新的值在从任何节点读取时都可见;更新带有冗余,免受节点故障的影响。
这意味着,如果在写入过程中拔出插头,不会丢失任何内容。结果是系统永远不会返回损坏或过时的数据。这是一个很高的标准,对交易型应用程序到备份和恢复用例都有影响。
结论
这些是对象存储中的新指标,反映了现代企业的使用模式,其中性能、一致性、可伸缩性、故障域和S3兼容性是云原生应用程序和大数据分析的基础。在构建现代数据堆栈时,除了考虑成本之外,别忘了这几个指标。
责任编辑:zl
-
驱动器
+关注
关注
52文章
8154浏览量
145990 -
存储
+关注
关注
13文章
4261浏览量
85665 -
API
+关注
关注
2文章
1484浏览量
61810
发布评论请先 登录
相关推荐
评论