四、测试
在第一台机器上,关闭网络负载平衡管理器后,用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“连接到现存的”,将会弹出“连接”界面。输入第一台计算机的名称或IP地址,点击“连接”按钮,在“群集”下面将列出群集的IP地址,选择此IP地址,并点击“完成”按钮,连接群集即可完成。
ipconfig /all 运行结果:
第一台机器:
C:/>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : win2003-1
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VMware Accelerated AMD PCNet Adapter
Physical Address. . . . . . . . . : 00-0C-29-04-B1-21
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.200
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IP Address. . . . . . . . . . . . : 10.0.0.201
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
第二台机器:
C:/>ipconfig/all
Windows IP Configuration
Host Name . . . . . . . . . . . . : win2003-2
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter 本地连接 :
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VMware Accelerated AMD PCNet Adapter
Physical Address. . . . . . . . . : 00-0C-29-CE-C8-65
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.200
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IP Address. . . . . . . . . . . . : 10.0.0.202
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
可以看到,每个本地连接的网卡都在原来的内部地址之外,又加入了IP地址192.168.0.200。虽然都在一个局域网中,它们还没冲突,很奇怪吧?因为是“虚拟IP”嘛。
测试一下群集的效果:
1,分别在 win2003-1、win2003-2、win2003-3 上配置 IIS,建立虚拟主机,IP为192.168.0.200,主机头为cluster.mydomain.com。
再建立脚本 index.htm,分别为:
win2003-1 上:
<html>
This windows 2003 - 1
</html>
win2003-2 上:
<html>
This windows 2003 - 2
</html>
win2003-3 上:
<html>
This windows 2003 - 3
</html>
2,找一台可以访问 192.168.0.200 的机器,ping 一下 192.168.0.200,应该是通的。再运行 arp -a 命令,可以看到:
192.168.0.200 03-bf-c0-a8-00-c8 dynamic
说明 03-bf-c0-a8-00-c8 的 mac 地址也是虚拟的。
然后修改 hosts 文件,加一条记录:
192.168.0.200 cluster.mydomain.com
再重新打开浏览器,访问网站 http://cluster.mydomain.com,应该看到其中一台机器上的网页,显示 This windows 2003 - ……
一般看到的是 win2003-1 上的网页显示“This windows 2003 - 1”。
这时,人为的关闭win2003-1机器,或禁止其网卡,使其不提供 Web 服务。再打开访问网站 http://cluster.mydomain.com,应该看到另两台机器中,其中一台机器上的网页。说明网络负载平衡已经发挥作用,有效的进行了无缝的故障转移。注意在实际的生产环境中,各机器上的网站其内容是完全相同的(同步),尽管发生了转移,其外在表现则是完全相同的,这正是网络负载平衡要达到的目的。网络负载平衡的另一个作用,是进行负载的动态均衡分配,可以用一些压力工具来验证。
五、遇到的问题
在加第二台服务器的时候,一直加不上去,报如下错误:“没有接口可用于安装新的群集”。
原因:作试验时,其它机器是从第一台机器的 Windows 2003 克隆建立的。克隆的虚拟机,其MAC地址等参数可能是一样的,导致了该错误的出现。
解决方法:在设备管理器中,卸载(删除)原先的网卡。重新安装一下,就可以了。
六、改进设想
1,所有机器所在的局域网最好是千兆网卡和千兆交换机组建的千兆以太网。
2,本实验使用了“内部IP”,以确保IP地址不够的问题。实际使用时,最好让内部IP和虚拟IP(即对外提供Web服务的IP)均为公网IP,这样在远程登录管理时,可直接登录指定的服务器,因为远程服务也会被网络负载平衡进行动态路由,想登录哪台服务器不能被有效控制。
3,如果可能,尽量为服务器配置双网卡,让网络负载平衡由多块网卡分担。
对真正的负载平衡来说,每当用户点击一个连接时,它就改变服务器的状态,每当浏览一个新页面时都潜在地丢失他们的 session 信息。所以群集会对网站应用程序的会话(session)产生影响。
所以在实施网络负载平衡之前,一定要对网站应用进行审核。
为适应网络负载平衡的网站结构,网站代码一般一般采取以下办法:
○ 不使用 session
○ 使用 cookies
○ 购买第三方组件来处理 session 的存贮和管理
○ 仅对 Web 的第一次点击进行负载平衡,即只要进入某台服务器,就不再动态切换。