Openstack私有云简介之Swift模块

一、概述

  • Swift 不是文件系统或者实时的数据存储系统,而是对象存储,用于长期存储永久类型的静态数据。这些数据可以检索、调整和必要时进行更新。Swift最适合虚拟机镜像、图片、邮件和存档备份这类数据的存储。
  • Swift没有采用RAID,也没有中心单元和主控点,而是通过在软件层面采用一致性HASH和数据冗余性,牺牲一定程度的数据一致性达到高可用性和可收缩性。支持多用户模式、容器、和对象存储。最佳应用场景为非结构化数据存储问题

二、Swift作用

1、极高的数据持久性

2、完全的对称系统架构:对称意味着Swift中的各节点可以完全对等,能极大的降低成本

3、无限的可扩展性:一方面是数据可以无限的扩,另一方面Swift的性能可以线性提升(暂时没有体会到,可以再后续的阅读了解中体会,主要看它的架构设计)

4、无单点故障:Swift的元数据存储时完全均匀随机分布的,并且与对象文件存储一样,元数据也会存储多份。

swift与HDFS的技术差异

5、在Swift中,元数据呈分布式,跨集群复制,而在HDFS中,采用中央系统(Namenode)来维护元数据,这对于HDFS来说,无疑使单点故障点,因而扩展到规模非常大的环境很困难

6、Swift设计时考虑到多租户架构,而HDFS没有考虑这个概念(下午学习什么是多租户架构)

7、在Swift中,文件可以写入多次,在并发场景下,以最近一次的的操作为标准。而在HDFS中,文件写入一次,而且每次只能有一个文件写入

8、Swift能够可靠地存储数量非常多的大小不一的文件,而HDFS用于存储数量中等的大文件,来支持数据处理。

三、Swift架构

在这里插入图片描述

四、Swift的主要组件

Proxy Server

  • Proxy Server是提供swift api的服务器进程,swift通过Proxy Server
    向外提供基于HTTP和RESET的服务接口,负责swift其余组件的相互通信。
  • 对于每个客户端的请求,它将在环中查询Account、Container或者Object的位置,并相应的转发请求。由于采用无状态的REST请求协议,可以进行横向扩展来均衡负载。
  • 在访问swift之前,要先通过认证服务获取访问令牌,然后在发送的请求中加入头部信息 X-Auth-Token。

Object Server

  • 对象服务器提供元数据和内容服务,用于存储、检索和删除本地设备上的对象。在文件系统中,对象以二进制的文件的形式存储,它的元数据存储在文件系统的扩展属性中,建议采用默认支持扩展属性饿XFS文件系统。

  • 每个对象使用对象名称的哈希值和操作的时间戳组成的路劲来存储。最后一次的写操作总可以成功,并确保最新一次的对象版本将会被处理。

Account Server

  • 账户服务提供账户元数据和统计信息,并维护所含容器列表的服务,每个账户的信息被存储在一个SQLite数据库中

Container Server

  • 容器服务器提供容器元数据和统计信息,并维护所包含对象列表的服务。容器并不知道对象存在位置,只知道容器里存的那些对象。这些对象信息以SQLLite数据库文件的形式存储,和对象一样在集群上做类似的备份。
发布了59 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42953006/article/details/104869219