文章目录
Swift数据模型
OpenStack Swift允许用户存储非机构化数据对象,标准的对象名称包含三部分:账户、容器和对象。
- /account
账户存储位置包含账户本身的元数据(描述信息)以及账户中的容器列表。在Swift中,账户并不是用户身份。当你听到账户的时候,首先应该想到的是存储区域 - /account/container
容器存储位置是账户中由用户定义的存储区域,容器中存储的是其本身的元数据和对象列表 - /account/container/object
对象存储位置的内容是该对象和其本身的元数据
在集群中由账户、容器和对象组成的完整的路径绝对不可以重复,但不同账户下的容器和对象名可以重复。
账户
账户是数据存储的根目录。在系统中,可以把账户类比成文件系统的卷,账户就是卷名。每一个账户都有一个数据库来存储账户的元数据以及账户中所有容器的列表。账户的元数据头是以键值对形式存储的。
当一个用户请求账户中的元数据或者账户中所有的容器列表时,就需要访问账户数据库。
可以根据需要设置账户的访问权限开放给单用户还是多用户。
Swift中账户是存储账户(存储位置),不是用户身份认证
容器
容器时账户的下一级存储空间,由用户定义,可以存储对象。容器不可以嵌套,从概念上来讲类似于文件系统的目录或者文件夹。用户创建容器的数量是没有限制的。
每个容器数据库中存储容器的元数据及其包含的对象列表。
对象
对象是存储于OpenStack Swift中的数据。可能是照片、视频、文档、日志