Swift存储服务

一、概述

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

二、Swift核心特性

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

三、Swift的架构

Swift存储服务_第1张图片
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):不同机器的存储空间不同,设置权重,保证存储空间被有效利用

你可能感兴趣的:(Swift存储服务)