本系列的目的是为了使大家熟悉swift的不同组件以及它们是如何协同工作来提供持久性、可扩展性、高并发的对象存储服务。
Swift Data Model
Openstack Swift结合三个概念为用户提供存储非结构化数据的服务:租户(account)、容器(Container)、对象(Object)。通过使用三者中的一个及多个使系统能够确定数据的唯一存储路径。
/租户
租户存储位置是是名字唯一的存储区域,它包含了租户的元数据信息、该租户的容器列表。需要注意的是,在swift中,一个租户并不是通常所说的用户标示。你可以这么理解,租户就是一块存储区域。
/租户/容器
容器存储位置是用户在租户内部定义的存储区域,用来存储容器的元数据信息以及在容器中存储的对象列表。
/租户/容器/对象
对象存储位置是对象数据及其元数据所存储的位置。
由于各个部分组合在一起构成了存储位置,容器及对象的名称在一个集群中不必是唯一的。如果相同名字的对象被上传到不同的容器或租户区域中,那么它们都有唯一的存储路径。如图所示,对象名称为ObjectBlue的对象存储路径分别为:
/AccountA/Container1/ObjectBlue
/AccountA/Container2/ObjectBlue
/AccountB/Container1/ObjectBlue
我们在以上部分介绍了存储路径及其组成结构,在接下来的部分将分别进行深入介绍。