Swift存储服务

一、概述

  1. Swift是什么?
    Swift是Openstack云存储服务的重要组件。
  2. 核心能力
    (1)提供了高可用、分布式、持久性、大文件的对象存储服务
    (2)利用便宜的X86硬件存储设备,提供安全、高可靠的存储服务

二、Swift核心特性

  1. 数据持久性
    就是将数据复制了多份进行存储
  2. 架构对称性
    每个节点的功能和作用相同,不会因为单点故障带来系统的不稳定性
  3. 无单点故障
    每个节点地位相同,没有一个角色是单点的,对元数据及对象文件的存储处理方式一样,都似乎多份均匀随机分布
  4. 可扩展性
    新节点增加会增加系统的容量,提升系统的性能;
    新节点的地位与原来节点地位保持一致,就必须进行数据迁移,所以扩充节点带来的数据迁移制约着Swift系统的推广与使用
  5. 简单可靠
    原理简单移动,架构设计、代码和算法都是比较容易读懂的。提供了较高的可靠性。

三、Swift的架构

Swift的架构图.jpg
  1. 认证节点
    提供身份验证功能,Swift提供内置的认证服务,如果只想使用Swift作为存储的用户来说,可以直接使用内置的认证服务。
    如果想将Swift存储服务放到Openstack上使用,就需要采用Keystone的认证服务
  2. 代理节点
    是提供Swift API的服务进程,服务转发客户端请求,提供了Restful Api
  3. 存储节点
    将磁盘存储转化为Swift中的存储服务,按照存储目标类型的不同,存储节点上的存储服务分为三类
    (1)对象存储:提供针对二进制大对象的存储服务
    (2)容器存储:就是提供针对对象列表存储的服务,使用SQLite这种文件数据库的方式存储
    (3)账户存储:就是提供针对容器列表存储的服务

四、Swift的故障处理

就是如何保证多节点存储数据的一致性

  1. Auditor:审计器,本地反复监测容器、账户、对象的一致性,发现文件数据不完整,文件隔离,然后调用Replication复制器从其他的副本中替换此文件
  2. Updater:更新器,主要作用是延迟更新,当用户数据上传成功后,通过对象服务器、容器服务器、账户服务器顺序更新通知,如果过程因为其他原因失败,更新操作会加入到更新队列中,后续来逐步处理失败的更新操作
  3. Replicatior:复制器,被调用将完整的副本替换损坏的数据

五、Swift的集群部署

  1. 引入了区域模型(zone):鸡蛋不能放到一个篮子里,将存储的对象跨zone存储
  2. 引入了权重(weight):不同机器的存储空间不同,设置权重,保证存储空间被有效利用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,224评论 6 13
  • 今天已经是军训的第二天了。早上起床时感觉腿已经不是自己的了。大约是5:45的时候,我竟将桌子上的闹钟上的时间看...
    郭卫黎1阅读 137评论 1 0
  • 文/时光含香 前几天和朋友相约好去爬山,为了第二天能起得来我特地在前一晚十一点半就睡下了。今天没到五点就被闹钟从美...
    兮若耶阅读 443评论 0 0