社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 501阅读
  • 1回复

[分享]Windows Server 2008 R2 负载平衡安装配置入门篇

楼层直达
z3960 
级别: FLY版主
发帖
786860
飞翔币
211602
威望
215717
飞扬币
2618870
信誉值
8


 一、简单介绍负载均衡
  负载均衡也称负载共享,它是指负载均衡是指通过对系统负载情况进行动态调整,把负荷分摊到多个操作节点上执行,以减少系统中因各个节点负载不均衡所造成的影响,从而提高系统的工作效率。
  在常用的大型服务器系统当中都存在着负载均衡组件,常用的像微软的网络负载平衡NLB、甲骨文的Oracle RAC、思科的负载均衡(SLB),Apach+Tomcat 负载均衡,它们能从硬件或软件不同方面实现系统各节点的负载平衡,有效地提高大型服务器系统的运行效率,从而提升系统的吞吐量。本篇文章以微软的网络负载平衡NAT为例子,简单介绍Windows Server 2008 R2 负载平衡的安装与使用方式。
  在Windows Server 2008 R2当中,存在着 “网络负载平衡” 功能 (简称 NLB, Network Load Balancing),它以TCP/IP 为基础的服务,可以将一个已注册的IP地址映射到多个内部域的IP地址当中,让多台主机为同时对网络请求作出反应。使用NLB网络负载均衡最多可以连接到32台主机上,让32台主机共同分担大量的服务压力。在Windows Server 2008 R2 中还具备 “故障转移群集” 功能,它是利用负载共享的方式,把多台服务器的共用信息进行持久化储存,当其中某台服务器出现问题时,请求会自动分摊到其他服务器当中。使用 “故障转移群集” 功能,更能保证 “网络负载平衡集群”的正常运行,有利于统筹管理分布式系统中的各种资源,利用共享信息及其服务机制扩大系统的处理能力。“故障转移群集” 功能将在下一篇文章再作详细介绍。

  二、NLB 主要功能
  支持群集功能,一个群集最多支持32台服务器。支持网络地址转换(NAT)功能,能把请求自动转发到 NLB 群集上对各台服务器。实现管道化式管理,允许向 NLB 群集同时发送多个请求。支持多地址多端口管理,每台服务器可以绑定多个虚拟 IP,每个虚拟 IP 可建立多个开放式端口。支持故障快速恢复功能,当服务器出现故障重启后将自动恢复群集联机。支持单播、多播、IGMP多播多种群集操作模式。支持事件日志管理,可以快速查阅群集事件记录。
  NLB安装

  三、NLB 使用方式
  3.1. 打开 “服务管理器”,添加 “网络负载平衡” 功能。

  3.2. 安装完成后,打开“网络负载平衡管理器”

  3.3.新建群集,连接到作为群集服务器当中的一台主机

  3.4.为此主机绑定优先级数,和专用的IP地址,一台主机可以绑定多个IP地址

  3.5.建立群集IP地址以进行负载平衡,若存在多个IP地址系统将会以第一个IP作为此群集的IP对信息进行检测。

  3.6.设定群集参数,此处可设定群集完整的Internet名称,确定其操作模式。此处需要稍作解释:
  3.6.1 单播模式
  指把各主机节点重时指向同一个虚拟MAC地址,在此情况下各节点之间不能实现通讯。
  3.6.2 多播模式
  指各主机节点都保留原有的MAC地址,此外再外加专用于NLB的通讯MAC地址,使各节点之间能正常实现通讯。但并非所有的路由器或交换机都支持多播模式,使用时需要谨慎处理。
  3.6.3 IGMP多播模式
  建立在多播模式功能之上,在默认情况下每隔60秒发送一次IGMP信息。它可以确保发送给网络负载平衡群集的通讯只通过服务于群集主机的端口,而不是所有交换机端口。

  注意: 由于并非所有路由器或交换机都支持多播模式,所以在不确定的情况下最好使用双网卡单播模式,并且预先设置好ARP,否则可能造成跨网段无法访问群集ip的错误。
  3.7 绑定群集开放的端口,此处可为主机设置一定范围内的开放端口。置于TCP、UDP协议就不多作解释,一般设置只使用TCP协议使数据传输更具备可靠性和安全性。此处对筛先模式稍作解释:
  3.7.1 多主机
  该参数指定了群集中多个主机处理与端口规则相关的网络通讯。通过在多个主机之间分布网络负载,该筛选模式提供了可缩放性能以及容错。可以指定在主机之间均衡分布负载,或每个主机处理指定的负荷量。在多主机相似性选项中,存在3种选择:
  1、“无”选项:指定来自同一客户端 IP 地址的多条连接可由不同的主机(无客户端的相似性)进行处理。第一次请求可能指向主机A,第二次请求可能指向主机B,为了实现在多台主机之间共享session,系统应该预先把session作出持久化处理。若使用ASP.NET进行开发时,可通过命令:
  aspnet_regsql.exe -S 〈SQL Server IP> -U 〈User Name> -P 〈Password> -E -ssadd -sstype c -d 〈Database Name>
  建立用于Session持久化保存的数据库
  2、“单一”选项:指定网络负载平衡应该将来自同一客户端 IP 地址的多个请求导向同一台群集主机。这是相似性的默认设置。
  3、“网络”选项:指相似性指定网络负载平衡将来自同一个 TCP/IP C 类地址范围的多个请求定向到同一台群集主机。比如在客户端使用了多台代理服务器对群集进行访问时,请求看起来像源自不同的计算机。启用“网络”相似性选项,可以正确处理同一客户端多个代理服务器的session会话数据。
  3.7.2 单一主机
  该参数指定群集中的单个主机根据指定的处理优先级来处理相关端口规则的网络通讯。该筛选模式为处理网络通讯提供了端口专用的容错性能。
  3.7.3 禁用该端口范围
  该参数指定阻止相关端口规则的所有网络通讯。在这种情况下,网络负载平衡驱动程序将筛选所有相应的网络数据包或数据报。该筛选模式可让您阻止传送到特定范围的端口的网络通讯。

  3.8 在完成群集配置后,在群集上按右键,选择 “添加主机到群集”,重复 3.3 、3.4安装步骤,可连接多台群集主机。

  四、网络负载平衡群集系统测试
  建立一个ASP.NET项目,加入以下 Default.aspx 页面,然后建立一个群集,绑定IP为192.168.1.110,在编辑 “端口规则” 时,选择 “多主机无相关性” 筛选模式。最后分别在群集加入Virtual-PC-A1、Virtual-PC-A2两台主机。使用第三方客户端进行访问时,多次点击 NewPage 连接时,可检测到系统会把请求连接到不同的主机之上。
  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
  String hostName = System.Net.Dns.GetHostName();
  Response.Write(hostName+"<br/>");
  IPAddress[] addressList = System.Net.Dns.GetHostAddresses(hostName);
  foreach(IPAddress address in addressList)
  Response.Write(address.ToString()+"<br/>");
}
</script>
</head>
<body>
<form id="form1" runat="server" >
<div align="left">
<a href="http://192.168.1.110/Default.aspx" target="_blank">New Page</a>
</div>
</form>
</body>
</html>

  测试结果

  五、NLB 安装注意事项
  5.1.如果需要使用“域”服务,一般在安装 “网络负载平衡” 管理器前,先添加“Active Directory 域服务” 角色,并进行林、域配置。

  若服务器需要使用IIS或者ASP.NET,那么在安装 NLB 前建议先添加Web服务器(IIS)服务器角色和 .NET Framework 3.5 功能

  5.2.要建立 “网络负载平衡群集” ,需要先在 “高级共享设置” 中打开 “启用网络发现” 功能。

  若无法打开 “启用网络发现” 功能,可先在服务管理器中打开以下3项服务:
  Function Discovery Resource PublicationSSDP Discovery UPnP Device Host

  5.3. 若使用VMware、Hyper-V等虚拟化工具,在网络中实现信息共享时无法查找到其他虚拟主机,可尝试检查虚拟机设置时“网络适配器”是否使用同一种“网络连接方式”,并且已打开“网络共享服务”功能。

  5.4.在“网络负载平衡管理器”中建立群集,群集连接主机时显示“RPC连接服务器不可用”等错误信息,可尝试检查主机有否打开“Remote Procedure Call(RPC)”和“Remote Procedure Call(RPC)Locator” 服务,并查检“Remote Procedure Call(RPC)的属性——依存关系——依赖服务” 的“状态”是否已经全部设置为 “已经启动” 或 “启动类型” 设置为 “自动”。

  5.5. 若使用虚拟化工具克隆主机,在群集连接主机时显示 “指定主机没有可用于安装新的群集的任何接口”,这可能是在克隆主机时多台主机使用同一个MAC造成的,此时可以尝试卸载网络适配器的驱动程序,然后再进行驱动软件更新

  5.6.若在群集连接主机时显示出现错误提示 “在主机 ‘MyPC上的NLB管理器' 不能继续,因为没有安装Microsoft群集服务” 。可以检查服务器上是否已经成功安装 “网络负载平衡” 服务,然后打开 “本地连接-属性”,选择“网络负载平衡(NLB)”。

  结束语
  为满足大型企业内部需求,实现企业服务器的高性能、高可用度、高可靠度,各大软、硬件提供商都构建起一系列的解决方案,而微软的网络负载平衡(NLB)只是其中一种。但鉴于本人知识度有限,且并非网络服务管理类专家,所以本文只牵涉到NLB入门安装方面的知识。
  更多资料可参阅 TechNet Library http://technet.microsoft.com/zh-cn/library/cc778263.aspx
  文中存在的错误与漏洞敬请各位点评。
 
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
z3960 
级别: FLY版主
发帖
786860
飞翔币
211602
威望
215717
飞扬币
2618870
信誉值
8

