为何有此主题?难道在ESX环境下配置NLB和实际物理环境下有所不同?没错,ESX vSwitch在默认配置下不支持单播模式的NLB;那么有两条路可选:更改ESX vSwitch配置,使其支持单播NLB,或者请使用多播方式配置NLB。VMware强烈建议使用后者,具体可查看以下KB;

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1556

 

一、 环境介绍

a) 一台esx,在其上建立两台虚拟机(单网卡),主机名和ip地址如下:
esx01 ip:192.168.12.121
vm1 ip:192.168.12.236
vm2 ip:192.168.12.237

b) 配置vm1和vm2组成微软NLB,NLB主机名和群集ip地址如下:
web ip:192.168.12.238

二、 配置步骤

a) 在vm1上打开“网络负载平衡管理器”,如下图:
ESX环境下微软NLB详细配置_职场

b) 在“NLB管理器”点击“新建群集”,如下图
提示:建立群集所使用的账户必须要有vm1和vm2的这俩个节点的本地管理员权限;
ESX环境下微软NLB详细配置_职场_02

c) 在“群集参数”中,输入群集的ip地址“192.168.12.238”,Internet名“web.******.cn”,在操作模式下选择“多播”模式(此处最关键,ESX默认不支持单播NLB群集),如下图 :

ESX环境下微软NLB详细配置_ESX_03

d) 因为我们只需要一个群集IP地址,所以在“附加群集IP地址”保持默认,下一步
ESX环境下微软NLB详细配置_微软NLB_04

e) 在“端口规则”保持默认即可,当然如果NLB只是提供web访问,也可以只设定80端口,如下图
ESX环境下微软NLB详细配置_职场_05
ESX环境下微软NLB详细配置_职场_06

f) 在“连接”窗口中,输入要作为NLB第一个节点的主机IP地址,此处输入vm1的IP地址,然后点击“连接”,成功后会显示“接口”列表里,点“下一步”
ESX环境下微软NLB详细配置_ESX_07

g) 在接下来的“主机参数”中保持系统默认即可,点击“完成”,到此,NLB群集已建立,并且已添加了一个节点vm1
ESX环境下微软NLB详细配置_微软NLB_08

h) 把vm2添加到已建立好的群集,如下图在群集名上右击选择“添加主机。。。”
ESX环境下微软NLB详细配置_职场_09

i) 在“连接”选项中,输入vm2的IP地址,如下图:
ESX环境下微软NLB详细配置_ESX_10

j) 在主机参数中还是保持默认设定即可
ESX环境下微软NLB详细配置_微软NLB_11

k) 至此,整个NLB双节点群集配置完成,我们可以查看一下vm1和vm2这俩个节点网络属性,以确定配置是否完成,如下图,已OK
 ESX环境下微软NLB详细配置_职场_12

ESX环境下微软NLB详细配置_微软NLB_13

 

l) 在群集网关所在的路由器或三层交换机上为群集IP地址和其多播MAC地址作静态绑定,本测试为:Cisco 3825,如下:
ESX环境下微软NLB详细配置_微软NLB_14

三、 测试NLB群集最终效果

a) 找一台客户端电脑,ping一下NLB群集IP地址192.168.12.238,OK的,如下
ESX环境下微软NLB详细配置_休闲_15

b) 为了更完整的测试NLB是否有达到“负载均衡”效果,我们在vm1和vm2上分别建立IIS web站点,如下:
ESX环境下微软NLB详细配置_休闲_16

c) 在vm1上建立测试web页面“This is vm1”,如下:
ESX环境下微软NLB详细配置_休闲_17

d) 在vm2上建立测试web页面“This is vm2”,如下:
ESX环境下微软NLB详细配置_ESX_18

e) 找2台不同客户端,使用http访问NLB群集IP地址,如下图显示,此访问请求被分别定位到vm1和vm2上,说明NLB已达到预期的负载均衡效果
ESX环境下微软NLB详细配置_休闲_19
ESX环境下微软NLB详细配置_职场_20

f) 查看vm1或vm2上的IIS访问 log,可以看到:客户端到IIS的请求是通过NLB的群集IP地址的,如下:
ESX环境下微软NLB详细配置_职场_21

四、 要点总结

a) ESX不需要做任何修改;

b) NLB操作模式需要选择“多播”;

c) 需要在NLB群集网关所在的路由器或三层交换机上配置NLB IP地址和其多播MAC地址的绑定(大部分路由器需此配置,否则非NLB网段的客户端无法访问)。