对象存储是你在云上可以创建的一种“网盘”。这个网盘可以存储任意的二进制文件,包括结构化和非结构化数据。你可以随时上传下载,也可以修改和删除。当然,云上对象存储会保证你数据的可靠性、可用性和扩展性,你不需要操心这些细节。
和IaaS的区别
第一个主要区别,在于访问的接口与形式。<br>云硬盘其实是挂载到虚拟机的虚拟硬盘,它是通过实现操作系统级别的底层接口,作为虚拟机的块存储设备而存在。我们也必须连接到相关的虚拟机,才能访问它里面的数据。而对象存储,本质是一个网络化的服务,调用方主要通过高层的 API 和 SDK 来和它进行交互。不管是面向外部公开互联网服务,还是和内部应用程序对接,对象存储都是通过提供像 HTTP 这样的网络接口来实现的。所以它的独立性很强,不需要依赖其他组件就可以运作。<br>这也正是我们把对象存储放在 PaaS 篇,而不是 IaaS 篇中讲解的原因。虽然它的功能很“基础”,但它的产品形态是非常典型的 PaaS,因为你不需要操心下面支撑它的具体机器和可用性等等问题,只需要依赖它,在它之上构建你的应用就行了。<br>
第二个主要区别,也是对象存储的一大特征,就是对象存储内本身不存在一个真正的文件系统,而是更接近一个键值(Key-Value)形式的存储服务。<br>这里的键就是对象的路径(路径中包含斜杠符号“/”),这里的值就是存储对象的二进制文件。键值系统和云硬盘上经典文件系统的核心差异,就在于文件系统保存了更多的元数据,尤其是实现了目录结构和目录操作。而键值系统中,所谓的目录其实是多个对象共享的路径前缀,可以说是用前缀模拟出了目录。<br>
对象存储的巨大容量<br>作为云计算最具代表性的服务之一,它的可扩展性(Scalability)是毋庸置疑的,对象存储能够轻松地容纳上 PB 的超大容量数据,这是任何的云硬盘所不能企及的。所以对象存储是名副其实的大数据存储。<br><br>
高级特性
存储分层
可以按照访问热度,设置从热到冷不同的存储级别(或者叫存储类型)。其中,存储级别为热的对象,存储空间占用的成本稍高,但访问读取不需要收取额外的费用;而存储级别越冷,则存储空间的单位成本越低,但访问读取需要收取一定的费用。到了极少访问的存档级别,数据的“解冻”可能还需要花费一些时间。
对象的生命周期管理
设置一定的过期规则,当对象满足规则时(通常每天判断一次),可以自动地执行一些清理操作。比如,你可以对一个存储桶或目录进行设置,要求最后修改时间超过 60 天的文件自动切换到低频访问层,超过 180 天的文件则进行归档或删除。
对象的版本管理
记录对象的多个版本并能进行回滚和恢复
跨区域同步
访问日志分析
应用场景
一切需要保存数据的地方,不论是原始数据的保留备份、中间结果的临时落地,还是处理结果数据的永久保存,你都可以考虑对象存储是否适用。
简单的k-v数据库
大数据应用的存储服务