单网卡多播模式实现NLB单位(中):山东海天CTEC(东营分部)作者(中):王宇联系电话:13864740109E-mail:wangyu1026@msn.com或wangyu@learnking.com索引1,引言.............................................................................................................................................22,Windows2000群集技术...........................................................................................................22.1对比Windows2000的两种群集技术.............................................................................22.1.1MicrosoftClusterService.........................................................................22.1.2NetworkLoadBalancing...............................................................................22.2.3介绍NLB............................................................................................................32.2.4单网卡多播工作原理...........................................................................................43,用单网卡多播模式实现NLB群集.............................................................................................43.1背景.................................................................................................................................43.2前期准备.........................................................................................................................53.3配置节点A......................................................................................................................63.3.1配置群集参数.......................................................................................................73.3.1配置主机参数...................................................................................................83.3.3配置端口规则...................................................................................................93.3.4配置节点A的TCP/IP属性..........................................................................103.4配置节点B...................................................................................................................113.4.1配置群集参数.....................................................................................................113.4.2配置主机参数.....................................................................................................113.4.3配置端口规则.....................................................................................................123.4.4设置用于网络载量平衡的TCP/IP属性......................................................133.5多播模式NLB下,对交换机的额外设置...................................................................133.6多播模式NLB下,对路由器的额外设置...................................................................144验证群集工作情况.............................................................................................................155TroubleShooting.......................................................................................................................155.1常见问题.........................................................................................................................165.2排错步骤.......................................................................................................................161,引言目前在大型网站应用中,采用了许多新技术来实现服务器负载均衡,微软从WindowsNTServerEnterpriseEdition时就有负载均衡了,当时被称为WLBS,在Windows2000中,微软在WLBS的基础上,重写了部分源代码后,将WLBS正式更名为NLBNetworkLoadBalancing网络负载均衡技术,又称为负载分担,这两个名词时可以互换的。Windows2000AdvancedServer和Windows2000DatabaseCenter支持NLB技术,Windows2000Professional和Windows2000Server不支持该技术。实现这项技术不需要额外的添加任何软件和硬件,对于中小企业来说,使用NLB来构造高可用性的服务器负载均衡解决方案无疑是一种PriceSensitive解决方案。2,Windows2000群集技术2.1对比Windows2000的两种群集技术MicrosoftWindows2000支持两种群集技术:MicrosoftClusterService和NetworkLoadBalancing。这两项技术都能提高服务器的可用性和效率,它们之间时互为补充的。有时需要同时实施这两项技术,有时只需要实施其中一个。2.1.1MicrosoftClusterService提供了FaultTolerant解决方案,可以由2-4台计算机组成一个FaultTolerant群集节点。所有的节点中有一台被称作primarysystem,剩下的计算机为backupsystem。正常情况下由primarysystem来提供服务,backupsystem不提供服务。只有当primarysystem出现故障时,在所有的backupsystem中会重新生成一台primarysystem来接替原先primarysystem提供服务。2.1.2NetworkLoadBalancing网络负载分担是一种将所有的IP流量分担到多台节点上的技术。本文我们将详细讲解使用单网卡多播模式构架两个节点的NLB群集。重点:MicrosoftClusterService提供故障转移NetworkLoadBalancing提供网络流量负载分担2.2.3介绍NLBWindows2000的NLB群集技术最大支持32台节点。NLB技术的核心是wlbs.sys,它是一个驱动程序,运行在网卡驱动程序与TCP/IP之间。NLB采用分部式软件体系结构,NLB驱动程序的副本在NLB群集中的每个节点上运行着。图一wlbs.sys运行在网卡驱动程序与TCP/IP之间对于所有节点来说它们共同组成了一台虚拟的服务器,这台虚拟服务器的IP地址叫做群集IP地址或者主IP地址。对于每个节点来说也有一个专有IP地址。节点与节点之间使用专有IP地址进行通讯。客户通过使用群集IP地址来访问这台虚拟服务器。当客户发出请求时,这个请求将被群集中的所有节点接受到,但只有一个节点对请求作出相应。NLB根据管理员对群集进行的设置决定使用那一台节点。重点:群集中所有节点必须都能够接受到客户提出的请求。所有节点都向外发出心跳信号,这个信号被群集中的所有节点接受。任何一台节点在5秒内发现另外一台节点没有发送心跳信号,NLB驱动程序则认为该节点已经Down掉,并用另外5秒钟的时间,将该服务器上的服务请求负载分担到其他节点上。对于NLB群集来说,可以在不会影响其他节点的正常工作的情况下添加和删除节点。目前,在物理层上NLB只支持以太网和千兆以太网,网络层上只支持TCP/IP协议栈,对所有的TCP和UDP应用程序Windows2000都能做到负载分担。特别需要强调的是不支持IPX,NETBIOS,NETBEUI的应用程序。可以使用下列4种模式来构架Windows2000NLB群集NLB:模式节点需要的网卡数量节点之间能否通讯是否要对路由器和交换机做修改单网卡单播模式1块网卡不行不需要双网卡单播模式2块网卡可以不需要单网卡多播模式1块网卡可以需要多网卡多播模式2块网卡可以需要当节点只有单个网卡的情况下,微软推荐使用单网卡多播模式。有多块网卡时,微软推荐使用多网卡单播模式。在本文中,我们将实现单网卡多播模式。2.2.4单网卡多播工作原理在多播模式下,NLB根据群集IP地址生成一个多播MAC地址,并将这个多播MAC地址添加到节点的每个网卡上。如图所示节点的网卡封装了两个IP地址,一个代表整个群集的群集IP地址又称为主IP地址,另外一个是代表节点本身的专用IP地址。对应的节点上的网卡封装了两个MAC地址,一个是NLB