1、企业实现服务器负载均衡常见的四种方法 为了提高服务器的性能和工作负载能力,企业通常会使用 DNS 服务器、网络地址转换等技术来实现多服务器负载均衡,特别是目前企业对外的互联网 Web 网站,许多都是通过几台服务器来完成服务器访问的负载均衡。目前企业使用的所谓“负载均衡服务器” ,实际上它是应用系统的一种控制服务器,所有用户的请求都首先到此服务器,然后由此服务器根据各个实际处理服务器状态将请求具体分配到某个实际处理服务器中,对外公开的域名与 IP 地址都是这台服务器。负载均衡控制与管理软件安装在这台服务器上,这台服务器一般只做负载均衡任务分配,但不是实际对网络请求进行处理的服务器。一、企业实现
2、Web 服务器负载均衡为了将负载均匀的分配给内部的多个服务器上,就需要应用一定的负载均衡策略。通过服务器负载均衡设备实现各服务器群的流量动态负载均衡,并互为冗余备份。并要求新系统应有一定的扩展性,如数据访问量继续增大,可再添加新的服务器加入负载均衡系统。对于 WEB 服务应用,同时有几台机器提供服务,每台机器的状态可以设为 regular(正常工作) 或backup(备份状态),或者同时设定为 regular 状态。负载均衡设备根据管理员事先设定的负载算法和当前网络的实际的动态的负载情况决定下一个用户的请求将被重定向到的服务器。而这一切对于用户来说是完全透明的,用户完成了对 WEB 服务的请求
3、,并不用关心具体是哪台服务器完成的。二、使用网络地址转换实现多服务器负载均衡支持负载均衡的地址转换网关中可以将一个外部 IP 地址映射为多个内部 IP 地址,对每次 TCP 连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。然而硬件实现的负载控制器灵活性不强,不能支持更优化的负载均衡策略和更复杂的应用协议。基于网络地址转换的负载均衡器可以有效的解决服务器端的 CPU 和磁盘 I/O 负载,然而负载均衡器本身的性能受网络 I/O
4、的限制,在一定硬件条件下具有一定的带宽限制,但可以通过改善算法和提高运行负载均衡程序的硬件性能,来提高这个带宽限制。不同的服务类型对不同的服务器资源进行占用,我们使用的负载衡量策略是使用同一个负载进行评估,这对于大多数条件是适合的,然而最好的办法是针对不同的资源,如 CPU、磁盘 I/O 或网络 I/O 等,分别监视服务器负载,由中心控制器选择最合适的服务器分发客户请求。三、使用 DNS 服务器实现负载均衡访问企业网服务器的用户急剧增加,一台服务器难以满足用户的访问需要,那么如何才能保证用户的正常访问呢?解决方法有很多,如使用 Windows 2000 或 Windows Server 200
5、3 提供网络负载均衡服务,但该服务的设置非常复杂。而通过 DNS 服务器实现网络负载均衡则是一种比较简单的方法。企业网通常由很多子网构成,为了降低网络中的数据流量,客户机最好能访问处于同一子网内的Web 服务器。虽然实现了网络负载均衡功能,但并不能保证客户访问的是本子网的 Web 服务器。其实这个问题也很好解决,只要启用 DNS 服务器的“启用网络掩码排序”功能即可。在 DNS 管理器窗口中,右键点击 DNS 服务器,在弹出的菜单中选择“属性” ,然后在属性对话框中切换到“高级”选项卡,勾选“服务器选项”列表框中的“启用网络掩码排序”选项即可。这样客户机每次都能访问到本子网内的 Web服务器了
6、。完成以上设置后,就使 DNS 服务器实现了网络负载均衡功能,把客户的访问分担到每个 Web服务器上,并且还减少了跨子网的网络通信流量,大大降低了企业网的通信负担。四、企业实现 SQL Server 数据库服务器负载均衡MS SQL Server 数据库服务器可以说是应用范围最广的数据库产品,并且越来越多地在大型和比较关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL Server 数据库要不停的进行处理、存储、查询的工作,这个时候企业就要考虑 SQL Server 数据库服务器的性能和速度及安全性了。然而,长期以来,SQL SERVER 数据库服务器都只有“热备 ”
7、的解决方案,而没有“负载均衡”和“集群”的解决方案。随着数据库路由器软件 ICX 的出现,为基于 MS SQL Server 的数据库系统提供了一种更优秀的集群解决方案。它可以真正的实现 SQL Server 数据库服务器的动态负载均衡,提高性能和速度;它可以真正的保证 SQL Server 数据库服务器不间断的提供服务,在服务器发生故障的时候实时切换到其他服务器上继续提供服务,切换时间为“零” 。数据库路由器是实时并发数据库事务处理同步复制器和负载平衡器。所有的数据库客户都通过 ICX 访问数据库。当访问、查询 SQL Server 数据库的时候 ICX 可以根据实际情况分配服务器来提供服务
8、,大大提高服务速度和优化性能,完成负载均衡。ICX 可以同时连接多台数据库,这若干台数据库的内容在任何时刻由 ICX 保证是完全一致的。也就是说,ICX 采用了全新的并发事务处理的方式,向连接的 N 台数据库同步复制事务处理,使得系统在任何时刻具有多个一致的最新逻辑数据库数据集。当其中一台数据库服务器发生故障的时候,ICX 可以实时的、第一时间切换到其他服务器上来继续提供服务。真正的实现零时间的服务器切换,大大提高安全性,真正意义的实现服务器不间断服务。原理:负载平衡把每个 IP 数据包按某种规则分发到服务器节点,不同的负载平衡实现方式有不同的分发规则。对客户端来说负载平衡系统是透明的。采用网
9、络负载平衡技术的服务对单个客户端请求的响应并比单个主机快,但对大量客户端的密集请求在速度与质量有很大优势。并且当某个主机发生故障或脱机时,不会影响服务的提供,从而带来了高可用性。负载平衡的不同实现方法4.1 利用网络设备的动态网络地址转换(NAT)功能实现负载平衡实现负载平衡的要求:具备动态 NAT 功能的路由器,多台运行同一服务的服务器 ,所有服务器要求在同一局域网内。负载平衡的设计与配置过程:内部的多台服务器,有自己的私有 IP,提供相同的服务, 但对外映射通过网络地址转换( NAT)成为一个统一的公网 IP 地址,对外部来讲多台服务器是捆绑在一起的一个虚拟服务器,外部访问这个虚拟服务器时
10、,轮流指向各台服务器,从而达到负载均衡。例如:以下网络中路由器动态 NAT 配置过程如下:(以思科路由器为例)Router(config)#int f0/1Router(config-if)#ip address 192.168.1.1 255.255.255.0Router(config-if)#ip nat insideRouter(config-if)#int s0/0Router(config-if)#ip address 133.0.0.1 255.255.255.252Router(config-if)ip nat outsideRouter(config-if)#exitRout
11、er(config)#ip nat pool p2 192.168.1.2 192.168.1.4 netmask 255.255.255.0 type rotaryRouter(config)#access-list 2 permit 133.0.0.33Router(config)#ip nat inside destination list 2 pool p2Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0优、缺点:配置简单,成本低,服务器在本地便于维护,负载平衡算法由路由器提供,不需占用服务器系统资源。但是一般只能支持轮流服务的算法,不能根据服务
12、器性能进行合理的负载分配。4.2 DNS 的负载平衡实现负载平衡的要求:要求 DNS 服务器的支持,一般支持 bind8.2 以上的类 unix 系统,安装一个循环复用 DNS 软件。负载平衡的设计与配置过程:在 DNS 中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。配置过程在不同的DNS 系统中有不同的配置方法,本文不再多述。优、缺点:服务器可以分布在不同的地域,有利于故障转移。负载平衡算法运行在 DNS 服务器上,不占用服务器资源。但是域名服务器无法知道服务结点是否有效,如果服务结点失效,域名系统依然会将域名
13、解析到该节点上,造成用户访问失效。另外,它不能区分服务器性能的差异,也不能反映服务器的当前运行状态。因此,在动态平衡特性上,动态 DNS 轮询的效果并不理想。4.3 利用操作系统的群集功能实现负载平衡负载平衡的要求:要求使用支持群集功能的操作系统如:windows 2000server 以上的服务器版本,Unix 或 Linux。本文以 windows2003 server 为例介绍群集功能的配置。负载平衡的设计与配置过程:群集的实现需要群集内部的通讯以及管理和内容复制的数据传输。这部分通讯占用了网络的可用带宽。为了克服单网卡的局限性,一般使用双网卡,一个用于负载客户端的通讯,另一个用于传输内
14、部通讯,管理和内容的数据。群集操作模式的选择是设计的重要一步。单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC(由 02-bf 和群集 IP 地址组成确保此 MAC 的唯一性) 。多播模式下,网络适配器在保留原有的 MAC地址不变的同时,还分配了一个各节点共享的多播 MAC 地址。一般选用多播模式。端口规则是 windows2003 的新特性。NLB 提供 3 种筛选模式,可以针对端口规则采取禁止、多主机负载平衡和单主机的特殊处理。其中,多主机筛选模式提供了真正意义上的负载平衡,并且可以根据节点的实际处理能力进行负载量的分配。Windows2003 引入了网络负载平衡管理器(控制面板
15、-管理工具) ,使负载平衡的安装和配置更加简单。管理器可以容易的实现群集的建立、删除,节点的添加、删除、修改以及故障的检测。运行网络负载平衡管理器,选择 群集 - 新建 ,弹出“群集参数”对话框,然后根据向导按需要配置。首先配置好参数后点击下一步,系统会提示添加附加群集 IP,如果不需要可直接按“下一步”进行端口配置。以 web 群集配置为例:如果会话状态不保存在该群集上,则相似性选择无,否则选择单一或者类 C。之后,指定一台主机连接,并选择一个可用的网络接口,进行主机参数的设置:点击“完成” ,管理器会自动连接到主机上进行相关配置来创建一个新的群集。优、缺点:选择多主机筛选模式时提供了真正意义上的负载平衡,并且可以根据节点的实际处理能力进行负载量的分配。比较适用于大型网站负载平衡的实现。但使用 Unix, Windows 2003 server 系统实现时,网络架构成本较高。