2011年,Swift作为OpenStack对象存储(Object Storage)发布,成为OpenStack中最早的项目之一。Swift已经被证明能够支持极大规模的存储系统。软件定义存储(Software Defiend Storage,SDS)
非结构化的数据,通常被保存为文件而不是数据库中的记录
数据增长,2012年的2596EB到2017年的7235EB(1EB = 1024PB,1PB = 1024TB)
非机构化数据的存储要求
- 持久性
- 可用性
- 可管理性
- 低成本
对象存储与其他存储类型的比较
- 块存储(Block Storage)
常用来存储结构化数据,数据在块存储中被表示为同等大小的块。常见用途是数据库 - 文件存储(File Storage)
文件系统 - 对象存储(Object Storage)
提供对整个对象或者二进制大对象数据的访问–一般来说是通过系统特性的API。对象可以通过基于HTTP协议的URL进行访问,与浏览器访问Web网站的方式类似。对象存储将存储位置抽象为URL,以便能够以一种与底层存储机制无关的方式扩展规模,这使得对象存储成为构建大规模和高并发系统的理想方式。
对象存储的优点之一是它能够分发面向大规模存储集群服务器的对象请求。这位海量数据提供了一种低成本、可扩展、可靠的存储系统。
新的存储架构:软件定义存储(SDS)
SDS仅在系统软件层面负责,而不作用于特定的硬件组件。与传统存储方式不同的是,SDS不仅不会阻止硬件故障发生,反而认定系统发生故障是一种正常现象。
软件定义存储组件
- 存储路由(Storage Routing)
充当存储系统的网关 - 存储韧性(Storage Resilience)
在SDS中,从故障中恢复是软件的责任所在而非硬件 - 物理硬件(Physical Hardware)
数据被存储在物理机的硬盘上 - 带外控制器(Out-Of-Band Controller)
可以高效的管理和扩展规模
SDS的优点
可以高效的管理存储规模,提高基础设施的运营效率。SDS拥有更加简单的容量管理,每一个组件都是分布式系统中的一员。
软硬件的解耦允许在标准服务器硬件之上构筑一个统一的存储系统。
SDS解决方案通常是开源的,意味着更好的标准、更多的工具。
为什么是OpenStack Swift
拥有广泛的用途,支持网络和移动应用、备份和归档。附加的服务层允许用户通过本地的HTTP接口访问存储系统,通过使用命令行工具、文件系统网关,或者易用的应用程序存储和同步他们的台式电脑、平板电脑和移动设备的数据
Swift是一个对象存储系统,采用的是最终一致性而非强一致性。这让Swift具有了高可用性、冗余性、高吞吐量和大的存储容量等优势。Swift重点放在可用性而非一致性上,所以Swift没有交易或者延迟锁。Swift同时支持大规模的读和大规模的写。这意味着Swift可以扩展到极大的并发连接数和极大地数据集。
Swift可以安装在所谓的商品硬件之上。意味着可以依靠标准的低成本的服务器组件去构建存储系统。通过依靠Swift提供的逻辑软件去管理数据而不是依赖一个专门的硬件提供商。
Swift是一种全新的存储系统,不是一个单一的、整体的系统,而是一个在保障数据可用性前提下易于扩展容忍故障的分布式系统。