在车库咖啡聊会儿七牛云存储

来源:互联网 发布:世界之窗 知乎 编辑:程序博客网 时间:2024/04/29 02:59

七牛CEO许式伟应LAMP人之邀,在北京车库咖啡与大伙儿聊了下七牛云存储平台的实战经验。会后有很多朋友希望能拿到资料回味一下,所以我们将其中的一些干货整理出来与大家分享。

七牛云存储是专为移动时代开发者打造的数据管理平台,主要有三大功能:非结构化数据的存储、上传下载全网加速、富媒体等文件的云端处理。

 

一 非结构化数据的存储

七牛的目标是提供海量、可靠、便宜的云存储服务。使用低成本构建可靠的存储系统,是我们关注的。

通常来讲,存储集群的可靠性取决于硬盘寿命、容错度、单位修复时间。硬盘寿命与成本挂钩,容错度通常与冗余度有关,而单位修复时间是衡量存储集群可靠性的关键指标。

下面我们来谈两点:

1、 单位修复时间,指单块硬盘损坏修复的时间

传统的磁盘损坏修复是使用单盘对拷的方式,这个非常耗费时间。如何突破单盘带宽瓶颈?我们将丢失的数据均匀的分配到集群各个磁盘上,让更多磁盘参与进来,以此来缩短在发生数据丢失情况下数据修复的单位时间。

2、 容错度/冗余度,目前这方面的做法主要有三种

a) 三副本:

–  冗余度:3

–  容错度:允许3块硬盘同时损坏2块

–  可靠性:在单位修复时间内,同时损坏3块盘,则发生数据丢失

b) 跨机器做RAID6

–  冗余度:(N+2)/N

–  容错度:允许N+2块硬盘同时损坏2块 (N越大风险越大)

–  可靠性:在单位修复时间内,同时损坏3块盘,则发生数据丢失

–  典型配置:N=4,冗余度=1.5

c) 跨机器做EC

–  冗余度:(N+M)/N

–  容错度:允许N+M块硬盘同时损坏M块 (M越大风险越低)

–  可靠性:在单位修复时间内,同时损坏M+1块盘,则发生数据丢失

此外,还有跨 IDC 的数据冗余,保证数据的高可靠性(单IDC出现自然灾害时不丢失数据)和高可用性(单IDC网络出现故障时,整个集群仍然正常工作)。

二 上传下载全网加速

随着手机传感器类型的丰富,UGC模式的应用越来越多,上传加速迫在眉睫。举例来说,近两年流行的类Instagram模式,以及农夫山泉业务员每天跑超市拍摄10张产品照片并将数据上传至总部服务器,都可以看出这个趋势。

七牛首创将上传加速结合存储考虑,其原因有二:1、上传加速节点有数据可靠性的要求,不能丢数据;2、上传加速节点的数据,不能有一个中间状态,需要被立刻访问。

那么这样的考虑又达到了怎样的效果?

1、跨 IDC 的分布式存储,传统分布式存储通常是单IDC集中式

2、用户可选择任意的 IDC 就近上传,大大提升上传速度

3、对视频等大文件的上传实行分块并行上传

4、针对移动互联网络复杂问题,提供断点续上传

三 富媒体等文件的处理

除了在存储和加速方面做到极致,我们还向用户提供富媒体等文件的处理服务。

1、 镜像存储——被动抓取数据的过程

迁移数据的过程操作复杂,使用镜像存储,能够在不更改原站数据的情况下,被动地抓取原站数据,并把数据保存在七牛云存储上。

2、 图片在线处理——七牛内置诸如裁剪、旋转、加水印等多种图片处理服务

图片在线处理有两种做法:

a)  http://domain/key?/fop/params,原图的链接相当于http://domain/key,fop/params表示对图片进行一次处理,如果需要对图片进行二次处理则在第一次处理链接后面以“|”区分

b) http://domain/key-style,与第一种做法的区别在于,这个style是用户自定义,即便是对图片进行二次处理还是style,只不过这个style被重新定义了

我们选取一家在使用七牛云存储的互联网初创公司——蝉游记作为我们的测试案例,下面以其中一张图片作为测试。

原图:


水印(将蝉游记LOGO打到原图上去):


缩略图1


缩略图2 (缩略、裁剪、旋转)


3、 音/视频处理——支持ffmpeg支持的常见的音视频格式互转,比如 mp3、aac,m4a, mp4、avi、flv 等

此外,我们支持Apple提出的基于HTTP的流媒体传输协议(HTTP Live Streaming,简称 HLS)。

总结:目前,我们在存储和加速方面做到了高可靠性、高可用性,并大大提升了速度的性能。接下来我们将在富媒体文件的处理方面做更大的投入,如果有兴趣欢迎来七牛体验。

原创粉丝点击