“秋秋”为你分享6篇“多途径可打造负载均衡”,经本站小编整理后发布,但愿对你的工作、学习、生活带来方便。
篇1:多途径可打造负载均衡
实现负载均衡,是很多企业关注的问题,随着IT业务的激增,这种均衡方案也越来越多的受到重视。那么,根据负载平衡技术而来的网站规划方案成为企业眼中的精囊妙计。那么,现在就让我们一起来看看如何将路由,路径等问题用负载均衡的手段处理得当。
ECMP
ScreenOS支持ECMP (Equal Cost Multi-Path /等值多路径) 功能,即支持将流量在多条等cost值的路径上进行负载分担;
假如用户有两条链路接入互联网,则可设置两条静态默认路由 (ScreenO中静态路由cost值默认都为1) 分别指向两个不同的下一跳地址,并打开ECMP功能,同时指定需要负载均衡的链路条数;另外可在防火墙连接两条链路的接口上都打开NAT功能,这样所有流量都会在两条链路上进行负载分担并转换成公网IP去往互联网;
Network -> Routing -> Virtual Router -> Edit
或通过命令行 ” set max-ecmp-routes 2 ” 来启用ECMP功能,由于ScreenOS最多支持四条链路的负载均衡,因此还可使用” set max-ecmp-routes 3 ” 或” set max-ecmp-routes 4 ”。
由于防火墙是状态检测设备,因此流量会基于会话以轮询的方式实现负载均衡;举个例子,假如共有10000个会话,如果在两条链路上打开ECMP功能的话,则其中约5000个会话从链路一出去,约5000个会话会从链路二出去;
ECMP功能的好处是配置简单,但其缺点也是显而异见的,即它不能智能地依据路由远近去分配流量,而是绝对平均地以轮询的方式分配所有会话到不同链路,这样有可能导致某些流量不能从最佳路由出去;比如用户同时租用了电信和网通的两条链路,ECMP打开的后果可能会导致去往电信区域的数据从网通链路出去,而去往网通区域的数据从电信链路出去。因此ECMP功能最适用于租用同一个运营商若干条链路的用户,或租用若干个互联互通情况较好的运营商链路的用户。
另外ECMP还有一个缺点是跟某些应用不兼容;比如某些多连接的应用,且该应用还要求每个连接都来自同一个IP地址,而打开ECMP的情况下,很可能同一个用户发起的两个连接中的一个从链路一出去,第二个连接从链路儿出去,导致这些应用运行不正常,最常见的例子是工商银行的网上银行业务,中国移动网上营业厅以及联众的网络游戏系统。解决方案是打开ScreenOS的nat stick功能“set dip sticky”,即保证来自同一个源IP的不同会话始终被翻译成同一个IP地址,这样就可解决应用兼容性问题;
基于目标地址的路由
为了使流量能够选择最佳路由,最直接的手段就是通过基于目标地址路由的选路方式,比如将所有去往某运营商域内的流量手工的指到到通往该运营商的下一跳路由器上,再另外用一条默认路由将其余流量指向到另外一条链路;如果是电信和网通的两条链路我习惯将具体路由指向网通路由器,默认路由指向电信路由器,原因是因为网通的路由条目较少而电信的资源较多;
比较常见的基于目标地址路由来实现负载均衡的场合是大学的校园网,由于大学校园网一般都有若干条链路接入internet,比如一条连接电信,一条连接网通,一条连接教育科研网(Cernet),而这三个网络之间的互联互通做得并不好,比如从电信链路出去访问Cernet的资源,会发现延时很大,速度很慢,
这时使用基于目标地址的路由可以最大程度保证流量选择最佳路由出去。
基于源地址的路由 (PBR)
实现流量复杂均衡还有一个手段就是采用源地址路由的方式。一般的三层转发设备都是通过查询路由表 (存放基于目标地址的路由) 来实现路由选路,而源地址路由(PBR)方式提供了另外一个手段,即防火墙会先查询某预先定义的特殊路由表(PBR 路由表)来进行路由查询,当PBR路由表中没有命中的路由条目时再去查询默认的路由表;也就是说,PBR路由表的优先级比默认路由表高;
而PBR路由表中存放的路由都不是按照目标地址来进行选路的,而是基于别的一些因素;比如源地址,源端口,目标地址,目标端口以及IP包头的COS字段这5者的任意组合。因此用户可以利用该特性按照内网用户的源地址属性进行选录;
举个例子,加入用户租用了两条链路,一条带宽为2M,另一条带宽为10M,则可把内网的用户划分为12个网段,通过PBR将2个网段从2M链路送出去,另外10个网段从10M链路送出去以实现静态的负载均衡;
入方向的负载均衡
前面讲的三种方式其实都是出方向的负载均衡,即连接由内向外发起,适合大多数企业的环境;但可能有的用户,比如提供互联网服务的企业,需要同时实现入方向的负载均衡,即要求当互联网用户发起请求内网的服务器数据的连接时,选择就近的链路接入;
熟悉运营商路由策略的人都了解,每个运营商都只发布自己的域内路由;因此当用户连接的目标地址属于运营商A的地址范围的时候,该连接一定会进入运营商A的路由域并传输到达最终目的地址。
因此对于入方向的流量,其实并没有什么好的实现负载均衡手段,除非你有自己的独立于运营商的地址范围(自己的AS域)并通过BGP路由协议将自己的地址通告给所有的peer运管商,但这种条件很难达成。
幸好互联网的寻址系统还包括有一个DNS协议,如果DNS服务器能够将某服务器的域名解析成若干个分别对应不同运营商的地址,则连接就可以在连接这些运营商的链路上平均分摊以实现负载均衡;这个功能实现起来很简单,只需在DNS服务器上添加多条A记录即可(www.163.com就是这么做的);但由于DNS服务器不会检查链路故障,因此当某条链路断掉后,DNS服务器依然会将域名随机的解析到该链路所属运营商的地址上,因此可能导致这部分流量服务不可用;
商业化的负载均衡设备(比如F5的Linkcontroller和Radware的LinkProof)都内置一个小DNS服务器,该DNS服务器可监控链路状态的变化,当发现某条链路故障时,就不会将域名解析到该链路所属运营商的地址,以实现服务的高可用性。当然,这类设备的价格要比防火墙贵很多很多。
篇2:打造负载均衡的多样策略
特殊环境下的网络结构,多具有复杂性和多样性,那么一个大型网络的协调就需要不同的技术来优化。现在我们来介绍一下,网络的多线路和负载分担问题。如何来实现线路备份和实现负载均衡呢?那么我们首先来看下都有哪些线路负载均衡的策略。
负载均衡策略的选择
解决这些问题的办法有多种方式和手段,其中最直接的便是通过路由器的提供的特性来解决,当前大多数交换机厂商的3层接入交换机都可以通过相关协议的配置来实现以下策略,我们在下面将一一讨论这些策略。
基于线路的均衡策略
可以针对不同的线路端口设置不同的优先级来实现负载均衡。例如,在Internet上有很多的游戏服务器,而每个服务器所走的线路也是不一样的,这时便可以利用交换机上提供的优先线路策略了。注意:在优先线路策略中,如果这个线路断开了(如路由协议超时仍没收到Hello包,或者端口状态 down掉),交换机就会根据路由配置的优先级选择策略自动选出一条线路然后切换过去。
基于带宽和访问目的均衡策略
设置基于带宽和访问的目的地址的负载均衡,这是交换机的缺省负载均衡策略。它可以连接到交换机上的不同宽带线路,根据不同的带宽和访问的目的地址作为优先级的依据,来实现负载均衡功能。
带宽和源均衡策略
设置基于带宽和源地址的负载均衡策略。在有些网络环境中,可能会有这样一种需求:根据IP地址来优先选取是走电信线路,还是走网通线路,而且相互备份,即如果电信线路出现了故障,原先走电信线路的PC可以优先走到网通线路。
分组均衡策略
可以为内部的PC进行合理分组,设置不同的分组走不同宽带线路的策略。例如,在企业网中设置了VIP区和普通用户区。VIP区走线路速度比较快的光纤,普通用户区走线路速度相对慢一些的ADSL,来实现不同分组走不同宽带线路的目的。
实现负载均衡
现有我们讨论在接入交换机上实现负载均衡配置的几种常用路由技术以及他们在均衡性能上的优劣比较:
RIP实现负载均衡
RIP在负载均衡明显不足的关键是其缺乏动态负载均衡能力。下图显示了一台具有两条至另一台路由器串行链接的情况。理想情况下,图中的路由器会尽可能平等地在两条串行链接中分配流量。这会使两条链路上的拥塞最小,并优化性能。不幸的是,RIP不能进行这样的动态负载均衡。它会使用首先知道的一条物理链路。它会在这条链接上转发所有的报文,即使在第二条链接可用的情况下也是如此,
改变这种情况的惟一方式是图中的路由器接收到一个路由更新通知它到任何一个目的地的度量发生了变化。如果更新指出到目的地的第二条链路具有最低的耗费,它就会停止使用第一条链路而使用第二条链路。RIP适用于相对小的自治系统。它的跳数限制为15跳,这样网络拓扑的直径最大是15跳。如果你要建造的网络具有很多特性但又不是非常小,那么 RIP可能不是正确的选择。
OSPF实现负载均衡
路由负载均衡能力较弱。OSPF虽然能根据接口的速率、连接可靠性等信息,自动生成接口路由优先级,但通往同一目的的不同优先级路由,OSPF 只选择优先级较高的转发,不同优先级的路由,不能实现负载分担。只有相同优先级的,才能达到负载均衡的目的。
EIGRP实现负载均衡
EIGRP在负载均衡上与OSPF实现相比优先级确定更为智能,它可以根据优先级不同,自动匹配流量。去往同一目的的路由表项,可根据接口的速率、连接质量、可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。唯一可惜这只是CISCO 的私有协议。
多设备多线路的线路备份
VRRP热备份协议是RFC中规定的标准线路备份和负载均衡协议(CISCO有一个相对应的协议叫 HSRP协议)。若用户有2台交换机,便可以设置2个VRRP组,每个组都有一个虚拟的IP地址;内部的PC也分为两个组,这两个组设置的缺省IP地址分别是2个VRRP组的虚拟的IP地址。然后,在2台交换机上设置不同的线路优先级,这样便可以实现内部不同的分组,从不同的交换机上不同的宽带出口去访问 Internet了。
根据VRRP协议,两台以上的交换机会选出一台做主交换机Master,Master在缺省时间内(1秒钟)会向其他备份交换机发出一个广播报文 :“hello”报文,向其他备份交换机说明自己工作正常,如果备份交换机很长时间(RFC规定是3倍的广播加一个偏移值)内收不到这个广播报文,就开始由沉默转为活跃,自己向发出hello广播报文,并在hello报文中附带自己的优先级,这样许多备份交换机通过比较彼此的优先级重新选举出一个新的 Master来负责缺省路由的职能,这样VRRP协议便可以自动地进行切换,实现备份的目的。
在VRRP协议中,还有一个监控线路的功能(Track)。比如,可以监控出口的宽带,如果远方线路断开了,这时Master就可以自动地把自己的VRRP优先级别降低,它的hello广播报文中携带的优先级也相应降低,这时如果备用路由器的优先级比它高,那么线路便很快的切换到这台交换机上去了。
篇3:Linux下基于DNS的多机均衡负载的实现
前二天为一个客户添加了一台服务器,共同承担一个论坛的运作。但是。要实现负载均衡。的确是件难事。
之前有试过几个方法,
一、DNS轮值。。优点:简单实现。缺点:无法检测各个服务器的负荷。难控制访客的访问地址(一般DNS服务器都有缓存,所以。效果不明显)
二、前台程序。。使用了一个类似Zeus Load Balancer的服务程序。在前台接受访问请求。再分流到各个实际的服务器。
但以上二个方法都不太适用我的情况。。
第一种。无法正确分配访客流量。。。常发生一台服务器的负荷很大。而另一台就很低。。。
第二种。会占用更多的流量。资源也占用较大。
最好。我还是采用了一个DNS均衡负载的方法---lbname。
它的主要效果介绍:
一、基于perl的dns服务端。应用简单。
二、自动检测各个服务器的负荷。然后再按结果优先分配DNS解析。
三、DNS解析实时生效。不会被DNS服务器缓存。
四、安装方法简单。。。
lbname网页介绍
http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html
http://www.stanford.edu/~riepel/lbnamed/
。
。
下载:
http://www.stanford.edu/~riepel/lbnamed/lbnamed-1.2.1.tar.gz
http://www.stanford.edu/~schemers/dist/lb.tar
.
.
下载包说明:
内存数个目录
1)lbcd的源代码。。。。lbcd是lbnamed所用到的服务器端检测服务器负荷程序。。每个需要均衡负荷的服务器都需要安装、运行它的。。。
建议下载使用最新的lbcd编译包。http://www.stanford.edu/~riepel/lbnamed/lbcd-3.1.0.tar.gz 之前的常有编译错误的。(这个也有的。嘻。)
编译这个包时。常会出错的。如何成功安装。就看你的本事了。(编辑util.c第123行。在前面加上//)
编译lbcd成功后。将它复制到/usr/sbin。那你就可以运行它了。。不用加什么参数了。(运行后要停止它就是lbcd -s)
2)lbnamed的服务器程序perl..分有二个版本。一个是perl4.另一个是perl5.我是使用perl5的。所以用它来说明。
进入perl5目录。。。。。先要配置好lbnamed和poller程序。
说明一下:
lbnamed程序是主程序。提供dns动态解析。严格来说。它已是一个dns服务器端程序了。
poller是为lbnamed提供各个均衡服务器的负荷情况。(配合我们之前安装的lbcd程序使用)
但二个程序可能都需要更改,请看程序第一行的perl程序地址。。改为你的perl地址。
然后就需要更改程序的配置文件了。
1,lbnamed.conf 要更改的地方有几个
一、$hostmaster = “schemers.leland.stanford.edu”; 将schemers.leland.stanford.edu改为你服务器的域名。。比如host.abc.com 这个无太大关系
二、将所有stanford改为你域名的中段(比如bendy.com,就改为bendy),将所有edu改为域名的后缀(比如bendy.com,就改为com)。。这个很重要。。我建议不要更改best。当然你也可以改
2,sweet.config 这个文件可以是用其它文件名的,具体在lbnamed.conf有设置。我建议大家先清空这文件。再重新建立新的。
这个文件的配置方法是
负荷服务器host 负重 组
比如。我自己的情况。有二台服务器。分别是bbs1.bendy.com和bendy2.bendy.com那我的配置文件就是
bbs1 1 bbs
bbs2 2 bbs
配置好这个文件后。你需要一个能对bbs1这个域名进行解析的方法。就是修改/etc/hosts文件。我的情况就是
192.168.1.1 bbs1
192.168.1.2 bbs2
这样的话。poller程序就会检测111.222.333.001、111.222.333.002的负荷情况了
至此,DNS服务器和均衡负载的服务器的程序已完成。可能我的说明不太清楚。现在我就一一列表说明
bbs1服务器 lbserver1 192.168.1.1 编译运行lbcd
bbs2服务器 lbserver2 192.168.1.2 编译运行lbcd
dns服务器 dnsserver 10.0.0.1 配置lbnamed 在/etc/hosts配置bbs1、bbs2域名解析
这样的情况下。。在dns服务器运行lbnamed程序。系统就开始动作了。。lbnamed的启动参数主要是 -l logfile和-d(debug)
./lbnamed -l lb.log -d
查看记录(类似)
cat lb.log
-=====
05/30 00:59 21442 lbnamed starting poller
05/30 00:59 21442 lbnamed load_config
loading 1452 bbs2 192.168.1.2 bbs
loading 837 bbs1 192.168.1.1 bbs
05/30 00:59 21442 lbnamed ready to answer requests
05/30 00:59 21442 lbnamed do_maint
05/30 00:59 21442 lbnamed reloading config
05/30 00:59 21442 lbnamed load_config
loading 1671 bbs2 192.168.1.2 bbs
loading 1086 bbs1 192.168.1.1 bbs
如果你没有那些记录,
看文件sweet.config.unreach这是代表poller程序无法接收到对方服务器的负荷信息。。请检查lbcd程序是否运行。。
如果程序运行正常。那你的DNS服务器就正常运行了。
如果检查程序是否正常。。。用我们的nslookup就可以了。。。
C:Documents and SettingsAdministrator.XINGKONG-SERVER>nslookup
Default Server: ns.guangzhou.gd.cn
Address: 202.96.128.143
> server 10.0.0.1 //直接使用dns服务器
Default Server: [10.0.0.1]
Address: 10.0.0.1
> set type=all //设置查询类型
> bbs.best.bendy.com //bbs是sweet.config设置的组名,best.bendy.com是在lbnamed.conf设置的
Server: [10.0.0.1]
Address: 10.0.0.1
bbs.best.bendy.com canonical name = bbs2.bendy.com //返回的信息。是DNS系统分配了bbs2给你这次的查询(按二台服务器返回的负荷情况来分配的,并非随便分配的)
bbs2.bendy.com internet address = 192.168.1.2 //而bbs.bendy.com在该在DNS系统的A记录是192.168.1.2//最后结果bbs.best.bendy.com得到的IP地址是192.168.1.2
====
自此。。服务器方面的配置已经完成。
跟着是我们配置具体域名的dns解析。。。
方法也是很简单,以bendy.com为例,在bendy.com的DNS管理加上以下记录
一、加上二个best.bendy.com的ns记录为ns1.bendy.com和ns2.bendy.com(也可以不止二个的.取决你有多少台服务器运行lbnamed
二、加上第一条添加的ns记录的实际指向iP,分别指向各个运行lbnamed的服务器,比如ns1.bendy.com address 10.0.0.1/ns2.bendy.com address 10.0.0.2等。
三、添加bbs1.bendy.com和bbs2.bendy.com等的实际ip地址。。。正如刚才所说...bbs.best.bendy.com只将DNS记录转移为bbs1.bendy.com或者bbs2.bendy.com。而lbnamed是没权对bbs1.bendy.com和bbs2.bendy.com进行解析的。。。所以。需要bendy.com的NAMESERER对它进行解析。
(ps:bbs1.bendy.com的记录并不一定要求与lbnamed程序的相同。。。)
四、最后。。添加bbs.bendy.com cname to bbs.best.bendy.com。。。哈哈。。。大功告成。。。
DNS解析完成后,我们就完成本次任务了。。。。
前二天为一个客户添加了一台服务器。共同承担一个论坛的运作。但是。要实现负载均衡。的确是件难事。
之前有试过几个方法,
一、DNS轮值。。优点:简单实现。缺点:无法检测各个服务器的负荷。难控制访客的访问地址(一般DNS服务器都有缓存,所以。效果不明显)
二、前台程序。。使用了一个类似Zeus Load Balancer的服务程序。在前台接受访问请求。再分流到各个实际的服务器。
但以上二个方法都不太适用我的情况。。
第一种。无法正确分配访客流量。。。常发生一台服务器的负荷很大。而另一台就很低。。。
第二种。会占用更多的流量。资源也占用较大。
最好。我还是采用了一个DNS均衡负载的方法---lbname。
它的主要效果介绍:
一、基于perl的dns服务端。应用简单。
二、自动检测各个服务器的负荷。然后再按结果优先分配DNS解析。
三、DNS解析实时生效。不会被DNS服务器缓存。
四、安装方法简单。。。
lbname网页介绍
http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html
http://www.stanford.edu/~riepel/lbnamed/
。
。
下载:
http://www.stanford.edu/~riepel/lbnamed/lbnamed-1.2.1.tar.gz
http://www.stanford.edu/~schemers/dist/lb.tar
篇4:Linux 服务器下多网卡的负载均衡
一、引言现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性、可用性及其 I/O 速度就显得非常的重要, 保持服务器的高可用性和安全性是企业级IT 环境的重要指标,其中最重要的一点是服务器网络连接的高可用性,为实现这些要求,现在服务器大都采用多网卡配置,系统大都采用现在非常流行的 linux 作为服务器工作的环境,现在带宽已经不是服务质量提高的瓶颈了,相对的网络设备和服务器的处理能力就渐渐成为新的瓶颈。为提高服务器的网络连接的可用性和可靠性,目前Sun公司的Trunking技术、3Com 公司的 DynamicAccess 技术、Cisco 公司的Etherchannel技术等等都在研究将服务器的多个网卡接口绑定在一起的链路聚集技术, 链路聚集技术将多个链路虚拟成一个逻辑链路进而提供了一种廉价、有效的方法扩展网络设备和服务器的带宽,提高网络的灵活性与可用性。
本文介绍 linux 下的 bonding 技术,linux 2.4.x 的内核中采用了这种技术,利用 bonding 技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备好像是一个单独的以太网接口设备,通俗点讲就是多块网卡具有相同的 IP 地址而并行连接聚合成一个逻辑链路工作。现在在关于linux bonding 技术中,有几种算法来实现负载均衡的要求,此文针对这些算法,在此进行简单分析与研究,讨论其不足,并提出另外一种在此基础上改进的一种基于传输协议的负载均衡实现方法。讨论如何实现多个网络接口的分在均衡及其故障接管。
二、负载均衡技术和高可用技术介绍
2.1 负载均衡技术负载均衡技术的主要思想就是如何根据某种算法将网络的业务流量平均分配到不同的服务器和网络设备上去,以减轻单台服务器和网络设备的负担, 从而提高整个系统的效率。负载均衡既可以由有负载均衡功能的硬件实现,也可以通过一些专用的软件来实现,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或者 I/O 任务,从而以较低的成本消除网络瓶颈,提高网络的灵活性和可靠性。
2.2 高可用技术实现负载均衡首先是基于网络的高可用性提出来的,高可用技术是容错技术的一个分支。实现系统的高可用性最简单的一个办法就是冗余,
完整的网络负载均衡和高可用性网络技术有两个方面构成,一是多服务器的绑定和负载均衡,二是一个服务器内部的多网卡绑定的负载均衡,这里主要讨论一个服务器内部的多网卡绑定时的负载均衡。
三、Linux 的 bonding 技术中负载均衡的简单实现
3.1 Linux的bonding技术Linux的bonding技术是网卡驱动程序之上、数据链路层之下实现的一个虚拟层,通过这种技术,服务器接在交换机上的多块网卡不仅被绑定为一个 IP,MAC 地址也被设定为同一个,进而构成一个虚拟的网卡,工作站向服务器请求数据,服务器上的网卡接到请求后,网卡根据某种算法智能决定由谁来处理数据的传输。 Bonding技术可以提高主机的网络吞吐量和可用性。
3.2 Linux的几种发送均衡算法目前 Linux 的发送算法最主要的有三种:轮转算法(Round-Robin) 、备份算法(Active-Backup) 、MAC 地址异或算法(MAC-XOR) .下面对目前这三种主要算法进行简单分析。
3.2.1 轮转算法该算法是基于公平原则进行的,它为每个将要被发送的数据包选择发送接口,算法的主要思想是首先第一个数据包由一个接口发送,另一个数据包则由另外一个接口发送,下面依次进行循环选择。通过分析我们可以看出这种算法比较比较简单,在发送数据方面也比较公平,能保证网卡发送数据时候的负载均衡,资源利用率很高。但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。
3.2.2 备份算法该算法将多个网卡接口中的一个接口设定为活动状态,其他的接口处于备用状态。当活动接口或者活动链路出现故障时,启动备用链路,由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N. 3.2.3 MAC地址异或算法该算法的主要思想是:由服务器的 MAC 地址和客户端的MAC 地址共同决定每个数据包的发送端口号,由源 MAC 地址和目的 MAC 地址进行异或计算,并将异或结果对接口数求余计算。由于发送到同一个客户端的数据流经过同一个链路,因此数据包能够有序到达客户端。此算法在只有一个客户机访问服务器或者服务器和客户机不在同一子网的情况下,由算法思想得知这种情况下负载不会均衡,在只有一个客户机访问服务器的时候,资源的利用率也是1/N(N为接口数)。
篇5:打造ISA防火墙网络负载均衡的故障转移
前言:网络负载均衡(NLB)可以实现网络服务的负载均衡和容错,但是当NLB节点的NLB服务没有失效但是所提供的其他服务失效时,NLB的容错是要打个折扣的,在这篇文章中,你可以学习到如何实现ISA防火墙网络负载均衡的故障转移,从而实现真正的容错。
在部署了网络负载均衡(NLB)的网络中,当某个客户针对NLB虚拟地址发起连接请求时,NLB通过某种NLB算法来确定(通常是根据发起请求的客户端源地址来决定)为客户服务的NLB节点。在NLB节点没有变动之前,对于某个客户,将总是由某个对应的NLB节点为它提供服务。ISA防火墙企业版中的集成NLB依赖于Windows服务器系统的NLB服务,对于客户发起的请求,也是采用相同的方式进行处理。
例如,对于一个具有三个NLB节点(ISA1、ISA2、ISA3)的ISA防火墙NLB阵列,当一个客户(10.1.1.1)发起连接请求时,NLB通过NLB算法确定由ISA1为此客户服务;而当另外一个客户(10.1.1.2)发起连接时,NLB通过NLB算法确定由ISA2为此客户服务。在NLB节点没有变动时,客户10.1.1.1的连接请求将会始终通过NLB节点ISA1来进行处理;而客户10.1.1.2的连接请求则会始终通过NLB节点ISA2来进行处理。
当某个NLB节点出现故障时,NLB将在所有节点上重新进行汇聚,并重新根据NLB算法来确定为客户提供服务的NLB节点。例如,此时ISA1节点出现故障,无法再提供NLB服务;则NLB重新进行汇聚,如果客户10.1.1.1再发起连接请求,则就是ISA2或者ISA3来为它进行服务,
当NLB节点失效时,NLB可以让其他NLB节点来为客户提供服务。但是,如果NLB节点的NLB服务没有失效但是所提供的其他服务失效时,怎么办呢?
如下图所示,两台ISA防火墙属于相同的NLB阵列,分别通过不同的外部链路连接到Internet,并且对内部网络提供NLB服务。两台ISA防火墙允许内部网络中的用户通过自己来访问外部网络,正在为不同的客户提供服务;如果此时,ISA1上的外部链路突然断开,会出现什么情况呢?
此时,由于ISA1上的NLB服务并没有出现故障,所以NLB会认为ISA1仍然是有效的NLB节点,并且同样会分配客户给它。但是,由于外部链路断开,ISA1所服务的客户却不能再连接到Internet了。这当然就不能有效的实现网络负载均衡中的容错特性。
那么,出现这种情况时,该怎么办呢?
答案很简单,当出现这种情况时,停止ISA1上的NLB服务,这样,NLB会认为ISA1上的NLB服务已经失效,将重新汇聚NLB,并且重新分配客户。从而原来属于ISA1的客户可以通过仍然运行正常的ISA2来访问外部网络。
要实现ISA防火墙NLB的故障转移比较简单,微软已经考虑到了。你可以通过配置ISA防火墙的连接性验证工具来实现当外部链路出现故障时进行相关的操作,但是要停止ISA防火墙上的NLB服务不是一件容易的事情。由于ISA防火墙上的NLB服务是和ISA防火墙服务集成的,所以你不能通过Windows的NLB stop命令来停止ISA防火墙上的NLB服务;微软也没有相关的关于如何停止ISA防火墙上的NLB服务的说明。在这种情况下,只能通过停止ISA防火墙服务来停止ISA防火墙上的NLB服务。
篇6:Linux下基于DNS的多机均衡负载的实现DNS服务器
前二天为一个客户添加了一台服务器,共同承担一个论坛的运作。但是。要实现负载均衡。的确是件难事。
之前有试过几个方法,
一、DNS轮值。。优点:简单实现。缺点:无法检测各个服务器的负荷。难控制访客的访问地址(一般DNS服务器都有缓存,所以。效果不明显)
二、前台程序。。使用了一个类似Zeus Load Balancer的服务程序。在前台接受访问请求。再分流到各个实际的服务器。
但以上二个方法都不太适用我的情况。。
第一种。无法正确分配访客流量。。。常发生一台服务器的负荷很大。而另一台就很低。。。
第二种。会占用更多的流量。资源也占用较大。
最好。我还是采用了一个DNS均衡负载的方法---lbname。
它的主要效果介绍:
一、基于perl的dns服务端。应用简单。
二、自动检测各个服务器的负荷。然后再按结果优先分配DNS解析。
三、DNS解析实时生效。不会被DNS服务器缓存。
四、安装方法简单。。。
lbname网页介绍
http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html
http://www.stanford.edu/~riepel/lbnamed/
。
。
下载:
http://www.stanford.edu/~riepel/lbnamed/lbnamed-1.2.1.tar.gz
http://www.stanford.edu/~schemers/dist/lb.tar
.
.
下载包说明:
内存数个目录
1)lbcd的源代码。。。。lbcd是lbnamed所用到的服务器端检测服务器负荷程序。。每个需要均衡负荷的服务器都需要安装、运行它的。。。
建议下载使用最新的lbcd编译包。http://www.stanford.edu/~riepel/lbnamed/lbcd-3.1.0.tar.gz 之前的常有编译错误的。(这个也有的。嘻。)
编译这个包时。常会出错的。如何成功安装。就看你的本事了。(编辑util.c第123行。在前面加上//)
编译lbcd成功后。将它复制到/usr/sbin。那你就可以运行它了。。不用加什么参数了。(运行后要停止它就是lbcd -s)
2)lbnamed的服务器程序perl..分有二个版本。一个是perl4.另一个是perl5.我是使用perl5的。所以用它来说明。
进入perl5目录。。。。。先要配置好lbnamed和poller程序。
说明一下:
lbnamed程序是主程序。提供dns动态解析。严格来说。它已是一个dns服务器端程序了。
poller是为lbnamed提供各个均衡服务器的负荷情况。(配合我们之前安装的lbcd程序使用)
但二个程序可能都需要更改,请看程序第一行的perl程序地址。。改为你的perl地址。
然后就需要更改程序的配置文件了。
1,lbnamed.conf 要更改的地方有几个
一、$hostmaster = “schemers.leland.stanford.edu”; 将schemers.leland.stanford.edu改为你服务器的域名。。比如host.abc.com 这个无太大关系
二、将所有stanford改为你域名的中段(比如bendy.com,就改为bendy),将所有edu改为域名的后缀(比如bendy.com,就改为com)。。这个很重要。。我建议不要更改best。当然你也可以改
2,sweet.config 这个文件可以是用其它文件名的,具体在lbnamed.conf有设置。我建议大家先清空这文件。再重新建立新的。
这个文件的配置方法是
负荷服务器host 负重 组
比如。我自己的情况。
关 键 字:DNS 服务器
★ 低碳环保的论文
★ 社区低碳环保论文
★ 电影项目策划书
★ 简历详述范文
★ 酒店项目策划书
【多途径可打造负载均衡(推荐6篇)】相关文章:
工业项目策划书2023-01-11
维维豆奶项目策划书2023-02-22
项目策划书模版2022-07-21
校园环保论文2022-12-08
Z-Blog多服务器平衡负载的方法2022-05-06
项目销售策划书的要点2022-08-22
低碳营销模式的论文2023-03-02
机电安装管理与实务复习题集92022-08-26
电视剧项目策划书2023-10-21
项目策划书模板2022-09-05