SwiftStack公司的CEO,Joe Arnold主要介绍了Openstack Swift技术,分享了在做Swift项目中出现的一些问题,作为Swift项目的贡献排名第二的公司,它们在Swift上的实力不容小视。
8月10日-11日,为期两天的首届OpenStack亚太技术大会(OSAC)在北京、上海两地同时召开。下面我们将分享上海站SwiftStack公司的CEO 乔.阿诺德在为大家带来的分享《Building Applications with OpenStack Swift》。
SwiftStack公司的CEO,乔.阿诺德的经验主要集中在云基础设施和开源软件等领域。在Intel和KD工作的时候,他就直接参与了Openstack Swift早期的研发。Swift是Openstack当中的核心项目之一。不过SwiftStack是一家独立的公司,提供完整的云存储的解决方案,使得客户能够迅速的去提供基于Openstack Swift的服务。SwiftStack对Swift项目贡献排名第二,他们有多名员工是Swift项目的核心成员,项目的技术主管也是来自于他们的团队。因为Swift项目当中有很多团队成员都是来自于他们公司,所以在这个项目当中他们有很大的话语权。
这个讲座给大家介绍在跟客户的沟通当中所了解的一些情况,也会介绍看到的一些具体的现象,并且介绍Swift怎么样去看待这些现象,以及怎么样去解决客户所面对的一些问题。首先是客户正在做什么?客户正在创建互联网或者移动互联网的应用,他们的用户数量非常巨大,并且在这个巨大基数的基础上还在迅速的增长。因为客户的软件是通过互联网进行,而不是运行在本地,那样的话,这些客户的用户就能够从各种各样的移动设备上去访问这些应用。
现在去购买一个新的移动设备的时候,存储的容量上体积已经变小了,硬盘基本上是SSD的硬盘,因为SSD的硬盘和传统的硬盘相比已经变小了。目前所做的事情是通过HTTP协议将内容分送到设备,而不需要专门的服务器去响应这个HTTP的请求,因为云存储可以直接响应这个设备的请求,并且为客户端和这个设备提供服务。同样,当需要上传数据的时候,这个数据不需要经过这个设备的文件系统,而是通过HTTP POS直接上传到云存储。不过,经常被平台访问的数据其实可以被缓存起来,这样就能提高访问的速度。这就是Swift跟内容分发网络(CDN)完美的整合,数据可以从不同的地点分发到你的用户那里。SwiftStack提供了针对多种编程语言的客户端,可以将这些客户端直接整合到你的应用里面去。接下来讨论一下如何应对日益增长的用户的问题。对于企业级用户来讲,软件正在以服务的方式提供,软件服务提供商原本需要为每一个客户提供一个单独的实例,现在SwiftStack逐渐观察到,软件服务提供商越来越多是以一个软件的实例去向多个客户提供服务,也就是说需要应对的是多租户的问题。还有一个问题,叫做长尾数据的问题,因为客户每天都需要在这个云上存储大量的数据,但是不知道什么时候会访问这些数据,所以不能把它放到磁带上去。所以对于基础构架服务提供商来讲,所应对的挑战主要是有两个方面:第一,需要不断增加容量;第二,需要应对不断增长的用户数量。
对Swift来讲,可以在两个方面对系统进行扩容,Swift使用的是一种环状的结构,文件是在磁盘上是完整的存储。Swift的这个构架所带来的好处就是应用不需要对这个基础构架有任何的了解,在文件系统这个层面人们经常采取的策略是把用户群碎片化到不同的基础构架组当中,从而达到支持更多的用户的目的,当然这样的做法增加了系统的复杂度,譬如当这个系统容量发生变化的时候,就需要去修改代码以适应这样的变化。Swift通过HTTP协议,抛弃了传统的文件系统这样的交互界面,使得应用变得更加简单,这样构架能够任意的扩展,而无需对这个应对软件进行任何的修改。
刚才所说的这些好处不仅仅是HTTP所带来的,而是因为Swift是在实践当中经受过考验的一个系统,目前Swift一个大规模生产系统,已经运行了好多年时间。在基础构架服务这个领域需要解决三个问题:第一个问题是需要降低成本,提高现有基础构架的利用率;第二个问题就是要提高商业的敏捷性,通过基础构架这个服务,可以降低这个基础构架和这个应用的吻合度;第三个是要让用户以自助的方式来获得服务,不过要注意基础构架服务这个领域有内部用户和外部用户两种,对于内部用户需要提供记帐的方式,对于外部用户却需要提供收费的功能。
现在数据中心里面的存储构架有很多问题,因为存储越来越大,用户越来越多,所以多租户的问题越来越重要。Swift为什么能够支持这个基础构架的合并呢?是因为它具有如下的特性,这个项目它能够支持扩展,支持高并发的请求,而且它的容量是可以线性增长的,从它的构架设计上来说,能够从根本上支持多租户的问题,所以它非常适合用来提供基础构架服务。
如果要运营一套非常成功的基础构架服务,运维就非常重要,现在每一个管理人需要管理的机器不光是十台或者一百台,因为需要管理上千台的机器,这个时候管理和运维就成为了最大的问题,当这个数量级发生改变的时候,所有的事情都将随之发生改变。运维人员必须了解一个系统上了规模之后会发生什么样的情况,尤其是在上面已经有了大量的用户数据的时候,此时就非常需要一套有效的运维工具。
这就是SwiftStack所专注的领域,除了是这个Swift项目的核心贡献者之外,还提供一整套完整的云存储的解决方案。SwiftStack节点可以运行在多家硬件提供商所提供的标准硬件上,从而避免了供应商锁定的问题,而且所使用的标准硬件和Open Compute是完全兼容的。
还有一个产品叫SwiftStack控制器,负责配置和部署新的节点,负责管理新增的容量,监控系统负载和硬件的状况。在存储这个领域有两条规律:第一,这个数据是逐渐累积的;第二,新硬盘的容量是不断增加的。从这个角度来看,按需扩容就显得更加的经济实惠,集群扩容的管理就变成了运维当中的一个重要任务。
大家都知道,给Swift增加容量的时候,数据需要被迁移,如何让它们能够平均的分布到整个集群里面去是一个问题。在这个过程当中,如果你一下子给这个系统增加50%、甚至100%的容量,规模化的数据迁移会让系统瘫痪,所以要逐步的去控制这个容量增加的过程。Swift就能提供这个功能,让其能够自动缓慢的增加这个集群的容量。
另外一个事情,就是监控这个存储集群里面的一切活动,并且通过图形化的方式去进行分析、展示。因为监控了这个存储集群里面的一切活动,就可以通过可视化的方式去深入了解这个集群的运行状况和健康状况;同时还可以给这个管理员提供报警服务,但是仅仅有报警服务还是不够的,这个报警还应该是可以被操作的,现在有一个工作流的系统,使得报警信息可以被响应或者是被归档。同时还提供了一系列的插件,比如说在磁盘上对这个数据进行加密,集成、记帐的ADI和原数据搜索等等。
当选择一套存储系统的时候,它将来会被多个应用所共同使用,所以它往往是一个长期的决策,Openstack作为一个开放的系统,会给大家带来有很多的选择,如果没有软硬件供应商锁定的问题,你也可以替换Swift服务的提供商,而无须对应用进行任何选择,当然也可以选择新的硬件的供应商,将新的硬件和已有的硬件组成混合的集群。
更多OSAC及OpenStack相关信息,请关注@CSDN云计算微博,也欢迎加入国际云计算技术交流群和OpenStack中文社区进行交流讨论。