Ceph企业级分布式存储:原理与工程实践
上QQ阅读APP看书,第一时间看更新

2.5.1 对象存储

对象存储是一种解决和处理离散单元的方法。离散后的数据称为对象,因此数据会离散出很多对象。与传统的文件系统中的文件不同,对象存储不像文件系统那样通过目录树或者子目录树对文件进行组织。对象存储是在一个平坦的命名空间通过使用对象的Object ID(有时称为对象密钥)来检索离散后的所有数据对象。应用程序使用Web API来访问对象,与访问文件系统的方式不同。

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

使用一个账户可以访问同一存储集群上的多个桶。这些桶可能具有不同的访问权限,并且可能用于不同的对象存储。对象存储的优点是简单易用、易于扩展。每个对象的唯一ID允许被存储或检索,无须最终用户知道该对象所在的确切位置。对象存储消除了传统文件系统中的目录层次结构,因此可以简化对象之间的关系。

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