提供对象存储服务的Swift介绍
1.什么是Swift?
Swift 是 提供高可用分布式对象存储的服务,为nova组件提供虚拟机镜像存储服务。
在数据冗余方面,无需采用read【?】通过在软件层面,引入一致性散列技术和数据冗余,牺牲一定程度的数据一致性,来达到高可用和可伸缩性。
支持多租户模式下,容器和对象读写操作,适用于互联网应用场景下非结构化的数据存储,比如,华为云盘等。
2. Swift中的常用术语【1】
- Account:用户定义的管理存储区域
- Container:存储隔间,类似于子文件夹或者目录
- Object:包含了基本的存储实体和它自身的元数据
- Ring:环,记录了磁盘上存储的实体名称和物理位置的映射关系。包括Account环、Container环和Object环。
以上术语之间的关系:
结构关系首先,可以创建多个account,每个account里可以创建多个容器container,每个container下可以创建多个object。【container 之间不能相互嵌套】
Swift的介绍
Swift在物理结构上往往会存储对象的多个副本,通常按照物理位置的特点,将对象拷贝到不同的物理位置的特点,将对象拷贝到不同的物理位置上,来保证数据的可靠性。
2.5. 常用术语2
- Region:地域,从地理位置上划分的一个概念。(往往代表不同城市的地理位置,是从灾备方面考虑的概念)
- Zone:可用区,按照独立的供网、供电、空调等基础设施划分(不同的可用区可能是同一个城市的数据中心机房,也可能是同一个数据中心,不同供电供水网路接入等等隔离系统)
- Node:节点,代表了一台存储服务器
- Disk:磁盘,代表着物理服务器上的存储设备
- Cluster:群集,为冗余考虑而设计的架构
以上术语之间的关系:
包含关系可以根据不同的物理位置,有不同的Region,不同的region代表两个不同的城市,然后在同一个region下,为冗余的考虑,设置了多个可用区,zone。每一个可用区可以有不同的存储节点,node;在更大的架构上,两个region可以构成一个cluster。
3. Swift的架构
Swift架构图首先,用户提出一个对象存储服务的申请,由Swift的API接受和处理,收到之后,先去找 Keystone 认证节点,对用户的身份进行认证。
认证通过后,将请求提交给名称为Swift Proxy的组件,Swift Proxy是Swift 的代理,由Swift Proxy来确定究竟应该将存储对象放在哪一个满足存储要求的存储节点上。最终将对象存储到指定的存储节点上即可。最终将返回结果返回给用户。
网友评论