搭建过程
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信息。它可以确保发送给网络负载平衡群集的通讯只通过服务于群集主机的端口,而不是所有交换机端口。
详细过程可以参考下面这篇文章的链接:
负载均衡安装问题
经过上面的安装过程,有可能出现群集内的主机“无法访问”的问题,需要先在 “高级共享设置” 中打开 “启用网络发现” 功能:
若无法打开 “启用网络发现” 功能,可先在服务管理器中打开以下3项服务:
•Function Discovery Resource Publication
•SSDP Discovery
• UPnP Device Host
•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 步的方案,免得走弯路,大家可以试试。