一、项目背景
公司有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主频率*个数*使用率
以截图为例,当前CPU的主频为2.5G,所以迁移后CPU的最低要求为:2.5*8*8%=1.6G。
三、设计思路
考虑到服务器容错和网络的单点故障,设计出如下结构:
紫色背景为安装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,网关为空,在此特别说明。
四、成本追加预算
公司现有4套WindowsServer2008R2企业版和2套SQLServer2008R2,其中作为见证服务器上的SQLServer可以使用微软免费的Express版,所以需要再购买一套WindowsServer2008R2。
五、操作步骤
本章重点是介绍NLB和SQL高可用在虚拟环境下的应用,所以安装ESXI和搭建域环境就不再赘述。服务器08Server1--08Server5对应的IP地址为10.0.0.1/24--10.0.0.5/24。
1.安装NLB服务
1)在08Server1和08Server2服务器角色中找到并安装IIS服务。
2)在08Server1和08Server2上创建一个网站,将index.htm排在第1位。
3)分别到08Server1和08Serve2的网站根目录下创建一个index.htm文件夹,为了方便后面区分,将08Server1的内容编写成Welcome to contoso1.com,08Serve2的内容编写成Welcome to contoso2.com。
4)在08Server1功能中找到并安装网络负载平衡。
5)打开网络和负载平衡管理器。
6)新建一个NLB群集,此处需要注意:一定是将群集建好后,再添加成员服务器。
7)为NLB群集配置一个IP地址,该地址统一对外提供服务,将收到的请求链接按比例分给群集内的各个服务器。
8)设置NLB群集的FQDN名称,选择群及操作模式。注意:如果加入群集的服务器只有一块网卡,则一定要选择多播模式。
9)待状态变为为“已聚合”,则表示NLB群集创建成功。
10)再将08Server2添加到NLB集群中。
11)成功添加后,状态同样会变为“已聚合”。
12)在NLB群几内的服务器端口规则里可以设置负载均衡的比例。
13)找一个Win7计算机,设置IP地址为10.0.0.100/24,将host文件中的www.contoso.com指向为NLB群集对外提供服务的IP地址,并在浏览器中访问测试。此时我们可以看到它连接到了08Server2服务器上。
14)将08Server2服务器关机后再次连接,可以看到它已经重新定向到了08Server1服务器上。
15)再将08Server1服务器关机,它又重新连接到了08Server2服务器上。