利用 DFS 和 NLB 为网站提供负载均衡和可用性

时间:2022-01-04 14:49:30

前序

好久没有更新博客了。目前我在南京一家微软CPLS培训中心教授MCITP课程,至今已有半年多时间了。上个月本人也获得了微软认证讲师(MCT)认证,与此同时,我完成了高中三年的学业,并参加了2010年江苏高考。由于个人对课内书本知识不感兴趣,也很少专注于课本知识,致使本人高考落榜。但也不可否认高考是一种弊端较多的人才选拔*。我十分反对高考。虽说高考是现行教育*中较为公平的人才选拔*,但这“公平”的人才选拔*中也透露出许许多多不公平的因素。因为每个孩子是不一样的,而公平的人才选拔*是必须做到“具体问题具体分析”的。故我认为通过高考成绩的高低是永远无法决定一个孩子的能力。

好了,废话不说,看正文吧。

很多企业架设了Web服务器,对于中小企业来说,他们有的将Web服务器托管,有的则拿一台很普通的计算机放在公司,充当服务器。由于公司的规模有限,其使用的频率也较低。但在较大的企业中,虽然Web服务器并不像数据库、电子邮件服务器那么重要,但有时也必须保证他们的高可用性。相信大家很熟悉一句话:“前端 NLB 后端 Cluster ”。这句话说的很对,前端一般都是Web服务器,供用户访问,而后端则是真正存放数据库的服务器,在很多应用场景都是这样的。比如 Exchange,前端是OWA服务器,其作用是为用户提供邮箱访问,而后端则是存放用户邮箱数据的邮箱服务器。因此可知,真正的经理或是有实权的人在后端,而前端只能说是一个小秘书。划分前后端的目的可以减轻服务器的负载,此外最重要的是为了保证后端数据库服务器的安全,因为一般人是不会直接接触后端服务器的,而是去访问前端。

那么今天的话题就是谈谈如何通过网络负载均衡保证前端Web服务器的负载平衡和可用性。Web服务器一般放在前端,也就是充当那个秘书。在许多大环境中,由于事物较多,一个秘书往往是不够的,因此我们有时需要多个秘书。同样,在企业环境中我们可以通过架设多个Web服务器,并为其配置“网络负载均衡(NLB)”以减轻服务器负载并提供可用性。但是这多个秘书头脑中的东西必须一样,不然则会出现,你找张三秘书,他能帮你转达给经理处理这件事。而同样的事情你找李四秘书去做,他却给你回应个“我不知道”,那这可不是我们希望看到的。同样,我们的多台前端Web服务器上的数据也必须保证同步,因此这可以借助微软提供的“分布式文件系统(DFS)”实现。

在许多大环境中,一些硬件厂商已经提供了现成的负载均衡器。但这需要花费额外的成本,因此Windows Server 2008自带的NLB是一个免费的基于软件的负载平衡工具,不用白不用。类似我们常说的软RAID。

下面就把我的配置过程拿出来和大家分享

先介绍下虚拟机环境:

DC(域控制器、DNS服务器),IP:192.168.0.1

Member1(Web服务器、DFS),IP:192.168.0.2

Member2(Web服务器、DFS),IP:192.168.0.3

很明显,我将用Member1和Member2充当Web服务器。

首先,在Member1和Member2上安装IIS和DFS

并且我在两台服务器的C卷下都创建了一个叫做“Site”的文件夹,用于存放网站数据。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

利用 DFS 和 NLB 为网站提供负载均衡和可用性

安装时创建 DFS 命名空间

利用 DFS 和 NLB 为网站提供负载均衡和可用性

利用 DFS 和 NLB 为网站提供负载均衡和可用性

在创建命名空间时,第一台(Member1)通过向导立即创建,第二台(Member2)选择稍后创建。

选择DFS命名空间类型,有两种,基于域的和独立的。如果选择基于域的,则DFS相关数据保存在活动目录中,如果选择独立的,则 DFS的相关数据保存在本地注册表。在这里,我选择了基于域的。

