[云计算]OpenStack - Swift

时间:2021-04-08 13:04:48   收藏:0   阅读:0

[云计算]OpenStack - Swift

Swift在OpenStack中的位置

技术图片

Swift是OpenStack云存储服务的重要组件,它提供了高可用、分布式、持久性、大文件的对象存储服务。此外Swift还可以利用一系列的便宜硬件存储设备,提供安全、可靠的存储服务。

Swift特点

技术图片

Swift组件

技术图片

组件 功能
Proxy Server 对外提供对象服务 API,由于采用无状态的 REST 请求协议,可以进行横向扩展来均衡负载
Account Server 提供账户元数据和统计信息,并维护所含容器列表的服务,每个账户的信息被存储在一个 SQLite 数据库中
Container Server 提供容器元数据和统计信息,并维护所含对象列表的服务,每个容器的信息也存储在一个 SQLite 数据库中
Object Server 提供对象元数据和内容服务,每个对象的内容会以文件的形式存储在文件系统中,元数据会作为文件属性来存储,建议采用支持扩展属性的 XFS 文件系统
Replicator 检测本地分区副本和远程副本是否一致,发现不一致时会采用推式(Push)更新远程副本,并且确保被标记删除的对象从文件系统中移除
Updater 当对象由于高负载的原因而无法立即更新时,任务将会被序列化到在本地文件系统中进行排队,以便服务恢复后进行异步更新
Auditor 检查对象,容器和账户的完整性,如果发现比特级的错误,文件将被隔离,并复制其他的副本以覆盖本地损坏的副本;其他类型的错误会被记录到日志中
Account Reaper 移除被标记为删除的账户,删除其所包含的所有容器和对象

Swift原理

一致性哈希

技术图片

数据一致性模型

如果数据出现了不一致,后台服务进程会在一定时间窗口内通过检测和复制协议来完成数据同步,从而保证达到最终一致性。

数据模型

技术图片

Ring

技术图片

API

技术图片

Swift命令

技术图片

Swift问题定位

Swift逻辑架构

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!