一、简单介绍负载均衡

负载均衡也称负载共享,它是指负载均衡是指通过对系统负载情况进行动态调整,把负荷分摊到多个操作节点上执行,以减少系统中因各个节点负载不均衡所造成的影响,从而提高系统的工作效率。
在常用的大型服务器系统当中都存在着负载均衡组件,常用的像微软的网络负载平衡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 主要功能

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

 

三、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种选择:

  • “无”选项:指定来自同一客户端 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持久化保存的数据库
  • “单一”选项:指定网络负载平衡应该将来自同一客户端 IP 地址的多个请求导向同一台群集主机。这是相似性的默认设置。
  • “网络”选项指相似性指定网络负载平衡将来自同一个 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 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head runat="server">
3 <title></title>
4 <script type="text/C#" runat="server">
5 protected void Page_Load(object sender, EventArgs e)
6 {
7 String hostName = System.Net.Dns.GetHostName();
8 Response.Write(hostName+"<br/>");
9 IPAddress[] addressList = System.Net.Dns.GetHostAddresses(hostName);
10 foreach(IPAddress address in addressList)
11 Response.Write(address.ToString()+"<br/>");
12 }
13 </script>
14 </head>
15 <body>
16 <form id="form1" runat="server" >
17 <div align="left">
18 <a href="http://192.168.1.110/Default.aspx" target="_blank">New Page</a>
19 </div>
20 </form>
21 </body>
22 </html>

测试结果

五、NLB 安装注意事项

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

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

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

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

  • Function Discovery Resource Publication
  • SSDP 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)”。

Windows Server 2008 R2 负载平衡入门篇的更多相关文章

  1. windows server 2008 r2 负载平衡 找不到主机 解决方案

    在C:\Windows\System32\drivers\etc文件夹中的host文件里手工将主机名WIN-********解析至IP 即可.

  2. 在系统启动时,Windows Vista 中、 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TIME_WAIT 状态的所有 TCP/IP 端口

    在系统启动时,Windows Vista 中. 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TI ...

  3. Windows Server 2008 R2常规安全设置及基本安全策略

    这篇文章主要介绍了Windows Web Server 2008 R2服务器简单安全设置,需要的朋友可以参考下 用的腾讯云最早选购的时候悲催的只有Windows Server 2008 R2的系统,原 ...

  4. Windows Server 2008 R2 IIS7.5 部署 MVC HTTP 404.0 Not Found 错误

    如图 在Windows Server 2008 R2 IIS7.5 部署 MVC HTTP 404.0 Not Found 错误,在Win7环境下测试正常,在百度中查找相关解决方法,如修改配置文件等, ...

  5. Windows Server 2008 R2 WEB服务器配置系列文章索引

    最近这段时间趁天翼云1元主机活动,购买了一个1元主机,主要是为了写一些服务器配置的教程. 已经完成如下几篇文章,送给大家. 国内云主机比较 天翼云/阿里云/腾讯云 Windows Server 200 ...

  6. 烂泥:KVM安装Windows Server 2008 R2使用virtio硬盘

    本文首发于烂泥行天下. 在上一篇文章中,我们介绍了使用IDE硬盘来安装Windows Server 2008 R2,这篇文章我们来介绍使用virtio硬盘来安装Windows Server 2008 ...

  7. SQLite 在Windows Server 2008 R2 部署问题FAQ汇总[轉]

    轉自:http://www.steveluo.name/sqlite-windows-server-2008-r2-deploy-faq/ 今天花了一天的时间研究了一下SQLite,以取代一些轻量级项 ...

  8. Windows Server 2008 R2 服务器系统安装及配置全过程图文详解

    前言 本文主要介绍了 windows Server 2008 R2 服务器系统的安装及相关配置. 介绍的是以优盘的方式安装. 写这篇博文的目的一来是为了供有需要的网友参考, 二来自己也在此做个记载. ...

  9. 在Windows Server 2008 R2 Server中,上传视频遇到的问题(二)

    上一篇  在Windows Server 2008 R2 Server中,上传视频遇到的问题(一)中遇到上传40M视频报404,然后修改配置文件节点: <httpRuntime targetFr ...

随机推荐

  1. 手把手教你用python打造网易公开课视频下载软件1-总述

    写作前面的话:最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html,在线看 ...

  2. boost常用记录

    1.BOOST_FOREACH 经常会遍历容器,写for/while循环到手痛,使用BOOST_FOREACH可以减少我们的工作.支持容器vector/list/set/deque/stack/que ...

  3. web系统架构设计中需要知道的点(前端篇)

    上周没写东西,这周写点互联网系统开发中需要了解的技术点,每个点都可以发散出去,连接更多的知识点,打算做个逐步细化的记录. 一个应用的整个生命周期中(生,老,病,死)都需要有一个整体规划. 前期 评估需 ...

  4. 2015 年最受 Linux 爱好者欢迎的软硬件大盘点

    Linux 爱好者都喜欢用哪些硬件,哪些发行版呢?近日 OpenBenchmarking.org 做了一个 2015 年度数据的统计和梳理,Linux Story 特意整理了一下,分享给大家. 转载于 ...

  5. Redis学习笔记~Redis并发锁机制

    回到目录 redis客户端驱动有很多,如ServiceStack.Redis,StackExchange.Redis等等,下面我使用ServiceStack.Redis为例,介绍一下在redis驱动中 ...

  6. js里cookie操作

    原生js操作cookie 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次 ...

  7. lua的io操作文档

    2014-09-16~15:26:35 I/O库提供两种不同的方式进行文件处理1.io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 io表同样提供三种预 ...

  8. fir.im Weekly - 聊聊让人向往的远程开发工作

    6月30 日,苹果开发者后台贴出一封关于广电总局的醒目通知,申报一个游戏 APP 上架AppStore,你需要文网文+ICP证+软著+版号,审批难度将越来越大,不禁让人感慨中国独立开发者的成长 &qu ...

  9. js获取当前时间显示在页面上

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. DOM一致性检测

    [implementation] 由于DOM分为多个级别,也包含多个部分,因此检测浏览器实现了DOM的哪些部分就十分必要.document.implementation属性就是这些提供相应信息和功能的 ...