Swift分布式技术架构解析.docx
《Swift分布式技术架构解析.docx》由会员分享,可在线阅读,更多相关《Swift分布式技术架构解析.docx(8页珍藏版)》请在第一文库网上搜索。
1、分布式存储技术解读系列之三Swift分布式技术架构解析1 .什么是SWift?首先,我们从OPenStaCk的官方网站上,可以看到SWift的定义:“TheOpenStackObjectStoreproject,knownasSwift,offersc1oudstoragesoftwaresothatyoucanstoreandretrieve1otsofdatawithasimp1eAPI.It,sbui1tforsca1eandoptimizedfordurabi1ity,avai1abi1ity,andconcurrencyacrosstheentiredataset.Swiftisid
2、ea1forstoringunstructureddatathatcangrowwithoutbound.,o从它的定义上我们可以明确它是OPenStaCk框架当中的一个对象存储组件,它专门用于海量非结构化数据的存储,而且它具备以下特性:(1)扩展性(It,sbui1tforsca1e):意味着节点的横向扩展能力,这是它的核心;(2)并发能力(Concurrency):意味着高并发处理机制,必须是以分布式集群架构为依托的;(3)高可用性(AVaiIabiIity):意味着节点的故障或者架构的变化对它的影响很小。接下来,我们从其架构原理以及读写原理上来分析其如何支撑定义当中所提到的各个特性。2
3、.Swift架构原理2.1 SWift存储功能架构从功能角度来讲,SWift存储系统仅仅提供对象存储服务。从客户端发起请求到Swift存储提供数据服务整个过程需要经过代理层和数据存储层两部分。代理层向用户提供Swift的AP1接口,对于客户端的PUt&Get请求,代理层首先会查找被操作实体对象的物理位置,然后会将请求发送给存储节点层获取对象存取的服务;由于客户端的对象存取请求是通过无状态的REST协议完成的,因此我们可以在外层加负载均衡。具体如图2.1所示:图2.1Swift存储系统功能图Swift-PRoxy(1)提供RESTAPI给客户端;(2)无状态服务模式,由多个代理节点组成一个集群;
4、(3)将客户端请求转给某个存储节点上的数据读写服务,完成客户端请求;这里,可能会有2个问题:“PrOXy如何知道某个对象应该存储到存储节点层的具体位置?ProXy如何知道要查找的对象到底已经存储到什么位置了?”暂且我们带着问题往下读。Swif1Storage-NOdeS(1)数据存取寻址服务(AccountsContainerXObject);(2)数据一致性保护服务(Rep1icatorXUpdaterAuditor);这里,同样会有问题:“这些服务到底有何作用,扮演何种角色?”暂且我们带着问题往下读。2.2Swift数据对象组件我们先看Swift的数据模型,通俗讲就是Swift当中的对象数
5、据是以什么样的形式在存储系统里面组织起来的,基本上我们认为SWift的数据模型使用了以下三个概念:账户(ACCoUnt)OPenStaCk天生就是为云而生的框架,SWift作为它的核心组件之一,那么自然有租户的概念,暂且我们把这个ACCoUnt理解为类似租户的用户命名空间隔离的概念。Account的配置数据和其下级Container的列表数据都会被保存在SQ1ite数据库当中。容器(Container)容器类似于文件系统中的目录,主要目的就是将对象数据进行逻辑分割,由用户自定义,同样它包含自身的配置数据和容器内的对象列表数据,也是被保存在SQ1ite数据库中。对象(Object)对象即客户端对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Swift 分布式 技术 架构 解析
![提示](https://www.001doc.com/images/bang_tan.gif)