构建可靠的S3服务

字数 946阅读 1965

S3服务基础

AWS S3是亚马逊推出的海量、安全、低成本、高可靠的对象存储服务,相对于块设备服务或者文件系统服务,对象存储提供简单的RESTful接口来存取中小型文件。

对象存储的基本单元是对象,一个对象等价于一个1KB到5GB的文件,用户只需上传对象内容,由底层平台负责多备份存储,其中对象还包含元数据和ACL(Access Control List),不同用户的对象通过桶进行逻辑划分。得益于AWS优秀的系统架构,S3提供了高达99.999999999%(11个9)的数据持久性,可以认为存在S3上的数据是不会丢的,是非常理想的存储后端之一。

对象存储服务对比

对象存储近年来得到越来越广泛的关注,Rackspace与NASA和合作并开源了Swift存储系统,阿里云、华为云、百度云以及小米基础架构也自研推出各自的对象存储服务。考虑到分布式存储的复杂性,中小型团队要搭建自己的对象存储服务相对不容易,各家云服务提供商的对象存储也尽然不同,业务在使用S3后迁移其他云平台也相当困难。

由于S3并没有开源计划,用户在使用S3前只能花钱进行功能测试与性能测试,除了AWS我们甚至无法模拟服务故障的情况,对企业级应用是个极大的隐患。

说了这么多,我们还是无法在本地运行S3服务啊,不用着急,因为开源社区已经有成熟的对象存储解决方案了,并且提供S3兼容的接口,让你在5分钟内快速启动对象存储服务。

搭建本地S3服务

接下来介绍今天的主角ceph,ceph是开源的统一存储系统,所谓统一存储系统,就是通过底层的分布式技术同时对外提供块设备存储、对象存储以及文件系统服务。其中ceph的对象存储服务兼容S3接口和Swift接口,你可以直接使用S3的命令行工具或者SDK直接访问ceph对象存储服务。

ceph的部署也并不困难,只需要普通服务器甚至是在你的笔记本上也可以运行,如果你安装了docker,只要5分钟你就可以在本地快速启动S3服务进行开发和测试了。详细的教程建议观看我们的演示视频《Build S3 service locally》,具体命令参见下面的博客。

http://chendihao.cn/build-s3-service-locally/

对象存储的未来与挑战

在可预见的未来,对象存储仍是大中小企业所必须的基础服务之一,构建本地S3服务可以为用户提供快速的开发和测试环境。Ceph开发至今已超过十年,为OpenStack社区提供了稳定的块设备存储服务,ustack作为2014年全球Ceph贡献排行榜第二的公司(第一是Ceph母公司Redhat),将基于Ceph与RGW提供稳定、易用的对象存储服务。

AWS S3的流行并不意味着它的复杂,借用计算机巨擘的一句话,"There is no magic in computer science"。可靠的“S3”服务,你值得拥有 :)

推荐阅读更多精彩内容