网络负载均衡(Network Load Balancing)
在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。
那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法)。
一、网络负载平衡的优点
1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速响应。
2.网络负载平衡对外只须提供一个IP地址(或域名)。
3.如果网络负载平衡中的一台或几台服务器不可用时,服务不会中断。网络负载平衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。此保护措施能够帮助你为关键的业务程序提供不中断的服务。可以根据网络访问量的增多来增加网络负载平衡服务器的数量。
4.网络负载平衡可在普通的计算机上实现。
在Windows Server 2003中,网络负载平衡的应用程序包括Internet信息服务(IIS)、ISA Server 2000防火墙与代理服务器、VPN虚拟专用网、终端服务器、Windows Media Services(Windows视频点播、视频广播)等服务。同时,网络负载平衡有助于改善你的服务器性能和可伸缩性,以满足不断增长的基于Internet客户端的需求。
网络负载平衡可以让客户端用一个逻辑Internet名称和虚拟IP地址(又称群集IP地址)访问群集,同时保留每台计算机各自的名称。
下面,我们将在两台安装Windows Server 2003的普通计算机上,介绍网络负载平衡的实现及应用。
这两台计算机中,一台计算机名称为w2003-1,IP地址为202.206.197.190,另一台名为w2003-2,IP地址为202.206.197.191。
规划网络负载平衡群集使用的IP地址为202.206.197.195,规划网络负载平衡群集完整的计算机名称为cluster.heinfo.edu.cn。你需要在heinfo.edu.cn域中注册此主机名称并将地址设置为202.206.197.195。如果你没有DNS,可以在需要访问网络负载平衡的客户机(包括网络负载平衡主机)上编辑%systemroot%system32driversetc目录下的hosts文件,添加一条信息“202.206.197.195 cluster.heinfo.edu.cn”,即可解决DNS域名解析的问题。
当正式应用时,客户机只需要使用cluster.heinfo.edu.cn或IP地址202.206.197.195来访问服务器,网络服务平衡会根据每台服务器的负载情况自动选择202.206.197.190或者202.206.197.191对外提供服务。
网络负载平衡的实现过程如下:
在实现网络负载平衡的每一台计算机上,只能安装TCP/IP协议,不要安装任何其他的协议(如IPX协议或者NetBEUI协议),在网络属性中,“网络负载平衡”也不能被选择,这可以从“网络连接属性”中查看。
①先进入第一台计算机,以管理员身份登录,从“管理工具”中运行“网络负载平衡管理器”,用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“新建群集”,进入“群集参数”界面(图1)。
图1
在“IP地址”后面输入规划的群集参数地址202.206.197.195,在子网掩码处使用默认值,在“完整Internet名称”后面输入cluster.heinfo.edu.cn(也可以是其他的名称,但输入的DNS名称必须与输入的IP地址相符)。
如果允许远程控制,请选中“允许远程控制”,并在“远程密码”和“确认密码”处输入可以进行远程控制的密码。
②点击“下一步”按钮,进入群集IP地址页面后再进入“端口规则”界面,点击“下一步”按钮,进入“连接”界面(图2)。
图2
③在“连接”界面的“主机”栏中输入当前计算机的名称w2003-1,然后点击“连接”按钮,将在“对配置一个新的群集可用的接口”框中显示出连接的计算机的网卡及IP地址。选择与群集IP地址同一网段的地址(用于对外提供网络应用的网卡),然后点击“下一步”按钮,进入设置“主机参数”界面,点击“完成”按钮,系统将自动开始网络负载平衡群集的配置。几分钟后,网络负载平衡群集配置完成。
④打开第二台计算机,并以管理员的身份登录进入。
注意:在网络负载平衡中的每个节点上,管理员账号的用户名和密码最好一致。
⑤然后,在第一台计算机上,用鼠标右键单击新创建的群集,从出现的菜单中选择“添加主机到群集”。将出现“连接”界面,在“主机”中输入第二台计算机的计算机名称,点击“连接”按钮,将会在“对配置群集可用的接口”下面显示出连接的计算机上的网络配置。选择202.206.197.191的网卡,进入主机参数界面,点击“完成”按钮,即可返回网络负载平衡管理器(图3)。
图3
⑥关闭网络负载平衡管理器后再进入网络负载平衡管理器。用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“连接到现存的”,将会弹出“连接”界面。
输入第一台计算机的名称,点击“连接”按钮,在“群集”下面将列出群集的IP地址,选择此IP地址,并点击“完成”按钮,连接群集即可完成。
以后,如果这两台服务器不能满足需求,可以按以上步骤添加第3台、第4台计算机到网络负载平衡中以满足要求。
三、用IIS服务验证网络负载平衡
网络负载平衡配置好后,为了实现某项具体的服务,需要在网络负载平衡的计算机上安装相应的服务。例如:为了实现IIS网站的负载平衡,需要在相应的网络负载平衡的计算机上安装IIS服务。
安装网络负载平衡的应用程序时,不需要特别的方法,只需要在配置好网络负载平衡的计算机上安装相应的服务即可。但是为了让每个用户在通过网络负载平衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载平衡的每台计算机上保持数据的一致性。举例来说:实现了两个节点的IIS的网络负载平衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。
为了检验网络负载平衡,我们可以通过IIS来进行验证,其他的一些应用如终端服务、Windows Media服务与IIS的应用相类似。
在网络负载平衡的每一台计算机上安装IIS服务,方法如下:
在“添加/删除程序”中,点击“添加Windows组件”,进入Windows组件向导,双击“应用程序服务器”,进入“应用程序服务器”(图4)。
图4
选中ASP.NET、Internet信息服务及应用网络COM+访问后,即可开始安装IIS服务。
安装之后,进入第一台计算机的inetpubwwwroot目录,新建一个文本文件,输入以下内容:
This win2003-1
然后将它保存为default.htm文件。这个网页在IE中将显示如下内容:
This w2003-1
在第二台计算机的inetpubwwwroot目录,新建一个文本文件,并输入下面的内容:
This win2003-2
这个网页在IE浏览器中将显示“This w2003-2”,随后将这个文件以default.htm名称保存。
然后,在其他计算机上的IE浏览器中键入http//cluster.heinfo.edu.cn,将会显示为“This win2003-1”或“This win2003-2”,根据网络的负载,网络负载平衡会自动转发到第一台计算机或第二台计算机。为了验证效果,你可以在浏览的时候,拔掉第一台计算机的网线或拔掉第二台机器的网线,将会发现浏览到的将是不同内容。当然,我们只是测试的时候,为了验证网络负载平衡的效果,两个网站的内容不一致,而在正式应用的时候,网络负载平衡群集的每个节点计算机的内容将是一致的,这样,不管使用那一个节点响应,都保证访问的内容是一致的。
负载均衡的状态管理
1、 使用cookie,优点:客户端存放,无需考虑负载均衡带来的影响;缺点:安全性差
2、 使用viewstatus,优点:分页面存放,无需考虑负载均衡带来的影响;缺点:分页面,无法全局继承
3、 使用session服务器,优点,简单的在webconfig中配置即可使用session;缺点:如果session挂了,所有的服务器都不能用
4、 使用黑盒子(负载均衡调度器),我在智通人才的时候IBM给的解决方案,要花钱的。
一般使用的方法就是第三种,有钱的可以考虑第四种,但第一种也可考虑,毕竟在普通环境下对cookie研究的人较少,而且可以对cookie进行加密处理,以增强安全性。
附第三种方法的配置方法:
1、在web.config里配置
<sessionState mode="StateServer"
stateConnectionString="tcpip=192.168.1.82:42424" cookieless="AutoDetect"
timeout="60" />
2、把保存Sessin的服务器的注册表修改一下,比如就是 192.168.1.82这台,修改如下:
修改注册表:
运行 regedit → 打开注册表 → 找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters 节点 → 将 AllowRemoteConnection的键值设置成“1”(1 为允许,0 代表禁止)→ 设置 Port (端口号)
注:AllowRemoteConnection 的键值设置成“1”后,意味着允许远程电脑的连接,也就是说只要知道你的服务端口,就可享用你的ASP.NET State Service;键值为“0”时,仅有stateConnectionString 为“tcpip=localhost: 42424”与“tcpip=127.0.0.1:42424”的情况,方可使用ASP.NET State Service
端口号,必须与stateConnectionString的端口号相同(注意端口号的键值是以十六进制储存的,可以使用十进制进行修改,42424 是默认的端口)
3、右键点击“我的电脑”→ 管理 → 服务与应用程序 → 服务 → 双击“ASP.NET State Service” → 启动(可设为“自动”)
若ASP.NET State Service已经运行,需重启ASP.NET State Service。
多服务器文件共享的管理
负载均衡中有多台web服务器,执行同样的程序,共用的文件应布置另外的一台共用file服务器上,同时web服务器要同时读取、写入file服务器上的文件。.
方案有:
1、 即启用Guest帐户并且在相应的Shared Folder上给予Guest读取和写入权限。但这样的方式安全性可想而之,任何用户都可以修改本应由程序管理的文档。
2、 使用共享存储的磁盘阵列,各大服务器厂商均有此解决方案。缺点在于价格不菲
对于第一种,可启用账户管理以保证安全性
首先文件服务器和Web服务器必须在域中。
默认情况下IIS以machine\ASPNET帐户的身份运行,我们在web.config中定义
<identity impersonate = “true” username=”Domain\UserName” password=”pword”/>
这样可以让程序以此指定的域帐户身份执行。另外可能需要给予此域帐户ASP.NET临时文件夹的写入权限。
然后在FileServer上相应的文件夹上给予这个域帐户读取和写入权限。完成。
分享到:
相关推荐
网络负载均衡配置教程,常见问题解决方法,给需要的兄弟。
本文是关于负载均衡技术最初的设计理念,首次提到负载均衡技术的优势,现有的负载均衡技术都是基于该理论发展而来的!本文是一片英文文献,适合具有一定英语阅读能力、网络技术基础的人阅读。
Network Load Balancing的安装过程。
Network Load Balancing Architecture
负载均衡(Load Balancing) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强 ...
Windows 2008 Network Load Balancing 安装说明,Windows 2008 Network Load Balancing 安装说明,Windows 2008 Network Load Balancing 安装说明,Windows 2008 Network Load Balancing 安装说明,Windows 2008 Network...
loadbalancing负载均衡开源解决方案.pptx
负载均衡开源解决方案 Load Balancing Using Open Source Softwares FinalBSD:通过HAProxy,构建开源负载均衡架构平台.ppt
Network Load Balancing Technical Overview
负载均衡技术探讨(LoadBalancing.ppt) 自己做的PPT,希望各位能喜欢
Load Balancing & Failover (RAC)RAC负载均衡和失效接管
Citrix_Load_Balancing配置手册
自行翻译的PhotonServer LoadBalancing应用的详细说明。
利用BBO算法来优化网络负载均衡,达到很好的效果,比传统方法优越。很适合正在用智能算法优化网络映射的学者。
What you'll learn * Judge network load balancing algorithms and when to use them * Plan your network for optimal load balancing performance * Configure single servers to take advantage of modern load...
实用负载均衡技术网站性能优化攻略=PRACTICAL LOAD BALANCING RIDE THE PERFORMANCE TIGE
对Weblogic中HTTP负载均衡的配置
Making application scalable with load balancing
Load balancing,就是负载均衡,是一种计算机技术。资源分配不均衡,吞吐量低,相应时间慢,过载损坏! 什么是负载均衡? 用来在多个计算机之间,网络连接,cpu,磁盘驱动器或其他资源中分配负载,已达到最优资源使用...