在Hyper-V上安装配置Windows负载均衡NLB Windows Server 2008 R2 负载平衡入门篇

搭建过程

Hyper-V 是自Windows Server2008 以来提供的虚拟机管理软件,它操作简便,功能也不错,可以方便的在它里面安装各种操作系统,如图所示:

现在,想利用这几台虚拟服务器搭建一个负载均衡环境,并且想在虚拟机的宿主机上对负载均衡的主机进行管理,于是在宿主机、WinServer2008、WinServer2008-2、WinServer2008-3上面先分别安装好NLB功能:

安装完成后,打开“网络负载平衡管理器”,新建群集,连接到作为群集服务器当中的一台主机,注意,这里说的“主机”就是当前例子中的虚拟机,比如WinServer2008,而不是宿主机。按照向导提示,关键的一步就是设置群集的IP 地址。

群集的IP地址选一个没有使用过的IP地址,设置好后,这个IP地址会作为群集内的主机的“第二个IP地址”。

设定群集参数

接下来就是 设定群集参数,此处可设定群集完整的Internet名称,确定其操作模式。此处需要稍作解释:

1 单播模式 指把各主机节点重时指向同一个虚拟MAC地址,在此情况下各节点之间不能实现通讯。

2 多播模式 指各主机节点都保留原有的MAC地址,此外再外加专用于NLB的通讯MAC地址,使各节点之间能正常实现通讯。但并非所有的路由器或交换机都支持多播模式,使用时需要谨慎处理。

3 IGMP多播模式 建立在多播模式功能之上,在默认情况下每隔60秒发送一次IGMP信息。它可以确保发送给网络负载平衡群集的通讯只通过服务于群集主机的端口,而不是所有交换机端口。

详细过程可以参考下面这篇文章的链接: 

Windows Server 2008 R2 负载平衡入门篇

负载均衡安装问题

经过上面的安装过程,有可能出现群集内的主机“无法访问”的问题,需要先在 “高级共享设置” 中打开 “启用网络发现” 功能:

若无法打开 “启用网络发现” 功能,可先在服务管理器中打开以下3项服务: •Function Discovery Resource Publication •SSDP Discovery • UPnP Device Host

配置好以后,先看看能否直接通过主机名字进行相互访问,如果可以,那么NLB算是基本配置好了。

如果在NLB的服务节点无法看到某个主机,有可能是主机优先级冲突:

双击接口配置错误的内容,查看

修改下优先级:

但是,在主机上打开网络负载均衡管理器的时候,还会报一个错误:

这个说明提示不能在NLB主机上运行该管理程序,所以我们去宿主机上运行该管理程序。

网络负载平衡集群-》连接到现存的-》输入前面建立好的其中一个NLB主机名字-》连接

最后出现下面的界面,再也不会提示前面哪个错误了。

还可以使用菜单 :

文件-》保存主机列表

将宿主机连接的NLB服务器主机信息保存下来,下次再打开即可。注意宿主机跟NLB主机如果不是通过域连接的,并且宿主机的用户名密码跟NLB主机不一样,是无法连接的。

经验教训

在Hyper-V 上的虚拟机搭建NLB还是很简单的,但是要避免在宿主机上直接添加NLB主机,否则可能造成NLB主机无法访问等莫名其妙的错误,这个错误原因花了我几个小时反复实验证实的,大家以后不要再走这个弯路了。 正确的做法是在虚拟机上添加第一台NLB主机,最后在宿主机上管理查看。

在Windows AD域 中使用NLB

原本以为在AD域中搭建NLB一样很容易,结果遇到很大的问题,我安装了 Windows Server 2008 R2 企业版和数据中心版,数据中心版顺利的加入了AD域并且加入了NLB,但是企业版却遇到了下面这些问题: 1,服务器SID冲突,加入域后域用户无法远程登录(参考文件解决) 2,解决SID后,加入NLB不成功,导致网卡被禁用,重启提示系统无法启动; 3,重新安装Windows Server 2008 R2 企业版,加入AD域,加入NLB不成功,导致网卡被禁用,重启很长时间,蓝屏,虚拟机没法强制关机,虚拟机的宿主机也没法正常启动; 4,再次重新安装Windows Server 2008 R2 企业版,加入NLB不成功,导致网卡被禁用,重启很长时间,蓝屏,由于事前忙,几个小时后发现重启成功了,Windows从异常关机中恢复; 5,手工设置IP地址,在原来IP的基础上,给当前网卡绑定一个集群IP,再加入NLB,成功。 

PS:对于问题2,3,从网上搜索了很久没有找到有效的解决方案,询问了很多QQ群也没用人回应,不知道大家做NLB,是不是都没有在域控环境下做的。

      所以对于该问题,直接使用第5 步的方案,免得走弯路,大家可以试试。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

使用ThinkPHP框架快速开发网站(多图)

http://blog.csdn.net/ruby97/article/details/7574851/

2.7K20
来自专栏静晴轩

Gulp探究折腾之路(I)

前言: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完...

37780
来自专栏Golang语言社区

让事件飞 ——Linux eventfd 原理与实践

目前越来越多的应用程序采用事件驱动的方式实现功能,如何高效地利用系统资源实现通知的管理和送达就愈发变得重要起来。在Linux系统中,eventfd是一个用来通知...

1.5K30
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

 CRM(Customer Realationship Management)客户关系管理,是利用相应的技术信息以及互联网技术来协调企业与顾客间在销售、营销和...

36070
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

25980
来自专栏青蛙要fly的专栏

Android技能树 — 网络小结(4)之socket/websocket/webservice

介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看,最好可以指出我的错误,让我也能纠正。

11230
来自专栏程序员叨叨叨

compileSdkVersion 'android-24' requires JDK 1.8 or later to compile

今天,好久没有写Android程序的我突发奇想,想简单写一个每日任务APP。好的!新建工程->写好代码框架->开启模拟器->运行!哎哎哎?!那啥!咋报错了嘞?!...

12840
来自专栏Golang语言社区

Go微服务 - 构建我们的第一个服务

虽然通过HTTP提供JSON服务不是内部服务和外部服务的唯一选择,但本文聚焦的是HTTP和JSON. 使用RPC机制和二进制消息格式(例如Protocol Bu...

24740
来自专栏JAVA高级架构

大型网站系统与 Java 中间件实践

第一章 分布式系统介绍 分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。 分布式系统的意义: 升级单机处理能力的性价比越来越...

42870
来自专栏Golang语言社区

【Go 语言社区】Web 通信 之 长连接、长轮询(long polling)--转

基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。 一、什么是长连接...

1.2K30

扫码关注云+社区

领取腾讯云代金券