|
|
<div class="pct"> <div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612852">
作者:<font color="#cc0000">IT168 King</font> <br>
http://net.it168.com/a2009/0830/671/000000671068.shtml<br>
<br>
【IT168 架构师大会】2009年系统架构师大会,运维监控专场最后一个出场的是田逸,刚一上场,田逸就自报家门“我今天主要来与大家分享我所做的一个实际案例:高考中国网高可用、可扩展、负载均衡的设计与实现技术。”如此快速切入主题的演讲,也是本次系统架构师的众多亮点之一。<br>
<div align="center"><img id="aimg_dTANa" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" src="http://image4.it168.com/2009/8/30/99afdef4-fb5a-4f6c-b33b-a238288715c8.jpg" onmouseover="img_onmouseoverfunc(this)" lazyloadthumb="1" border="0" alt=""><br>
田逸</div><br>
相关背景:高考中国网站(<font color="#014ee9">www.gaokaochina.com.cn</font>)是以刊登高考最新动态、高考新闻、招生信息、各大院校最新信息、备考辅导、政策法规等高考相关内容为主,每年服务上百万考生登陆查询。像高考中国这种服务类网站在网络上有不少,但有很多网站却是因为架构设计不合理而频繁崩溃。就比如www.12388.gov.cn 刚发布就不堪负重,被“举报”而死;某在线报名系统因为报名人多,挂了;某旅游网站申领北京免费旅游门票被网民刷死。<br>
基于以上特点,田逸总结,“建立高考中国网就必须要考虑在局部和整体都实现高可用、可扩展和负载均衡。”<br>
系统总体架构<br>
那么如何实现这个目标了?“系统总体架构是重点,而重中之重则为负载均衡层、应用层、数据库层及共享文件系统。”<br>
<div align="center"><img id="aimg_Y2llr" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" src="http://image4.it168.com/2009/8/30/c11daea5-c5d8-4830-b60b-11260cb6aa41.jpg" onmouseover="img_onmouseoverfunc(this)" lazyloadthumb="1" border="0" alt=""></div><br>
负载均衡层技术实现<br>
对于负载均衡技术在高考中国网的实现,田逸总结了以下几点:<br>
Ipvs:虚拟服务器的创立<br>
Keepalived:健康检查、失败切换框架<br>
ipvs(IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了<br>
检查负载均衡器安装ipvsadm<br>
Keepalived健康检查:Checkers 负责真实服务器的健康检查healthchecking,是keepalived最主要的功能 。<br>
VRRP Stack负责负载均衡器之间的失败切换FailOver<br>
Ipvsa客户端:真实服务器网络的额外配置<br>
应用层技术实现<br>
而对于应用层技术,在高考中国网的应用,最好的实现方式有如下几点:<br>
利用apache整合php资源<br>
使用apache的worker模式获得好的性能<br>
共享文件系统解决数据同步问题<br>
数据库 mysql主从复制<br>
分布式文件系统 moosefs<br>
高可靠性总结<br>
田逸对于中国高考网项目的完成比较满意,经受住大流量的查询与登录。其关键就在于:局部高可靠性:负载均衡器高可靠,真实服务器高可靠、共享文件系统及数据库高可靠。通过以上几点要素整合而成整体的高可靠。想必经过田逸的精彩演讲,大家也会对如何构造海量查询网站的系统架构有了比较清晰的认识。<br>
<div align="center"><img id="aimg_idVd2" onclick="zoom(this, this.src, 0, 0, 0)" class="zoom" src="http://image4.it168.com/2009/8/30/63b31c4c-c153-4da8-805d-07093a74ba05.jpg" onmouseover="img_onmouseoverfunc(this)" lazyloadthumb="1" border="0" alt=""></div><br>
在最后的采访中,田逸希望广大系统架构师以及未来的架构师,“正因为系统架构师很多事情都需要去做,所以需要很全面的知识以及长期的经验积累,切忌一步登天!”</td></tr></tbody></table>
</div>
<div id="comment_612852" class="cm">
</div>
<div id="post_rate_div_612852"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612854">
大家在社区找找这位朋友叫什么社员名字</td></tr></tbody></table>
</div>
<div id="comment_612854" class="cm">
</div>
<div id="post_rate_div_612854"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612863">
社区的管理员:formyz<br>
<br>
</td></tr></tbody></table>
</div>
<div id="comment_612863" class="cm">
</div>
<div id="post_rate_div_612863"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612957">
kanpan<br>
<br>
</td></tr></tbody></table>
</div>
<div id="comment_612957" class="cm">
</div>
<div id="post_rate_div_612957"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612964">
有点像<br>
<br>
</td></tr></tbody></table>
</div>
<div id="comment_612964" class="cm">
</div>
<div id="post_rate_div_612964"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612967">
可惜图片太黑了:lol</td></tr></tbody></table>
</div>
<div id="comment_612967" class="cm">
</div>
<div id="post_rate_div_612967"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_612978">
秀山的骄傲 :victory:<br>
<br>
</td></tr></tbody></table>
</div>
<div id="comment_612978" class="cm">
</div>
<div id="post_rate_div_612978"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_613004">
从北京回来有好几年没看到他本人了,不过经常QQ在线<br>
<br>
</td></tr></tbody></table>
</div>
<div id="comment_613004" class="cm">
</div>
<div id="post_rate_div_613004"></div>
</div>
</div>,<div class="pct"><div class="pcb">
<div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tbody><tr><td class="t_f" id="postmessage_613097">
Moosefs分布式文件系统应用实践<br>
在存储架构专场的分论坛上,资深系统架构师田逸也跟大家分享了自己在Moosefs分布式文件系统的应用实践。<br>
对于大多数企业来说,厂商方案无疑是更具安全性也更加“省事”的一种方案,而田逸利用开源文件系统开发的共享存储解决方案则为大多数资金并不十分充裕,而且对技术开发有极大研究兴趣的架构师提供了较好的借鉴经验。<br>
资深系统架构师田逸 实际上,可用于开发的分布式文件系统还有很多,例如Google发布的GFS,雅虎发布的Hadoop,业界还有很多可供开发者使用的开源的分布式文件系统例如Lustre等等。田逸讲述自己也曾经在其他的分布式文件系统中试探选择过,尝试了PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后选择MFS,原因包括几个方面:<br>
实施起来简单。MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。例如田逸介绍lustre 的技术文档长达700多页,而MFS的操作文档则简洁明了清晰简单。<br>
不停服务扩容。MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。注:hadoop也实现了这个功能。<br>
恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的,原因参照第1条。<br>
4、 另外一个方面是开发MFS的作者非常热心,田逸讲述自己在使用MFS进行开发时其实并不懂英文,因此用中文给MFS的开发作者邮件,结果得到了作者的详细的回复,给了田逸很大的帮助也让田逸在分布式文件系统的开发中得到了鼓舞和支持。<br>
田逸介绍说,由于用户数量的不断攀升,田逸对自己系统中访问压力大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。<br>
在整个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。下面是某个集群使用nfs共享的示意图:<br>
这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。<br>
基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。采用分布式文件系统后,服务器之间的 |
|