对象存储的演进之路

每年创造的数据量都在呈指数级速度增长,几乎每个企业现在都依赖于技术,而这些业务所产生的信息可以说已经成为他们最大的资产。非结构化数据是最好的存储类型,其增长幅度最大。那么,我们如何使用对象存储技术,以及我们能够期待它带来什么?

什么是对象存储?

对象存储的发展源于对长期存储大量分结构化数据的高度弹性需求,回顾过去的20奶奶,我们有块存储(传统存储)和NAS设备(通常也作为文件服务器)。NAS并没有真正扩展到PB级,并且也没有提供长期数据保留的弹性水平。一般来说,企业使用磁带(Tape)来满足需求,但磁带是缓慢而低效的。

开发的对象存储通过提供在线访问内容来填补空白,多年来已经发展成为一种成熟的技术。利用纠删码(erasure coding,EC)等新的保护方法,通常可以解决在大型档案中数据保护的问题。

对象存储使用基于Web的协议来存储和检索数据,从本质上讲,大多数提供四个基元CRUD:创建(Create)、读取(Read)、更新(Update)、删除(Delete)。在很多情况下,Update只是为了与Delete和Create搭配。这意味着使用嵌入数据和关联元数据的HTTP发出基于REST的API调用与对象存储进行交互相对简单。

这种简单的操作突出了对象存储的一个问题:应用程序需要重新写入以使用对象存储API。厂商通过提供SDK来帮助完成这一过程,但需要更改应用程序。这个问题让我们看到了对象存储演进的第一个对象:多协议访问。

多协议

对象存储实现多协议访问已经有一段时间,以网关或附加软件的形式使用对象存储后端作为大容量池。这一举措带来的问题是它们是否真正提供来自不同协议栈的相同数据的并发访问。使用NFS存储和检索对象可以,但是使用NFS存储和使用基于Web的协议访问又会怎么样?

为什么企业希望有能力存储一种协议并通过另一种协议访问?提供NFS意味着应用程序可以在不修改的情况下使用对象存储。通过提供并发的基于Web的范文,分析工具可以访问数据,而不会引入以NFS协议相关的性能问题,例如锁定或多线程冲击同一对象。分析软件的典型值读配置文件意味着可以在不影响主应用的情况下分析数据。

很多物联网设备只能通过NFS存储,因此将这类内容纳入对象存储意味着基于文件的协议至关重要。

可扩展性

影响对象存储应用的一个因素是收缩的能力,而不仅仅是扩展。很多对象存储解决方案的初始容量为数百TB,这对于较小的IT组织来说并不实用,厂商们开始通过生产可以收缩到数十兆字节容量的产品来解决这一问题。

显然,大容量硬盘和闪存可能会成为一个问题,但是可以实现对象存储带来的功能优势。因此,厂商提供的解决方案是纯软件的,可以部署在专用硬件上,也可以作为内部部署或公有云中的虚拟实例部署。

随着物联网的不断发展,数据将会出现爆炸式增长,大量的小型对象存储将证明在满足物联网持续需求方面的优势。

软件定义

回到纯软件解决方案,提供纯软件解决方案意味着企业可以为他们的环境选择正确类型的硬件。在硬件供应合同已经存在的情况下,企业可以简单地支付对象存储软件并将之部署在现有设备上,这包括对可能以其他方式处理的旧硬件进行测试。

开源

对象存储软件定义的另一个发展方向是开源,Ceph是作为开源模式开发的存储平台之一。OpenIO提供了与无服务器一样的高级功能,可以提供相同的体验,作为优质服务收费。另一个开源解决方案Minio最近获得了2000万美元的资金,将其平台推向更广泛的受众,包括Docker容器。

试用版

对软件的关注意味着组织很容易尝试对象存储,除了IBM Cloud Storage和DDN外,几乎所有供应商都通过下载软件或使用公司的实验室环境提供某种试用流程。提供试用版可以为软件带来开放性,以便于长期评估和采用。

未来如何发展

考虑对象存储的未来,可以说最近的发展方向是使解决方案更易于使用,更注重软件和厂商的开发易用性和安装。多协议连接更多的应用程序,使数据更容易进入对象存储。在未来几年内,我们将看到对象存储仍然是持久数据存储的重要平台。

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2018-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

还不知道这 11 个超酷的编程新工具你就 out 了!

在这篇文章中,我们将列出你在日常工作中能够使用的新的开发工具。很多对在线流媒体感兴趣的开发人员已经开始在他们的开发环境中使用这些新工具,因为相比他们的旧的设施来...

11220
来自专栏非著名程序员

十大技巧快速提升原生APP开发性能

移动应用市场用户争夺战日益激烈,原来做APP拼想法拼创意拼是否抓住用户痛点。现在,精细化用户体验成为了一个APP能否留存用户的关键问题,一旦用户觉得体验不畅,马...

220100
来自专栏章鱼的慢慢技术路

游戏服务器概述

(1)了解常见查找/排序算法的特点:利用算法来改善性能,胜于通过编译器选项、编程技巧;

67220
来自专栏EAWorld

DevOps之软件产品管理最佳实践

? 大家好,我是王召,现在负责新一代数字化企业云平台 “The Platform” 的SPM、MKT领域系统。很荣幸这次有机会和大家分享“DevOps领域系统...

31950
来自专栏木可大大

漫谈软件开发过程

一个合理而又有效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。目前软件开发一般过程包含以下几个步骤:理解需求、架构设...

14740
来自专栏葡萄城控件技术团队

[经验总结] 关于单元测试

偶然想起@jeffz_cn在twitter上问:“私有方法真的不应该单元测试吗?为什么?我觉得有的组件只是逻辑复杂一些,因此会提取私有方法,并且测试这些私有方法...

19980
来自专栏SDNLAB

什么是开放网络?

网络行业的发展如果非要归纳出一个明确的发展趋势的话,那这个趋势无疑是“开放”。业界有一个奇怪的现象,但凡涉及到“开源、开放”的技术或者社区,好像都比较受到追捧,...

30650
来自专栏云原生架构实践

什么是微服务

《POJOs in Action》作者,CloudFoundry.com的创建者之一

20740
来自专栏Golang语言社区

[Go语言]采用Go语言作为服务端编程语言的建议书

按:这是我给公司(部门)写的使用推广Go语言的建议书,给领导看了以后,领导同意使用Go语言对一些服务器程序进行改写并部署到外网进行验证。希望这篇文章能够给同样在...

66770
来自专栏Golang语言社区

[Go语言]采用Go语言作为服务端编程语言的建议书

按:这是我给公司(部门)写的使用推广Go语言的建议书,给领导看了以后,领导同意使用Go语言对一些服务器程序进行改写并部署到外网进行验证。希望这篇文章能够给同样在...

1.1K80

扫码关注云+社区

领取腾讯云代金券