百度云存储从2012年7月底正式发布到12月底,用户超过2600万,并且这个数字还在快速推进,在其迅猛增长的背后我们看到了强大的基础设施以及创新的商业模式,给网络存储行业提供了一些参考:
1. 构建在久经考验的基础设施之上的可信存储平台
2. 一人一云,真正实现用户数据唯一性、,不能被设备分割,也不能被应用分割
3. 存储平台要enable很多新的应用与体验;用户感兴趣的是应用,而不是硬盘
传统的互联网业务都是免费+广告模式,是Best-effort模式,而云存储运营服务则提出了非常苛刻的要求,毕竟用户要为此付费,自然会按照付费服务标准来要求。最简单的方法可以类比电信运营商,电信系统的要求就是不间断运行、大容量、高稳定性、高可靠性。之所以提出这么多要求,因为电信网络支撑了整个信息社会的基础,一旦发生故障就会带来巨大的损失。而云存储面临同样的问题,用户与企业将很多关键的数据放到供应商的数据中心,这里面除了一些娱乐信息以外,还有很多个人隐私的数据、甚至是开发者一些关键的商业数据,故障与安全问题带来的影响和损失也是非常巨大的。
可信的存储平台
百度在云存储后台使用了经过验证的Mola系统,稳定性达到4个9。Mola是一个分布式存储引擎采用Key-Value存储形式,适用于可扩展性强、访问并发性强的业务。Mola于2008年开始设计,2009年投入使用已经接近4年的时间,支撑了百度搜索、音乐、百度地图等相关应用。经过几年的演进升级,目前已经升级到第三代。
Mola是百度四大存储系统之一。百度目前要处理数百PB的数据,涉及到网页、日志、广告、UGC等相关内容。每一类的数据都有自己的特点,需要不同的存储系统来支持,以达到效率最大化。比如日志数据对实时性要求就不是太高,但是信息海量;有些数据比如广告,数据量不是很大,但是涉及到商业行为,对低延迟、高并发以及数据的可靠性等方面要求非常高。而Mola正是基于低延迟、高并发设计的存储系统。在Mola第三代系统中,又增加了对强一致性查询的支持。
图1.Mola架构图
高并发、易扩展
云存储的并发是非常大,比如百度个人云存储上线第一天,文件提交量达到7000万个。Mola是这样实现对高并发的支持:在Mola系统中有三个核心组成部分(图1):metaServer,UpdateServer与ChunkServer。数据实际上式存储在Chunk Server上,meta Server存储的是数据的组织和分布信息,记录了每一个表格都存在哪个Chunk Server,Update Server有点类似交换机,通过此Server将数据发送到具体的Chunk Server。, Mola系统中设置了多组Update Server以增加对高并发的支持,减少文件存储时延。当业务不断增长时,存储规模扩展可以通过增加新的Chunk Server来完成,可扩展性很强强。
在实际的存储文件过程中,如果文件太大,对整个文件进行存储,不是很安全,效率也不高,百度的做法是切成小单位,然后在保存在Mola系统里面去(可能存在不同的服务器上),读取的时候再按照拆分的顺序组合成原文件。