我不抽烟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Windows Server 2003 NLB负载均衡(集群)配置详解

铁卫士原创



      windows server 2003 NLB集群配置虽然简单,但是里面却有很多参数,您真的清除吗,这里,我不妨献丑与大家用易懂的语言分享一下我做windows server 2003 nlb集群(负载均衡)的经验

首先我们把windows server 2003 nlb集群(负载均衡)完整的配置过程过一遍,各位看官请看看我道来:

一,准备阶段:
vmware workstation 8.2为虚拟平台
操作系统:windows server 2003 中文企业版 32位
两个节点
节点A,计算机名:wina
             IP地址:   外网---192.168.100.1(用来做集群的网卡)
                              内网---192.168.200.1(用来内部通信的网卡)

节点B,计算机名:winb
             IP地址:   外网---192.168.100.2(用来做集群的网卡)
                              内网---192.168.200.2(用来内部通信的网卡)


集群IP地址:192.168.100.3

二,配置阶段:
在节点A上:
1,开始---运行---nlbmgr出现下面画面:

1.jpg


这就是我们一会要工作的平台了
2,网络负载平衡集群---右键---新建集群,下一步

2.png


3,这里输入:集群IP,也就是虚拟IP地址192.168.100.3,注意这里选择多播,至于单薄和多播还有IGMP多播,我一会在详细的解释,下一步

3.png


4,这里如果你有多个集群IP(虚拟IP)可以在这里输入了,下一步

4.png


5,端口规则,这里也是要重点讲的地方,这里作用非常大,这里我们保持默认,下一步

5.jpg


6,选择节点,也就是这个负载均衡的真实服务器,这里我们先添加节点A

6.jpg


注意了,这里输入内网IP,而不要输入外网IP,否则会有一个节点出现连接失败,为什么呢,这里输入内网作为集群和各个节点之间的同学,因为一旦配置了集群,各个成员的MAC地址变成了一样,所以会出现连接失败的提示,但是选择接口的时候一定要选择外网的接口,表示在这个网卡接口上配置均衡,下一步
7,这里不用你手动输入,当然你也可以手动输入这里的优先级,单IP地址不要动他,这里是个刚才的一个汇总

7.png


点击完成
8,配置完成你可以看到窗口多了一个主机

8.png


看到配置完成了就表示集群已经配置完成,并且添加了第一个节点,优先级为1

9,下面我们还要添加第二个节点B

9.png



10,和刚才一样输入,记得IP不要输外网的,用内网的

10.png



11,更改优先级

11.png


点击完成
12,自此就完成了集群的所有配置

12.png


看到了吗,两个节点都添加完成了,也都聚合了,以后还可以继续添加节点只需要重复9-11步骤即可

集群到此完成,一定要注意,windows 负载均衡和网站等其他的无关,这个集群本身就已经完成了,下面在各个节点上安装IIS,就可以给IIS做负载均衡了

非常简单吧,单这里有几个地方要做个详细的介绍

我知道大家在配置过程中肯定有两个地方比较疑惑
首先第一个疑惑
就是下面图:

3.png



单播,多播,IGMP多播
我们一一来解释一下:
单播
我们知道交换机是基于端口转发数据帧的,端口和插在各个端口的服务器的网卡地址(MAC地址)是一一对应并且形成个MAC地址表,这个MAC地址表是通过“学习”的来的,这个学习就是通过广播得到的
而我们用集群采用单播的时候,windows集群会把这个集群中所有的节点的网卡地址改成一样的(并不是真的改了,而是对发出去的数据包的源MAC地址改成和虚拟IP的MAC一致),这就导致交换机无法通过学习形成MAC地址表,所以,交换机和集群IP以及集群中各个节点通信都要通过广播进行(MAC地址表的学习过程第一个就是广播),这样一来凡是这个MAC地址通信的集群虚拟IP就去回应接受,然后根据优先级或端口规则来分配给各个请求给各个真实服务器,从而达到负载均衡的目的
显然,这里有个遵循了通用协议(所有的交换机,路由器都遵循),所以,单播适用性非常强,可以在任何网络中都使用
但这很明显有个缺点就是会在交换机带来负担,同时,外网的网卡将无法进行通信,这就是为什么我在上面要选择内网来添加节点的原因了,多播不会有此问题

多播
在多播模式下,NLB不会修改NLB节点启用NLB的网络适配器的MAC地址,而是为它再分配一个二层多播MAC地址专用于NLB的通讯(此MAC地址称为群集MAC地址),这样NLB节点之间可以通过自己原有的专用IP地址进行通讯。但是在多播模式中,集群的各个节点所发送的针对群集IP地址MAC地址ARP请求的ARP回复会将群集IP地址映射到多播MAC地址,什么意思呢,想想,我们现在这两个节点和集群的一个IP,就一共有三个IP地址了,一个虚拟的,两个真实节点的IP,那真实节点在和虚拟IP通信的时候,会把这个虚拟IP当做一台真是的服务器,在内存里面会保持一个ARP表,这个表就会有IP地址和多播MAC地址,这在计算机时没有问题的,单有很多路由器和交换机却不允许这样,所以多播的通用性比较差

