「STORAGE」- 对象存储

Object-based Storage

《Ceph企业级分布式存储: 原理与工程实践》

对象存储是一种解决和处理离散单元的方法。离散后的数据称为对象,因此数据会离散出很多对象。与传统的文件系统中的文件不同,对象存储不像文件系统那样通过目录树或者子目录树对文件进行组织。

原理简述

在一个平坦的命名空间中(称之为桶),通过使用对象的 Object ID(有时称为对象密钥),来检索离散后的所有数据对象。
然后,应用程序通过 Web API 来访问对象,这与文件系统的访问方式不同。

对象(像文件一样)包含二进制数据流,并且大小无限制。对象还包含描述数据的元数据。文件也同样有元数据,包括文件权限、修改时间等。对象本身支持扩展元数据信息,通常以K/V形式管理元数据——将有关对象中数据的信息存储在键–值对中。

特性特征

权限隔离:使用一个账户可以访问同一存储集群上的多个桶。这些桶可能具有不同的访问权限,并且可能用于不同的对象存储。

抽象文件检索:对象存储的优点是简单易用、易于扩展。每个对象的唯一 ID 允许被存储或检索,无须最终用户知道该对象所在的确切位置。对象存储消除传统文件系统中的目录层次结构,因此可以简化对象之间的关系。

通过 Web 访问:对象存储不能像文件系统的磁盘那样被操作系统直接访问,相反,它只能通过 Web API 从应用层面被访问;

应用场景

通常,有两种访问对象API的方式:Amazon S3和OpenStack Swift(OpenStack对象存储)。Amazon S3将对象的扁平命名空间称为桶(Bucket),OpenStackSwift将其称为容器(Container)。Bucket不能嵌套。