一、前期准备

1)实验环境:

VMware Workstation 10

2)搭建SQL群集必须具有:

活动目录、DNS服务器、两台节点服务器、CDP储存服务器。

3)IP地址的规划:

主机LAN规划

主机名

IP地址

角色

网络

备注

qqdc1.qq.local

172.16.1.32

域控制器、DNS

桥接


qqnode1.qq.local

172.16.1.33

群集节点1

桥接


qqnode2.qq.local

172.16.1.34

群集节点2

桥接


qqcluster1.qq.local

172.16.1.35

Cluster



qqdtc1.qq.local

172.16.1.36

MSTDC



qqdb1.qq.local

172.16.1.37

SQL Server



 存储SAN规划

主机名

IP地址

角色

网络

备注

qqcdp1.qq.lcal

192.168.188.10

共享存储

NAT


qqnode1.qq.local

192.168.188.32

群集节点1

NAT


qqnode2.qq.local

192.168.188.33

群集节点1

NAT


 心跳HeartBeat规划

主机名

IP地址

角色

网络

备注

qqnode1.qq.local

192.168.181.32

群集节点1

Host  Only


qqnode2.qq.local

192.168.181.33

群集节点1

Host  Only


二、实施操作

1)CDP储存配置

这里需要首先将CDP虚拟机的网卡设置为NET模式,在真实机使用IPStor Console连接,在console上修改自己需要的IP地址(这里建议自己修改IP的时候是在console上进行修改,不要直接在系统内修改)。然后添加一块磁盘,这里我添加了一块100G的磁盘,然后重启系统在console上进行虚拟化磁盘。

SQL群集实验(一)_活动目录

右键点击新添加磁盘的属性,然后设置为虚拟磁盘,如下图

SQL群集实验(一)_活动目录_02

成功后会在磁盘的图标上有一个小“v”形的标志

SQL群集实验(一)_IP地址_03

然后将磁盘添加到默认存储池

SQL群集实验(一)_服务器_04

SQL群集实验(一)_服务器_05

SQL群集实验(一)_IP地址_06

最后创建三个SAN资源

SQL群集实验(一)_IP地址_07

SQL群集实验(一)_IP地址_08

下边选择有意义的SAN Resource Name,以方便以后的管理

SQL群集实验(一)_IP地址_09

分配完以后先不进行SAN资源的分配操作

SQL群集实验(一)_活动目录_10

然后重复以上的步骤,再创建SANDisk-MSDTC、SANDisk-DATA两个SAN资源。

最终解过如下图所示

SQL群集实验(一)_IP地址_11

2)构建活动目录和DNS服务器

我是用的是Windows server 2003搭建活动目录,安装完系统之后将网络模式修改为桥接模式,然后修改主机名和IP 地址

SQL群集实验(一)_IP地址_12

运行dcpromo进入域控制器安装向导并根据提示来安装域控制器

SQL群集实验(一)_IP地址_13

SQL群集实验(一)_活动目录_14

在域中创建两个域账户,在后续操作中,指定这些账户来启动群集及数据库服务。并且

在用户属性的账户选项卡中,选中密码为永不过期及用户不能修改密码两个检查框。

在命令提示符利用命令

net user clusteradmin qwe~123 /add

net user sqladmin qwe~123 /add

设置属性

SQL群集实验(一)_IP地址_15

最后通过ntbackup.exe来备份系统状态,域控制器的系统状态包括活动目录数据库等信息。

3)构建群集节点

先安装操作系统,这里我用的是两台Windows server 2008 R2,进入系统后修改主机名和IP。结果如下图

SQL群集实验(一)_服务器_16

然后打开“计算机”-“属性”-“计算机名”-“更改”来加入域

SQL群集实验(一)_活动目录_17

加入域成功后需要重启系统,然后以域名形式登录

SQL群集实验(一)_IP地址_18

登录成功后将clusteradmin、sqladmin两个用户加入本地管理员组中

SQL群集实验(一)_服务器_19

与以上操作相同,将节点2也加入域并添加clusteradmin、sqladmin两个用户到本地管理员组中