IGMP多播
IGMP 多播,它可以通过使用IGMP协议支持来使交换机只将NLB通讯发送到连接NLB节点的端口,而不是所有交换机端口。但是此特性必须要求交换机支持IGMP侦听,并且要求群集工作在多播模式了下

第二个疑惑:端口规则
如下图:

5.jpg



111.png



我们来详细解释一下端口规则
顾名思义,端口规则,就是集群上对端口的规则呗!!!
集群IP地址:这里也就是虚拟IP192.168.100.3,如果你有多个集群IP,这里可以选择,这里就是你要,这个事端口规则应用的对象!
端口范围:就是哪些端口,这里默认是0-65535,就是所有的端口了
协议:就是指,这些端口下哪些协议,有TCP,UDP,两者同时
筛选模式:这里有三种:1,多主机模式;2,单一主机模式;3,禁用模式:
这个模式就非常关键了
多主机模式:是指根据这里的端口规则来负载均衡下面会详细讲
单一主机模式:不管三七二十一,请求按照前面设置的优先级来处理,什么意思呢,就是不管你用户有多少请求,全部发往优先级低先处理,除非这个优先级低的节点挂球了,那么才会把请求转发到次优先级的节点处理,这有点像双机热备了,而不是负载均衡了
禁用端口模式:什么意思呢,是指凡是这些端口的这些协议都禁止通过集群,相当于防火墙功能

下面我来重点看一下多主机模式
多主机模式:他对于相似性分了三种情况:1,无;2,单一;3,类C

什么是相似性呢,例如,我们在访问一个网站的时候,可能会同时打开很多这个网站的不同网页,就会发出不同的请求,单这些请求都是你一个人发的,所以是同一个IP上发出的,这些请求就叫做相似性请求
举一反三,同一个局域网,例如公司NAT上网,网吧代理上网,几百号人用的都是同一个IP地址,他们的请求也是相似性请求,所以,微软在这里给多主机模式更加细化来处理,这样能更加有效的分布你的请求,是均衡达到极致

无:是指来自同一个客户端的同一个IP地址的多条请求随机分配给各个节点,他是随机分配请求的,注意,这里如果是UDP的请求请不要选择无,所以当为协议设置选择“UDP”或“二者”时应避免使用“无
单一:是指NLB要把同一个客户的所有请求发给这个集群组中的固定节点处理,这是相似性默认的,这个事根据IP地址来判断的,而不是用户端来判断,举个例诶子,网吧里很多客户,但他们的IP地址都是一样的,所以这里会把这些客户端都当成是一个客户端,他们的请求都会发往同一个节点。同时,同一台电脑的不同请求也发往这个集群的同一个节点处理
C类:是指把所有TCP/IP中的C类地址全部转发给同一个集群组处理(不是单个节点哟,是集群组,集群组里面可能包含了多个接地那呢)


我们举列子说明:

第一例:
如图:

1.png


对于集群组:192.168.100.3,凡是80端口的TCP协议(http协议)请求,不管你是否来自同一个客户端的同一个请求,都会随机的分配到这个集群中的各个节点(100.1和100.2),完全随机!!!



第二例:


如图


2.png

2012-3-15 17:51:30 上传
下载附件 (52.29 KB)




对于集群组:192.168.100.3,凡是80端口的TCP协议(http协议)请求,不同的客户端IP地址会随机的分配到这个集群中的各个节点(100.1和100.2),单同一个IP地址的不同请求却发往这个集群主机中的他第一次分配的节点上


举个例子说,一共有1000个客户端访问192.168.100.3,那么1000个客户端根据IP会随机分配到不同的节点上,但是同一个IP的客户的所有请求都会发往他第一次分配的节点上!!!,看到不同了吗



第三例:



3.png



对于集群组:192.168.100.3,凡是80端口的TCP协议(http协议)请求,同一个C类地址的全部发往同一个节点

我想我已经说明白了

第四例:

4.png





对于集群组:192.168.100.3,凡是80端口的TCP协议(http协议)请求,都根据这个集群中各个节点自己的优先级来分配,而且优先级最低的将处理所有请求,其他节点一直空闲着,除非优先级最低的那个节点当机,这实际上是双机热备了,完全失去了负载均衡的意义


总结:


如果你要实现负载均衡,我推荐用多主机+单一模式


双机热备,不管什么模式都能实现!!!


这也是为什么你在做实验的时候用多主机模式+单一模式的时候老师实现不了负载均衡,老师刷在同一个节点上,那是因为你这个客户端不管你有多深个请求都会发往同一个节点,除非你能模拟出不同IP地址的客户端来访问才行!!!

posted on 2012-10-27 15:16  小李弯刀  阅读(1207)  评论(0编辑  收藏  举报