windows第四层负载均衡--基于NLB负载均衡

Posted net-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows第四层负载均衡--基于NLB负载均衡相关的知识,希望对你有一定的参考价值。

上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡

TCP/IP协议族,第七层是应用层,第四层是传输层。第四层负载均衡主要通过IP进行转化。

一些优秀的第四层负载均衡软件,速度可以接近硬件负载均衡的效率。当然,论速度还是人家硬件的快一点点,毕竟人家那价格摆在那里,一台F5,十几万,几十万,上百万不等。

第四层重与第七层相比:优秀就是速度快,能感知集群服务器的状态。缺点就是不能感知应用层软件的状态,比如IIS站点挂掉,但是如果服务器没有挂掉,转化流量用继续流入该服务器。

现在很多的第四层负载均衡软件,我是说LINUNX服务器下。如果你使用了Windows,我还是建议大伙吃人家的全家桶吧。性能肯定不能最大化。但是论稳定性,维护性还是全家桶好使,省心,省力。

如果,你购买了微软的正版系统,你还可以一个电话,让人家工程师帮你解决问题。前提是,你得用的是全家桶。

常见的第四层负载均衡软件:LVS,NLB,还有其它,一时想不起来了,懒得查了。

 下面讲讲怎么安装NLB,当然我使用的是带GUI的操作系统,一般情况LINUX的是不装GUI的,但是window的黑框我还没有习惯,还不会用,就先用带GUI的吧

首先点服务管理器。

技术分享图片

一直点“下一步”,直到勾上这个

技术分享图片

安装成功。

每一台参与NLB的服务器,都需要安装。这跟ARR不一样,ARR只需要在转发服务器上面安装即可。

这里作为演示例子,就给三台服务器装上NLB吧

分别是

192.168.99.8
192.168.99.10
192.168.99.11

 简单讲讲原理吧

所有请求会分发到每一台NLB服务器,然后NLB服务器根据算法处理自己那一份请求。

那么所有请求是怎么分发给每一台服务器昵,因为他们有一个公共的IP。也是就说,每台服务器有两个IP。

是的,每电脑可以有多个IP地址。

技术分享图片

高级选项中,可以手动添加多个IP地址。

 打开网络负载平衡管理器,新建集群

技术分享图片

 技术分享图片

技术分享图片

 一直点“下一步”,直到完成。

192.168.99.10,192.168.99.20的服务器分别按下步骤操作。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

一直点“下一步”,直到完成。

集群部署完毕。

技术分享图片

我们查看IP,你发现,多一个公共IP,192.168.99.20 这个就是群集的IP。

 技术分享图片

 搭建好之后,我们就走一波试试,试跑成功之后,再来讲讲一些细节配置吧

首先IIS要做一些设置,因为我们将使用公共IP进行访问,就是192.168.99.20

 技术分享图片

 访问http://192.168.99.20/api/home/GetUserChat

技术分享图片

成功返回,老规则,现在用VS2017进行压力测试,完事之后,讲点细节配置这事就算完成啦。

技术分享图片

技术分享图片

 测试成功,但是问题也是相当明显

第一,数据的确广发给每个服务器,我们可以看,接收的数据大小都是一样的5.4Mbps

第二,发送的数据大小却完全不一样,这说明处理不一样。我们可以明显看到,192.168.99.10这台服务器,承担了大部分的工作。CPU上升到94%,发送数据包也达到1.5Mbps。

很明显集群配置不合适。下面我们来讲讲细节细置

 集群操作模式:

单播:所有节点服务器的MAC都会被改成集群MAC,发送数据的时候源MAC将变成集群MAC。缺点:交换机的MAC表无法绑定该MAC归属那个端口,所有数据包都进行广播,造流量负担。所有节点服务器具有相同MAC,无法相通讯。也就是说,集群节点,具有相同的IP和相同MAC地址。

多播:不会修改节点服务器的MAC,而是为专节点服务器添加多一个集群MAC,节点之间可以通过专用IP进行相互通信。

单网卡多播,双网卡单播。双网卡可以设置内网网卡成为专用IP,解决单播节点不能相互通信问题。

集群端口规则:

筛选模式:

多台主机:所有数据由多台服务器处理。

单个主机:所有数据由一台服务器处理,根据优先级选出服务器。

禁用此端口范围:禁止这个端口的数据,进行处理。

多台主机模式下,相关性:

无:由负载均衡器根根算法处理,基本上请求平均分配。

单一:同一个客户端的请求,归属原来的处理的服务器。

网络:根据IP的C类地址范围来决定分配。也就是同一网段的请求,会分配某一服务器上。

 

优先级:集群中所有转发根据端口规则进行处理,如果不符合端口规则,将统一由优先级最小的服务器进行处理。

为什么我们开始时候,192.168.99.10承受大量的工作,因为端口规则没有设置好,我们现在重新设置一下端口规则,再来测试一下吧。

之前默认设置

技术分享图片

 重新设置之后的配置

技术分享图片

好,我们重新跑一趟压力

技术分享图片

网络接受和发送比较平等。

技术分享图片

每个服务器接受的请求数,大概相等。

技术分享图片

每秒处理150个。与服务器数据相吻合。

负载均衡基本达到与预期效果一致。

 NLB集群测试完毕。

以上是关于windows第四层负载均衡--基于NLB负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

System Design 学习笔记2

CAS 配置NLB 负载均衡网络无法连接

Windows 08 R2_NLB负载均衡(图文详解)

haproxy+keepalived应用实战

最接地气的版本 30个字讲透 四层负载均衡 七层负载均衡

最接地气的版本 30个字讲透 四层负载均衡 七层负载均衡