先介绍一些概念
1. 什么是群集?
群集是指一组服务器,通过彼此的协同作业,提供一个相同的服务或应用程序,用于提升服务或应用程序的可用性(availability)、可靠性(reliability)和可扩展性(scalability)。当群集内的服务器down掉以后,服务请求会转给其它群集内的节点,以实现24小时不中断的服务
2. Windows server 中的群集类型
Windows server 支持三种类型的群集,分别是NLB、CLB和MSCS。NLB与MSCS内置于windows server中,CLB需要购买Application Center
1) NLB:提供以TCP/IP 为基础的服务与应用程序的网络流量负载均衡,用于提升系统的可用性和可扩展性。常见的应用有Terminal Service、Web、×××与FTP等。
2) CLB:提供使用COM+组件的中介层应用程序的动态负载均衡,用于提升系统的可用性和延展性。CLB会依据目前的工作负载来决定由谁来处理服务请求。
3) MSCS:提供后端服务与应用程序的容错移转(failover),主要是提升系统的可用性。常见的应用有SQL Server与Exchange Server等。MSCS是由client来决定由谁来处理服务请求,所有服务器共享一个share storage来储存session状态。当主动服务器挂了,则继续由被动服务器接手。被动服务器会从share storage取出session状态,继续未完成的工作,以达到容错移转的目的
3. NLB的工作原理:
1) 图示原理示意图和本实验拓扑图:
clip_p_w_picpath002
2) 节点PC1与节点PC2均有一个外部使用的静态IP地址,创建NLB群集时会产生一个虚拟的IP,该IP与节点的IP在同一个网段内,对外公布的 IP为虚拟的群集IP,而客户机所访问的实际上为节点PC1或者节点PC2。
4. WINDOWS2008下的NLB配置:
1) NLB配置的环境要求:
网卡:所有网卡必须与WINDOWS2008兼容,单网卡或多网卡均可配置该服务,推荐使用多网卡。
网络模式:工作组和域环境均可完成,在2008中最多可以支持32个节点。
交换机和路由器要求:交换机必须支持VLAN,有些交换机和路由器有可能需要手工设置多播MAC地址。
通讯协议:绑定到群集的网络适配器只能安装TCP/IP协议,必须静态分配,不支持DHCP。
应用程序的要求:必须是TCP或UDP通讯,而且确定当前应用程序或服务必须支持NLB。
2) 实验步骤:
搭建网络并测试网络连通性(按图示上的网络配置)
在两个节点上分别安装WEB服务并设置不同的html文档,方便检测实验效果:
注:在实际使用的时候,两个站点的配置必须要一样,而且站点文件也必须一致!
打开服务器管理器--角色--添加角色
clip_p_w_picpath004
clip_p_w_picpath006
clip_p_w_picpath008
安装完成,进入IIS管理控制台
clip_p_w_picpath010
双击服务器--default web site--浏览
clip_p_w_picpath012
会自动打开默认网站的网页文件存放路径,自己编辑一个index.htm,用于测试,PC1,PC2都要新建一个index.htm的文件
clip_p_w_picpath014
附上index.htm代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
</head>
<body>
<td>This is PC1</td>
</body>
</html>
安装网络负载平衡管理工具
clip_p_w_picpath016
clip_p_w_picpath018
输入NLBMGR打开NLB管理器—群集—新建—输入当前节点PC1的主机名,也可以输入此主机的外网IP或专用IP:
clip_p_w_picpath020
clip_p_w_picpath022
连接PC1
clip_p_w_picpath024
点击”连接”后选择用于配置群集的网络接口,一定要选外网IP而不能选专用IP。
添加群集虚拟IP,这个虚拟IP就是我们要访问的IP了
clip_p_w_picpath026
clip_p_w_picpath028
设置FQDN,选择群集操作模式(推荐使用双网卡单播模式)
单播:单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC(由02-bf和群集IP地址组成确保此MAC的唯一性)。由于所有绑定群集的网络适配器的MAC都相同,所以在单网卡的情况下,各节点之间是不能通讯的,这也是推荐双网卡配置的原因之一。为了避免交换机的数据洪水,应该结合VLAN使用。
多播:网络适配器在保留原有的MAC地址不变的同时,还分配了一个各节点共享的多播MAC地址。所以,即使单网卡的节点之间也可以正常通讯,但是大多数路由和交换机对其支持不是太好。
IGMP多播:IGMP多播(只有在选中多播时,才可以选择此项),在继承多播的优点之外,NLB每隔60秒发送一次IGMP信息,使多播数据包只能发送到这个正确的交换机端口,避免了交换机数据洪水的产生。
clip_p_w_picpath030
配置端口规则后确定并等待聚合完成:
clip_p_w_picpath032
clip_p_w_picpath034
群集IP地址:指定规则所针对的群集IP
端口范围:默认为所有,可以指定群集监听的端口范围(如从80到80,表示只针对web服务实现负载均衡)
协议:指定群集所服务的协议类型
筛选模式:
a:多个主机:
无相似性: 客户端的服务请求会平均分配到群集内的每一部服务器。假设NLB群集内有2部服务器。当接到客户端的请求时,NLB会将第1个请求交由第1部服务器来处理,第2个请求交由第2部服务器来处理,第3个请求交由第1部服务器来处理,…依此类推。因为所有客户端联机会平均分配到每一部服务器,因此可以达到最佳的负载平衡。如果需要执行交易处理,为了能够共享session状态,则必须将session状态集中储存在state或database server中,这种方式适用于大部分的应用程序。
单一相似性:客户机的服务请求会固定分配到群集内的某一部服务器。当接到客户机的请求时,NLB会根据客户机 的IP来决定交由哪一部服务器来处理,也就是一部服务器只会处理来自某些IP的请求。因为一个IP的服务请求只会固定由一个服务器来处理,因此没有session状态共享的问题,但可能会导致负载不平衡。这种方式适用于联机需支持 SSL 集多重联机的通讯协议 ( 例如FTP与PPTP等)
网络(类C):根据IP的Class C屏蔽来决定交由哪一部服务器来处理,也就是一部服务器只会处理来自某些网段C的请求。这种方式可确保使用多重 Proxy 的客户端能导向到相同的服务器。
b.单一主机:若选择此选项,该端口范围内的所有请求都将由一台主机来进行处理,此选项将配合后面的主机优先级来进行主机判定。
c. 禁用此端口范围:一般这个选项会在端口例外中进行设置,也就是说,当我们指定了一个比较大的范围端口时,其中有一个或几个端口我们不需要 客户端用户访问到,这时我们将利用这个规则来进行设定,防止用户访问此端口请求。
聚合完成后在第二个节点上连接到已经创建好的群集
每一个节点都必须安装NLB服务。
到PC2上打开网络负载平衡管理器
clip_p_w_picpath036
clip_p_w_picpath038
clip_p_w_picpath040
将第二个节点加入到现存群集
clip_p_w_picpath042
clip_p_w_picpath044
clip_p_w_picpath046
clip_p_w_picpath048
clip_p_w_picpath050
聚合完成后通过群集虚拟ip可访问WEB站点
clip_p_w_picpath052
断开节点PC1的网络连接后,自动切换到节点PC2
clip_p_w_picpath054
clip_p_w_picpath056
clip_p_w_picpath058
实验过程中如果发现网络不通可能是没开启发现和共享
clip_p_w_picpath060