一、项目背景

公司有5台服务器托管在ISP中心,其中3台DELL720,2台DELL910,托管费为7.8万元/年。每个服务器的负荷非常低,同时公司对软件的版权有强制要求,不允许使用盗版软件。VMware5.5版本时,每台物理主机只允许1颗CPU免费使用,新发布的VMware6.0取消了该限制,只要每台物理机上的逻辑CPU数不超过480颗,在其内部每台虚拟机的逻辑CPU不超过8颗,就可以免费申请使用。于是就有了将所有的服务器集中到1台上的想法。

二、前期准备

在迁移前,需要收集现阶段每台物理主机的负荷情况,主要是CPU、内存和硬盘使用情况,以便估算出将来这1台物理机所需要的最低配置。内存和硬盘可以直接从任务管理器中看到,所以此处重点介绍CPU的负荷计算方法。CPU的负荷计算方法为:

CPU最低配置=CPU主频率*个数*使用率

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第1张图片

以截图为例,当前CPU的主频为2.5G,所以迁移后CPU的最低要求为:2.5*8*8%=1.6G。

三、设计思路

考虑到服务器容错和网络的单点故障,设计出如下结构:

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第2张图片

紫色背景为安装VMware6.0的物理主机,将网卡1、2作为管理网卡,地址为10.0.0.7/24;网卡3、4作为生产网卡,设置一个虚拟交换机。前端2台Web服务器做NLB负载均衡和容错,后端3台服务器做SQL的镜像高可用(实际生产环境中没有共享存储,所以无法用Cluster实现SQL的高可用),NLB和SQL的镜像高可用可以在工作组环境下搭建,为了方便后期管理,所以还是在域环境下搭建。需要注意的是:ESXI的地址虽然为10.0.0.7/24与其他虚拟主机同是10.0.0.0/24网段,但是不在同一局域网,所以相互之间无法Ping通。生产网络的服务器地址为10.0.0.2/24--10.0.0.6/24,网关为防火墙的地址10.0.0.1/24,后面的截图是在实验环境中搭建的,未考虑防火墙因素,所以服务器的地址为10.0.0.1/24--10.0.0.5/24,网关为空,在此特别说明。

四、License费用

公司现有4套WindowsServer2008R2企业版和2套SQLServer2008R2的License授权。NLB群集与SQL见证服务器共需要3个WindowsServer的License,作为SQL服务器与镜像服务器由于正常情况下只有一台对外提供服务,所以只需要1套SQL的License授权,而见证服务器上可以使用SQLExpress的免费版本,所以客户还需要购买一套WindowsServer2008R2授权。

五、操作步骤

本章重点是介绍NLB和SQL高可用在虚拟环境下的应用,所以安装ESXI和搭建域环境就不再赘述。服务器08Server1--08Server5对应的IP地址为10.0.0.1/24--10.0.0.5/24,为避免防火墙的干扰,将所有服务器上的防火墙都已关闭。

1.安装NLB服务

1)在08Server1和08Server2服务器角色中找到并安装IIS服务。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第3张图片

2)在08Server1和08Server2上创建一个网站,将index.htm排在第1位。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第4张图片

3)分别到08Server1和08Serve2的网站根目录下创建一个index.htm文件夹,为了方便后面区分,将08Server1的内容编写成Welcome to contoso1.com,08Serve2的内容编写成Welcome to contoso2.com。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第5张图片

4)在08Server1功能中找到并安装网络负载平衡。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第6张图片

5)打开网络和负载平衡管理器。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第7张图片

6)新建一个NLB群集,此处需要注意:一定是将群集建好后,再添加成员服务器。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第8张图片

7)为NLB群集配置一个IP地址,该地址统一对外提供服务,将收到的请求链接按比例分给群集内的各个服务器。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第9张图片

8)设置NLB群集的FQDN名称,选择群及操作模式。注意:如果加入群集的服务器只有一块网卡,则一定要选择多播模式。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第10张图片

9)待状态变为为“已聚合”,则表示NLB群集创建成功。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第11张图片

10)再将08Server2添加到NLB集群中。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第12张图片

11)成功添加后,状态同样会变为“已聚合”。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第13张图片

12)在NLB群几内的服务器端口规则里可以设置负载均衡的比例。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第14张图片

13)找一个Win7计算机,设置IP地址为10.0.0.100/24,将host文件中的www.contoso.com指向为NLB群集对外提供服务的IP地址,并在浏览器中访问测试。此时我们可以看到它连接到了08Server2服务器上。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第15张图片

14)将08Server2服务器关机后再次连接,可以看到它已经重新定向到了08Server1服务器上。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第16张图片

15)再将08Server1服务器关机,它又重新连接到了08Server2服务器上。

虚拟化环境下对公司业务服务器实现NLB+SQL高可用(一)_第17张图片