可扩展、高可用服务网络设计方案
作者:田逸([email]sery@163.com[/email])
定义
可扩展
:在用户访问数量快速增长的情况下,不终止现有服务来扩展系统的容量。比如web服务器目前已经不能接受更多的用户访问,可以在不停止服务的情况下增加第2台服务器,甚至更多的服务器,而且新增服务器对已有的服务器不会造成负面影响。
高可用性
:没有办法保证系统7*24不发生故障,但用户却要求任何时候都可以正常访问系统,这就是系统高可靠性的需求。一般来说,一个服务是运行在一个系统/机器上,一旦系统/机器出现故障,用户就不能再正常访问这个服务;如果把同一个服务分开放在2个不同的系统/机器,那么即使是一个系统出故障,服务依然是可以访问的。另外一个好处是恢复故障的压力减轻了。
负载均衡
:将用户的访问按照某种方式分配到不同的服务器,这样既能减轻单个服务器的负荷,又能增加访问容量。
要点
可扩展性和高可用性不是孤立的,只有结合起来,才能达到理想的效果。因此称这个方案为高可用、可扩展设计。
一、现状
1、
系统多数是windows,可靠性和稳定性都非常的差。在历次的网络安全事故中,windows都是最大的受害者。尽管windows占据了绝大部分的桌面市场,但在服务器领域,其份额还是很少的:象google、yahoo、baidu等拥有上万台服务器应用的机构都不约而同的选择linux/unix做为运营平台来支撑巨大的业务访问。
2、
存在单点故障。每个业务都运行在一个系统/机器上,一旦系统/机器发生故障,业务将不可避免的停止服务。拿网站做例子,web服务apache或数据库(mysql)只要任意一个服务出故障,整个网站的访问将变成不可能。
3、
缺乏集中的,可靠性高的存储机制。现有的配置文件、程序、数据库等数据都是单独存放在各自运行的系统上,维护成本非常高,而且很容易丢失。
4、
不具备可扩展性和高可用性。任何一个服务器出故障,运行在上面的业务将不再问用户提供有效服务。
5、
缺乏有效的流量监控设施。现在总的访问流量是未知数,因此对总带宽的使用率没有评估的依据。租了
20M
的带宽,实际使用了多少,不得而知。
二、改进措施
1、尽可能的把应用移植到linux平台。
2、采用NAS存储解决方案。
3、部署同一个业务到不同的服务器,然后使用LVS-DR做负载均衡,同时避免了单点故障。
4、后台数据库mysql采用主从方式的复制机制保证database的高可用性。
三、基本原理:
1、
LVS-DR:这是一个开源的产品,已经成为linux内核的一部分。用户的访问首先被转向到LVS-DR,然后根据业务的类别被重新定向到真实的服务器,由于LVS-DR只是转发,一旦客户短与提供服务的真实服务器连接成功,就不再使用LVS-DR的资源。
2、
多服务器运行同一个应用。既克服单点故障,又能增加系统的容量。
3、
NAS存储。提供集中可靠的存储机制。
4、
Mysql复制。避免数据库单点故障;如果将来访问量增大到一定程度的时候,可以改变到mysql集群的方式
出现故障
三、实施步骤
1、
移植应用到linux平台
2、
配置LVS-DR负载均衡控制器部分。
3、
部署相同的应用(web等)到两个不同的服务器
4、
部署NAS
5、
测试
6、
正式运营。
四、设备分配
1、
LVS-DR 1个服务器
2、
Web服务器2个
3、
Mysql服务器2个
4、
其他的几个服务器暂时不变
5、
可网管交换机一个(cisco 2950)
6、
NAS一套
五、进度安排
名称
|
花费时间
|
备注
|
LVS-DR
控制器配置
|
1
天(以后逐步增加转发条目)
|
以配置
ipvs
转发规则和防火墙规则
|
平台移植(
windows
à
linux
)
|
5
天
|
已经移植了
web
和
bbs
|
把服务器加入
lvs
集群
|
2
天
|
已经加了一个
bbs
和
mms
|
新建一个邮件服务器
|
1
天
|
测试中
|
部署流量监控
|
1
天
|
|
Nas
上线及配置
|
2
天
|
|
其他
|
7
天
|
|
本文转自sery51CTO博客,原文链接: http://blog.51cto.com/sery/40660,如需转载请自行联系原作者