只看该作者 1 发表于: 2016-10-26
Win2008 R2下配制负载均衡方法

 两台web 服务器,操作系统是Windows Server 2008 R2,申请三个IP地址及要做负载平衡的域名(www.test.cn),其中一个IP地址为虚拟IP地址,另外两个分别配置在两台服务器上,例:
  虚拟IP: 11.1.6.13 两台的地址分别为11.1.6.11, 11.1.6.12两台服务须安装的内容如下:
  服务器(11.1.6.11): 1. 安装负载均衡服务 2. 在此服务器上配制负载均衡操作(以下以此台服务器为例)
  服务器(11.1.6.12):1. 安装负载均衡服务
  负载平衡种类: 1。同一台机子打开不同页面时连接的服务器都不同(存在Session共享问题) 2. 一台机子连接服务器后就不会转到另一台服务器(无Session共享问题) 以下以第二种方式为例
  安装服务
  分别在服务器(11.1.6.11, 11.1.6.12) 上安装此服务,以其中一台服务器为例在开始=>服务器管理器如下图

  点击右边的添加功能进入找到“远程服务器管理工具”—>“网络负载平衡工具”勾选筛选框点击安装, 以下图为安装成功后的图

  新建群集s
  在完成以上的服务安装后, 在开始->网络负载平衡管理器(以11.1.6.11服务器为例)

  打开管理器后选中“网络负载平衡群集”项点击鼠标右键选择“新建群集” 弹出“新群群”页面如下图所示

  如上图双击上图的“本地连接” 弹出另一界面时按默认选项点击“下一步”进入“新群集”页面如下图

  输入群集的IP地址及子网掩码后点击“确定”后返回群集IP地址页面点击“下一步”后进入“群集参数”页面如下图

  输入“完整Internet名称”框中的域名(www.test.cn)选择“单播”模式后点击“下一步”进入“端口规则”设置页面如下图

  选中现有的端口规则行点击“编辑”弹出端口规则编辑页面后按如下设置参数

  之后一直点击"完成"后就装完一台了如图:

  有此添加另的台的集群如下图:

  在添加第二台时在主机输入框里有输入IP(11.1.6.12)时点击连接时有时会失败所以
  此时在“主机”框中输入另一台服务器(10.0.6.14)的“机器名称”点击“连接” 接下来重复(11.1.6.11)的过程
  在二台机子都添加完成后 如图所示

  可以在两台分别服务部署测试网面分别在两台不同的电脑上打开(www.test.cn)就可以看到连接不同的服务器
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。