2013-10-03 11:11:00 来源:互联网
无论是对象存储、块存储还是文件系统,如果要服务数据中心级的业务需求,都需要实现分布式。云计算巨头AWS的S3和EBS是目前最成熟的分布式对象存储和块存储的代表,在开源界S3对应着Swift。
图:SwiftStack创始人CEO Joe Arnold
文件系统将被对象存储和块存储替换
Joe表示:
文件存储在Swift的客户中很少使用。以前文件存储主要是要求高性能,因为数据库需要处理一些交易工作,它需要对文件上锁,然后去对数据库做更新。而针对非结构化的数据,不需要像传统的文件系统那样去做文件锁,只要保存很多份就行了。数据保存了就永久在那儿了,不需要去删它或者改它。
Joe强调,在数据中心内,文件存储逐渐在被替换掉。从另外的角度看,传统的POSIX文件系统不能实现分布式。
不同地区的用户访问不同的POSIX系统,不仅浪费时间,而且让运维管理变的更复杂。相对而言,分布式存储系统的优势明显。Joe表示,在分布式存储系统上做应用开发更便利,易维护和扩容,自动负载平衡。同时,也不需要将新版本的应用手动推送给所有的用户。
对象存储的另外一个优势是可以通过HTTP直接访问:
在你的移动设备或者浏览器上就能通过HTTP访问图片、视频或文档,而不是通过POSIX接口从互联网上拉数据下来,也不是通过iSCSI或光纤通道。
Swift Ring架构
Ring的工作原理是一个分布式哈希表,它做的是将一个存储URL对应到物理存储位置上。这是一个抽象映射,中间有一个环节叫做分区空间(partition space)。也就是说,Ring是分区空间的哈希表。我们将所有的分区分散的分布到整个存储系统里面。
这种方式非常有效,查询的速度非常快,一致性强,每一个组件都是分布式系统中的一部分,没有单点。
这个用户体验是比较好的,我们有一个客户,做的是账务报告类的应用。比如你出去旅游,拿到票据,你就对票据拍照,将照片上传。这可以用于报税、补助之类的场景。他们做的就是建立了一个跨两个地区的集群。默认情况下,用户从离他最近的数据中心获取数据。如果其中一个地方出了问题,所有人会被路由到那个好的数据中心,访问不受到影响。
我们在Ring上做的另一个酷功能是创建存储策略的特性。存储策略可以用来指定地域,比如客户可以选择离他们的客户近的几个地方的数据中心。存储策略还可以用于区分重要的数据和不重要的数据,比如有些数据我们把它放在比较快的硬盘上,有些数据放在慢一点的硬盘上也无妨。
关于Erasure Code
Joe不久前在 博客上解读了SwiftStack是如何提供 Erasure Code策略的( CSDN摘译) 。Erasure Code能够更加节省存储空间,降低成本。
Erasure Code是相对于复制而言的。使用复制的情况,我们对一个文件做几个副本,放在不同的地方,再去管理它们。
Erasure Code的思路,简单来说,是将文件转换成一个碎片集合,每一个碎片很小,碎片被打散分布到一组服务器资源池里。只要存留的碎片数量足够,就可以合成为原本的文件。这可以在保持原本的数据健壮性的基础上大大减少需要的存储空间。我们希望能在下一个四月大版本上引入这一批特性。
不过Erasure Code并非适应所有的场景,尤其不适合网络延迟敏感的业务:
你去对数据做Erasure Code的时候,往往是在一个数据中心内做,而不会跨数据中心做,因为跨数据中心的网络延时和成本太高。在一个数据中心内,数据转移的成本是相对更低的,10Gb以太网也不会特别贵。
抹除码主要牺牲的是请求延时,因为你需要从多个服务器获取碎片,每台服务器都需要到硬盘上找到你要的那一块,然后把它们组合成原本的文件,这个过程又需要比较多的CPU。所以你需要做的是权衡,你的应用和用户是否能够接受这个条件。
Swift的硬件配套方案
最常用的方式自然是用便宜的硬件。我们更关注机箱里面的组件,而不关注整机品牌。我们有一些推荐的组件品牌,比如LSI、希捷、Intel等。不同组件的配置比例则取决于用户的场景,我们自己采用了Open Compute建议的配置比例。此外,Quanta、Supermicro和Dell也有跟我们兼容的设备。服务器就是IBM和HP。
为包括中国在内的全球用户简化存储服务部署和管理
正常你要自己部署一套Swift环境,用三个月做评估和测试是很正常的,因为安装过程中的可选项太多了。开源提供自由选择,但是自由过了头,你面对成千上万个选项,很容易在里面浪费很多时间。不过好在SwiftStack意识到了部署过度复杂的问题,他们推出了一项在线服务,帮助用户进行部署管理。
提供一个管理控制器的在线服务,而客户的数据还是保存在自己的数据中心里面,我们通过管理控制器帮他们做管理。我们在美国的管理控制器负责支持美国的客户。对中国客户,我们在上海建立了一个新的管理控制器,可能几个月之后就会开始正式面向中国客户运营。到时候大家可以通过我们的合作伙伴99Cloud获取这个服务。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。