百度对象存储系统的架构与演进之路

原创
开发 架构
由51CTO举办的WOT2016互联网运维与开发者峰会上,来自百度资深工程师崔灿做了以 “百度对象存储系统架构与演进”为主题的演讲。本文章是把本次分享干货亮点整理成文字形式,呈献广大的用户。

本文是WOT2016互联网运维与开发者大会的现场干货,  新一届主题为WOT2016企业安全技术峰会将在2016年6月24日-25日于北京珠三角JW万豪酒店隆重召开!

崔灿的演讲主要围绕为什么是对象存储系统、百度开放云做了什么事、百度开放云云服务化的工作及挑战以及云服务的未来等内容展开。

[[167478]]

什么是对象存储系统

什么是对象?对象是现实中实际存在的实体,有名字、数据和属性。一般来说,一个对象生成之后就会永远存在,不再作修改。在实际的系统中,一个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

【讲师简介】

[[167479]]

崔灿,百度开放云资深工程师,主要做百度开放云存储工作,内容有对象存储、块存储和开放云CDN等。之前主要经历主要是分布式存储和在线检索两部分。

责任编辑:王雪燕 来源: 51CTO
相关推荐

2016-04-15 13:45:48

2018-03-27 10:06:26

对象存储演进

2015-06-16 11:51:17

百度云NoSQLAtlas

2017-07-04 10:58:57

SAN存储网络存储系统架构

2016-08-16 17:44:19

2012-03-23 12:12:37

百度开发者大会

2012-03-21 17:30:21

百度架构师

2018-11-21 10:21:55

CephSwift存储系统

2018-09-06 18:37:45

百度云

2013-06-27 10:23:30

百度云百度开放云

2013-08-22 17:08:50

2014-07-25 17:12:39

数据库WOT2014MongoDB

2017-07-10 09:02:24

NAS存储云存储

2024-02-27 07:27:58

云原生推荐系统架构云原生技术栈

2023-06-08 05:58:28

数据库纠删码技术

2013-12-24 13:43:48

百度360BAT

2017-09-04 08:49:17

存储原理架构

2014-01-07 09:15:24

云集成云存储RESTful

2015-03-04 09:39:31

对象存储系统Hadoop云存储系统

2017-10-19 08:45:15

存储系统HBase
点赞
收藏

51CTO技术栈公众号