一、概述
- Swift是什么?
Swift是Openstack云存储服务的重要组件。 - 核心能力
(1)提供了高可用、分布式、持久性、大文件的对象存储服务
(2)利用便宜的X86硬件存储设备,提供安全、高可靠的存储服务
二、Swift核心特性
- 数据持久性
就是将数据复制了多份进行存储 - 架构对称性
每个节点的功能和作用相同,不会因为单点故障带来系统的不稳定性 - 无单点故障
每个节点地位相同,没有一个角色是单点的,对元数据及对象文件的存储处理方式一样,都似乎多份均匀随机分布 - 可扩展性
新节点增加会增加系统的容量,提升系统的性能;
新节点的地位与原来节点地位保持一致,就必须进行数据迁移,所以扩充节点带来的数据迁移制约着Swift系统的推广与使用 - 简单可靠
原理简单移动,架构设计、代码和算法都是比较容易读懂的。提供了较高的可靠性。
三、Swift的架构
Swift的架构图.jpg- 认证节点
提供身份验证功能,Swift提供内置的认证服务,如果只想使用Swift作为存储的用户来说,可以直接使用内置的认证服务。
如果想将Swift存储服务放到Openstack上使用,就需要采用Keystone的认证服务 - 代理节点
是提供Swift API的服务进程,服务转发客户端请求,提供了Restful Api - 存储节点
将磁盘存储转化为Swift中的存储服务,按照存储目标类型的不同,存储节点上的存储服务分为三类
(1)对象存储:提供针对二进制大对象的存储服务
(2)容器存储:就是提供针对对象列表存储的服务,使用SQLite这种文件数据库的方式存储
(3)账户存储:就是提供针对容器列表存储的服务
四、Swift的故障处理
就是如何保证多节点存储数据的一致性
- Auditor:审计器,本地反复监测容器、账户、对象的一致性,发现文件数据不完整,文件隔离,然后调用Replication复制器从其他的副本中替换此文件
- Updater:更新器,主要作用是延迟更新,当用户数据上传成功后,通过对象服务器、容器服务器、账户服务器顺序更新通知,如果过程因为其他原因失败,更新操作会加入到更新队列中,后续来逐步处理失败的更新操作
- Replicatior:复制器,被调用将完整的副本替换损坏的数据
五、Swift的集群部署
- 引入了区域模型(zone):鸡蛋不能放到一个篮子里,将存储的对象跨zone存储
- 引入了权重(weight):不同机器的存储空间不同,设置权重,保证存储空间被有效利用
网友评论