4)配置群集服务器网络

主机名

LAN

SAN

HEARTBEAT

 qqnode1.tom.local

  172.16.1.32

  192.168.188.32

  192.168.181.32

 qqnode2.tom.local

  172.16.1.33

  192.168.188.33

  192.168.181.33

 在两个节点上分别添加两块网卡,设置为NET和host only模式。然后修改网络连接的名称为LAN、HEARTBEAT、SAN,要注意名称全部为大写且两个节点要一致。

SQL群集实验(一)_服务器_20


然后在每个节点上把SAN和HEARTBEAT修改网络属性中的绑定项目,改为仅绑定IPv4

SQL群集实验(一)_IP地址_21


再在网络连接窗口中“高级”选项中选择“高级设置”,修改连接次序为LAN、HEARTBEAT、SAN

SQL群集实验(一)_服务器_22SQL群集实验(一)_服务器_23

最后检查以下节点之间的连通性,在每个节点上ping对方的相应的IP

5)群集节点储存配置

储存规划

Name

Allocation Type

Sectors

Total Size

用途

盘符

SANDisk-quorum

Virtual Device

4,194,304

2,048

仲裁

X:

SANDisk-MSDTC

Virtual Device

6,291,456

3,072

MSDTC

Y:

SANDisk-DATA

Virtual Device

41,943,040

20,480

数据存储

Z:

Total: 3



25,600



一定要按以下次序来配置存储

步骤

节点1

节点2

状态

1

启动

关闭

分配LUN,格式化,设置盘符,创建测试文件,然后重新启动

2

启动

关闭

查看盘符分配,读写测试文件,然后关闭

3

关闭

启动

分配LUN,设置盘符,读写测试文件,然后重新启动

4

关闭

启动

查看盘符分配,读写测试文件,然后关闭

5

启动

启动

节点1启动完毕后,再启动节点2,安装群集

要坚持的基本原则是,在群集软件没有配置好的情况下,两个节点不要同时对磁盘柜上的共享LUN进行写操作。

先来配置节点1,关闭节点2。先保证节点1与CDP存储之间的连通性,再在节点1启动iSCSI发起程序,它会提示启动CDP存储,点击是,然后查看发起程序的名称

SQL群集实验(一)_IP地址_24

打开目标,输入CDP存储的IP地址,点击快速链接,新打开的快速连接窗口只需要点击完成就好了

SQL群集实验(一)_服务器_25

这样,节点1就向CDP存储发出了一个iSCSI请求

打开CDP控制台,在控制台上创建SAN资源

SQL群集实验(一)_服务器_26SQL群集实验(一)_活动目录_27SQL群集实验(一)_服务器_28

SQL群集实验(一)_服务器_29

SQL群集实验(一)_服务器_30

接下来默认选项即可,直到结束效果如图

SQL群集实验(一)_服务器_31

然后向节点1分配SAN资源

SQL群集实验(一)_IP地址_32

SQL群集实验(一)_IP地址_33

完成后在节点1打开iSCSI发起程序,点击刷新目标

SQL群集实验(一)_活动目录_34

SQL群集实验(一)_活动目录_35

SQL群集实验(一)_活动目录_36

连接以后打开磁盘管理可以看到连接到CDP存储的磁盘,然后联机并设置简单卷,将盘符设置为X:

SQL群集实验(一)_服务器_37

SQL群集实验(一)_IP地址_38

重复以上操作,创建MSDTC及数据分区,其盘符分别为Y和Z,指定有意义的卷标:MSDTC、DATA

SQL群集实验(一)_IP地址_39在计算机中查看

SQL群集实验(一)_服务器_40然后在磁盘中写一些小文件,重启系统查看盘符和小文件是否正确。完成后关闭节点1,启动节点2,按照以上的步骤使节点2连接存储。节点2上识别的LUN资源的次序要与节点1完全一致;节点2不需要格式化三个磁盘。仅需要更换盘符。要保证两个节点的盘符完整一致

SQL群集实验(一)_IP地址_41在节点2上对三个测试文件进行读写操作。

重新启动节点2,检查盘符是否正确。