待两台服务器的DFS安装完成后,打开Member2的DFS控制台。并找到刚才创建的命名空间,添加命名空间服务器,将自己加进去。这样一来,这个命名空间(//woodgrovebank.com/web)就会由两台服务器共同承担。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

命名空间服务器配置完毕后,下面需要创建文件夹,在这里的文件夹相当于一个指针,用于指向两台服务器中的文件夹目标。这样一来,用户仅需访问这个文件夹就会被自动定位到两台服务器上的其中一个文件夹目标。当然,在这个实验里,创建这个文件夹仅仅是走个形式,毕竟我们最主要的目的是为了同步两台Web服务器上这两个文件夹中数据,用户要访问的是网站,而不是DFS的文件夹。在创建文件夹的同时需要确定文件夹目标,在这里我们选择位于Member1和Member2上的Site文件夹作为目标。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

创建完成后,此时会弹出是否要创建复制组以同步文件夹目标。在这里我们需要创建,因为用DFS的目的就是为了同步两台Web服务器上的网站。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

创建的过程我就不一一截屏了,根据向导点就可以了,在复制组成员选项中要把两台服务器加进来。此外,“主要成员”是用于初始化复制使用的,换言之,复制第一次产生,如果发生冲突,则以主要成员说的算。

并且,在“要复制的文件夹”中将两台服务器的Site文件夹加进来。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

利用 DFS 和 NLB 为网站提供负载均衡和可用性

复制配置完成后,在Member1上的Site文件夹创建一个文件,在这里我创建的就是网站的主页index.htm,过一会儿,Member2也将同步。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

至此,DFS的配置就完成了。下面就来配置一下IIS。

在两台服务器上打开IIS ,并将默认网站的物理路径修改为“C:/Site”

利用 DFS 和 NLB 为网站提供负载均衡和可用性

配置完成后,访问一下网站看看是否正常。

两台服务器返回的结果都正常并成功打开了“index.htm”

利用 DFS 和 NLB 为网站提供负载均衡和可用性

下面配置网络负载平衡。“网络负载平衡”在Windows 2008中是作为一项功能需单独安装,因此我们在两台服务器上添加这项功能。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

在Member1上打开“网络负载平衡管理器”,并新建群集,连接主机输入Member1自己的地址:192.168.0.2。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

下一步

利用 DFS 和 NLB 为网站提供负载均衡和可用性

在此添加群集IP地址,此IP地址是为了让外部计算机访问这个Web网站使用的IP地址,而这个IP地址将由群集中的节点占有。

在此,我配置的是192.168.0.10

利用 DFS 和 NLB 为网站提供负载均衡和可用性

在这里输入群集的参数,完整的Internet名输入www.woodgrovebank.com

选择群集模式,在这里我选择单播。

在单播模式下,NLB会将群集中节点的MAC被改为相同的MAC地址。这将导致群集节点之间没法通信。

在多播模式下,不会修改群集节点的MAC地址,而是额外给一个组播MAC地址,在这种情况下节点之间依然能正常通信。

因此一般建议如果服务器是单网卡,则使用多播,如果是双网卡,则使用单播。因为在双网卡下选择单播模式,两台群集节点仍然可以通过另一块网卡进行通信。

关于这几种模式我只能在这里大概介绍一下,毕竟还是实验为主。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

端口规则在这里我保持默认

利用 DFS 和 NLB 为网站提供负载均衡和可用性

向导完成后,Member1已新建此群集,并将自己添加至群集。下面在Member2中连接现有群集,输入群集IP。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

并将Member2添加至群集,在此输入Member2的IP地址:192.168.0.3。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

向导完成后,两台节点都成功加入群集。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

至此,群集配置完成。下面在DNS上注册一条A记录,www.woodgrovebank.com,并指向群集IP:192.168.0.10。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

完成后,通过输入FQDN可以成功访问网站。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

此时我将群集中的Member1节点挂起,再次访问网站,发现依然可以正常访问。

利用 DFS 和 NLB 为网站提供负载均衡和可用性

至此,实验完成。

这是前几天学习网络课程的相关实验,把自己做的过程拿出来和大家分享。

由于自己的水平有限,如发现有不足或不正确之处也欢迎批评指正并与我交流。