【IT168 专稿】在讲解可扩展、高可用服务网络设计方案之前,我们来了解几个概念。
准备知识
可扩展:在用户访问数量快速增长的情况下,不终止现有服务来扩展系统的容量。比如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集群的方式。
出现故障