开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第27天,点击查看活动详情 这也是第32篇文章
简介
什么是Swift?
OpenStack开源云计算项目的子项目之一,一个可拓展的对象存储系统
特性
- 数据持久性高
- 系统架构完全对称(Swift各结点可以完全对等)
- 扩展性好
- 存储容量可无限扩展
- 性能可线性提升
- 集群中没有角色是单点的,也不会有单点故障
- 架构优美、 代码简洁
作用
提供的服务与Amazon的S3相同
组成部分
从服务的具体分类看,分为以下几种:
- Proxy Server
- Authentication Server
- Cache Server
- Account Server
- Container Server
- Object Server
- Replicator
- Updater
- Auditor
- Account Reaper
从作用机制看:
- Ring 记录存储对象与物理位置间的映射关系
涉及的服务有:Account、Container、Object
- Proxy Server
- Storage Server 提供了磁盘设备上的存储服务。也是涉及上述几类服务
- Consistency Server 查找并解决由数据损坏和硬件故障引起的错误
主要存在三个Server:Replicator、Updater、Auditor
Swift算法和存储理论
数据一致性模型
N为数据的副本总数; W为写操作被确认接受的副本数量; R为读操作的副本数量
强一致性
R+W>N,以保证对副本的读写操作会产生交集,从而保证可以读取到最新版本
弱一致性
R+W<=N,如果读写操作的副本集合不产生交集,就可能会读到脏数据
一致性散列
将散列结果右移m位,可产生232-m个虚拟节点,例如m=29时可产生8个虚拟节点。
Replica
默认值为3,理论依据主要来源于前面提到的NWR策略。
因此,N、W、R有了更具体的解释: N代表同一份数据的Replica的份数; W更新一个数据对象时需要确保成功更新的份数; R代表读取一个数据需要读取的Replica的份数
参考资料
- 《云计算技术》刘鹏