探索中国CIO人才现状 | 第四季调研报告
高效架构大规模分布式存储
2014-04-24  作者:企业网D1Net 

  “MosseFS和redis架构是最近比较热门的话题,百度在MosseFS和redis海量存储下进行架构改进和性能提升的关键在于优化升级与细节把控。”4月19日,百度运维部MFS组技术负责人,负责分布式文件系统MFS和分布式KV系统BDRP的二次开发维护的程一仕在第49期百度技术沙龙现场上说。


  MosseFS和redis架构其实和hdfs的架构是一样的,它们都是googlefilesystem。本期百度技术沙龙,程一仕老师主要为大家分享了百度技术团队图和通过对MooseFS的单点master的架构升级来提升系统的性能和扩展性,进而支撑百度的众多业务。


  本期恰逢百度技术沙龙4周年。4年来,百度技术沙龙一直致力于以“技术开放”的心态,分享行业领先的技术理念和技术实践。秉承“畅想、交流、争鸣、聚会”的理念,为互联网工程师、软件开发者提供一个快速学习和不断成长的平台。


  百度技术沙龙四周年详解:高效架构大规模分布式存储


  百度运维部MFS组技术负责人程一仕说:“百度有共有集群,很多小产品线都会上来,我们做流量控制的初衷,是因为我们要防止一个产品线变得乱七八糟。”


  独立开发架构百度高度优化MosseFS和redis


  在本期技术沙龙上,程一仕先向大家介绍了MosseFS和redis目前架构上出现的问题:一个是性能瓶颈,因为这个设计是非常强中心化的设计,它是分布式系统里面的状态,因此它的性能其实是非常耗的。另一个是错误处理,即扩展性问题。基于这两个问题,程一仕详细讲解了百度在MooseFS和redis下进行的改进和性能提升。


  “我们做的第一个改进就是开发一个Shadowmaster,这个架构的设计是master会处理所有的写请求,shadowmaster会处理大部分的请求,它的变更不一定到master。为了避免没有请求,我们还在客户端做了一个简单的路由,路由的策略全部到master。”程一仕表示。


  据程一仕介绍,基于这个架构,理论上,master承担每秒10个万请求,shadowmaster能承担2万左右。而实际上master每处理10万个请求的话,shadowmaster可以处理7万到8万,也就是说整个服务的请求,shadowmaster可以分到40%之多。


  对于第二个错误处理的问题,为了解决这个问题,程一仕和他的团队做了Slave,它主要负责在故障出现的时候做切换去接管整个集群。


  “最开始的时候整个架构就是这样的,我们后面加了shadowmaster。后面又加了一个slave的东西,去做强一致的替换,我们在master上面做了一些工作。”程一仕解释道。


  细节决定一切解决方案时不要怕“坑”


  程一仕强调:“百度使用redis的代理中间层构建高可用的分布式redis集群来满足产品的低延迟以及大数据量的业务需求。这两个系统广泛应用于百度商业产品体系,LBS产品体系,数据库文件热备等在线业务,并支撑大量关键服务。”


  在分享即将结束时,程一仕还跟大家分享了他的一些感悟,他强调,细节决定着一切,“分布式存储的架构没有什么变化,最重要的就是它的细节,它的细节非常麻烦,也非常多,一个处理不好,就会让一个集群挂掉。一个处理流程太长,这些东西在我个人看来没有什么很好的办法,只有不断的踩”坑“,所以我觉得需要在细节上面需要注意很多问题。”


  百度技术沙龙四周年详解:高效架构大规模分布式存储


  程一仕强调细节非常重要。


  另外,程一仕鼓励大家在解决方案时不要“坑”。“我们觉得开源软软件很坑,是因为它没有资料。当你觉得坑的时候,你了解为什么坑,而不要只是说系统挂掉了,为什么挂,我也不知道,只是让你看代码,很多开源软件只有一万行或者是两万行,你看一个月就能够搞的非常清楚了,它有坑你就把它修掉。”


  一位参加此次沙龙的观众表示,对于noSql,他是最近才去了解的,“我对于解决方案操作还不够熟练,听完陈老师的讲课后,很有收获。”这位观众说。


  历时四载百度技术沙龙广受追捧


  本期技术沙龙恰好是百度技术沙龙4周年,现场很多听众都通过微博或微信为百度技术沙龙送上了祝福。主办方也为大家准备了50寸的大蛋糕共同庆生。


  现场除了主讲的程一仕老师和陈伟老师,百度技术沙龙上海站讲师,曾在第43期百度技术沙龙亮相的陈晔老师也从上海赶来为百度技术沙龙庆生。


  百度技术沙龙四周年详解:高效架构大规模分布式存储


  程一仕、陈伟和上海讲师陈晔共同揭开庆生蛋糕。


  微信用户朱秋旭表示,和百度技术沙龙共同成长的日子里他收获了很多。微信网友mobei则表示“希望百度技术沙龙继续坚持下去,成为工程师们的精神家园。”


  在技术沙龙结束后,现场很多人都感到意犹未尽。他们纷纷添加百度技术沙龙的官方微信,并主动找程一仕交流大规模分布式存储的核心技术和原理。


  百度技术沙龙是百度每月组织的一项技术开放交流活动,至今已经连续举办了4年,总共49期。百度技术沙龙一直致力于以“技术开放”的心态,分享行业领先的技术理念和技术实践。这种变革与分享、践行技术开放的行动得到了业内人士的广泛认可,目前北京的技术人员已经把百度技术沙龙当成了自己的精神家园。百度技术沙龙也希望日后能够有效推动中国互联网的技术发展与行业创新。