本文是WOT2016互联网运维与开发者大会的现场干货, 新一届主题为WOT2016企业安全技术峰会将在2016年6月24日-25日于北京珠三角JW万豪酒店隆重召开!
崔灿的演讲主要围绕为什么是对象存储系统、百度开放云做了什么事、百度开放云云服务化的工作及挑战以及云服务的未来等内容展开。
什么是对象存储系统
什么是对象?对象是现实中实际存在的实体,有名字、数据和属性。一般来说,一个对象生成之后就会永远存在,不再作修改。在实际的系统中,一个MP3,一个视频文件,一个日志文件一般都可以认为是对象,而对象存储系统的重要使用场景也是在这类数据的存储和访问,比如说在线音乐视频播放,日志存储和处理等。
什么是存储系统?存储系统有可靠性、可用性、性能和价格四方面要求。这里崔灿主要介绍了存储系统可靠性,一般存储系统可靠性就是指数据不丢失。数据丢失产生的情况无非是磁盘坏掉、整个机器挂掉或整个机房直接挂掉等硬件故障。系统可靠性的决定因素有故障的容忍度和修复时间两方面,对故障容忍度可以通过做一些冗余的方式来实现。修复时间各个系统实现不一样。针对硬件故障,崔灿表示这么多年来,像交换机故障,磁盘故障,已经趋于稳定没有太大进步的空间,是相对比较固定值。所以做系统就是怎么样提高它对故障的容忍度和减少修复时间。
如何减少修复时间?一,和最开始这个数据放置是相关的,如磁盘故障或者是机器故障,如是两块磁盘互为备份,那修复时间取决于磁盘IO,就是一个磁盘量的数据全部拷到另一个磁盘,取决于单盘IO。如把它作一个分散放到所有的节点上去,好处在于恢复时可以从多个源到多个目的的磁盘上拷贝,这可以大大的减少修复的时间,相当于整个集群同时在拷贝一个磁盘上的数据。二,基于百度内部多年经验,磁盘出现故障时间可根据大数据分析提前预测到,这也大大缩短了修复时间。
百度开放云做了什么事
把KV存储开放出去
百度内部的KV存储系统,采用3副本,能容忍单机故障,而且通过分布式修复以及磁盘故障预测,能大幅减少修复时间。百度开放云存储把KV存储开放出去,做一个对象存储,这过程叫做商业化。崔灿表示,这个过程中遇到了两大挑战:从用户角度来看,一是用户量增加,导致对用户的帮助会降低,另外一方面直接面对大众,可能会遭到恶意攻击。从业务上来看,一方面是网络环境发生变化,从内网到公网。另外一方面对外部业务的增长并不可预期。
安全性、易用性和性能三角度应对挑战
安全性。百度开放云存储把KV存储开放出去后,从数据和服务安全两个角度做了改进。数据安全有三个层次,数据不丢(基于可靠存储,多region, 多az来实现),数据不被非法访问(基于ak, sk的用户认证以及基于policy的权限认证),高级安全特性(Https,服务端加密等)。服务安全包括三个方面,用户间互相影响(通过频度 & quota服务),恶意攻击(通过百度私有防攻击系统以及运营商黑洞清洗来解决),机房地域故障(多region, 多az来解决)。
易用性。通过对用户上云(网络、硬盘导入),用户使用(API、SDK、工具、ts支持、多种解决方案)及运维(按需使用、自动扩缩容、报表、日志、审计、监控……)三个方面来提升用户的使用体验。
性能。主要对Http的性能作优化,通过多并发的上传下载,流量调度,CDN集成等多个方面来提升Http性能。
提供冷存储、媒体云和数据分析三大解决方案
崔灿表示,百度云存储从2015年四五月份一直到现在提供不同的解决方案,帮助不同的用户来使用。第一个阶段是内部服务,第二个阶段是一个可靠存储,第三个阶段整合百度内部资源,如图象处理、机器学习、视频处理等东西,整合一些解决方案给用户使用。
冷存储。为把低成本存储同时提供给内部业务和外部开发者,百度云存储做了冷备的解决方案。提供一个基本可用的,成本比之前低一倍,但可靠性不会低于之前可靠性的存储系统,就是和友商同等价格的情况下提供基本的在线服务。
媒体云。关于图片和媒体处理,做视频直播、点播、转播可直接使用。因为百度内部有成熟的方案,如做像手机屏幕的匹配、适配直接包装,用户只需要把数据存储过来,再调到其他地方就可直接播放,来减少对媒体用户使用的门槛。
数据分析。崔灿表示,百度是做搜索的,很多策略方面如机器学习,Mapreduce等都是非常成熟。所以可以针对用户把百度内部的机器学习,计算功能给整合进来。如用户做数据处理或策略方面的事,只需要把数据上传上来直接做数据处理。
百度开放云未来要做的事
崔灿表示,未来解决方案和存储相关有四方面:一,继续做冷备或一些归档等事。 二,做百度CDN资源结合,形成类似于存储分发,供给一些APP下载或者视频播放的服务使用。三,百度内部有相对多年媒体方面的资源积累,之后也会不断的把百度内部的技术包装陆续公开出来。四,对于机器学习方面,会继续不断的把百度内部的资源爆发出来。
【演讲视频】
http://edu.51cto.com/lesson/id-100746.html
http://edu.51cto.com/lesson/id-101079.html
【讲师简介】
崔灿,百度开放云资深工程师,主要做百度开放云存储工作,内容有对象存储、块存储和开放云CDN等。之前主要经历主要是分布式存储和在线检索两部分。