Swift是OpenStack项目中的一个子项目,用于对象存储的实现,提供了强大的扩展性、冗余和持久性。
一、对象存储Openstack Swift特点
Swift是OpenStack项目中的一个子项目,用于对象存储的实现,提供了强大的扩展性、冗余和持久性。Swift有几个非常重要的特性:
极高的数据持久性
数据持久性是指数据存储到系统中后,到某一天数据丢失的可能性。例如Amazon S3的数据持久性是11个9,即如果存储1万(4个0)个文件到S3中,1千万(7个0)年之后,可能会丢失其中1个文件。从理论上测算,Swift在5个Zone、5×10个存储节点的环境下,数据复制份是为3,数据持久性的SLA能达到10个9。
完全对称的系统架构
“对称”意味着Swift中各节点可以完全对等,能极大地降低系统维护成本。
无限的可扩展性
这里的扩展性分两方面,一是数据存储容量无限可扩展;二是Swift性能(如QPS、吞吐量等)可线性提升。因为Swift是完全对称的架构,扩容只需简单地新增机器,系统会自动完成数据迁移等工作,使各存储节点重新达到平衡状态。
无单点故障
在互联网业务大规模应用的场景中,存储的单点一直是个难题。例如数据库,一般的HA方法只能做主从,并且“主”一般只有一个;还有一些其他开源存储系统的实现中,元数据信息的存储一直以来是个头痛的地方,一般只能单点存储,而这个单点很容易成为瓶颈,并且一旦这个点出现差异,往往能影响到整个集群,典型的如HDFS。而Swift的元数据存储是完全均匀随机分布的,并且与对象文件存储一样,元数据也会存储多份。整个Swift集群中,也没有一个角色是单点的,并且在架构和设计上保证无单点业务是有效的。
二、主要功能
存储层Storage Node实现对象、容器及用户相关的具体功能,同时也提供对数据安全性和一致性的保证:
StorageNode内嵌强大的检测和修复功能保证数据存储的安全性和一致性。通过Storage Node为对象存储提供在线的存储结点扩容和维护。
三、部署服务
对象存储部署会涉及下列外部的设备:域名服务器(DNS),负载均衡器(Load Balancer)和时钟同步服务器(NTP)。
对象存储整体部署方案如下: