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