【云计算】浅谈对象存储服务Swift

213 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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个虚拟节点。

image.png

Replica

默认值为3,理论依据主要来源于前面提到的NWR策略。

因此,N、W、R有了更具体的解释: N代表同一份数据的Replica的份数; W更新一个数据对象时需要确保成功更新的份数; R代表读取一个数据需要读取的Replica的份数

参考资料

  • 《云计算技术》刘鹏