本实验基于vSphere 5.1环境架构,创建两台Server 2008 R2的虚拟机来完成虚拟机之间SQL Server 2008 R2群集的搭建。

RDM介绍:

虚拟兼容模式RDM和物理兼容模式RDM。尤其是物理兼容模式RDM有一些相当重要的局限:

l不能使用VMware快照

l不支持VCB,因为VCB需要VMware快照

l使用物理模式RDM不能克隆虚拟机

l在模板里使用物理模式RDM不能转换虚拟机

l如果迁移包括复制磁盘,使用物理模式RDM不能迁移虚拟机

l物理模式RDM不能使用vMotion功能

l虚拟模式RDM容量限制在512B~2TB之间,物理模式RDM容量可超过2TB。(vSphere 5.5虚拟模式RDM容量在64TB以内)

l两个不同物理机(ESXi 主机)上的两个虚拟机运行群集软件。

l虚拟机共享专用网络连接(用于专用检测信号)和公用网络连接

l每个虚拟机均连接到共享存储器,此存储器必须位于 SAN 上。

一、环境准备和拓扑介绍

环境准备:

1、首先,在vSphere架构环境中创建两台Windows Server 2008 R2的虚拟机,并为每台虚拟机配置两张虚拟网卡;

2、在光纤存储或其他iSCSI存储上,为创建MSCS分配3个LUN,大小分别为1G(quorum disk),10G(DTC),50G(用于数据存放,这个卷的大小可根据自己业务数据量大小分配);

拓扑图:

群晖可以运行sqlite吗 群晖可以装sql server_Server

架构版本:VMware vSphere 5.1

操作系统版本:Windows Server 2008 R2

mscsdb01为ESXi中的VM,配置两张虚拟网卡,一张连接公用网络,一张用于群集心跳网络,使用裸磁盘映射(RDM)连接存储;

mscsdb02为ESXi中的VM,配置两张虚拟网卡,一张连接公用网络,一张用于群集心跳网络,使用裸磁盘映射(RDM)连接存储;

AD为域控制器,一块网卡连接公用网络。

10.1.1.0/24网络为公用网络,用于业务访问。

192.168.10.0/24网络为私有网络(建议为此网络专门划分单独的vlan),用于群集服务器间心跳检测。

mscsdb01网络配置:

心跳网络只与内部网络进行心跳检测,故此可不配置网关。

群晖可以运行sqlite吗 群晖可以装sql server_运维_02

mscsdb02网络配置:

群晖可以运行sqlite吗 群晖可以装sql server_运维_03

二、配置RDM

2.1mscsdb01添加裸磁盘映射

将mscsdb01关机,然后右键mscsdb01虚拟机>编辑设置

群晖可以运行sqlite吗 群晖可以装sql server_数据库_04

然后点击“添加”按钮,选择“磁盘”然后点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_05

选择“裸机映射”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_06

选择分配用于quorum disk 1G的LUN,点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_Server_07

按照默认选择,“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_08

选择“物理”,然后“下一步”。虚拟兼容模式(非直通)RDM 不支持 Windows Server 2008 的故障切换群集。

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_09

将虚拟设备节点改为“SCSI(1:0)”然后“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_Server_10

然后点击完成,完成第一个裸磁盘映射的添加。

群晖可以运行sqlite吗 群晖可以装sql server_Server_11

要实现不同主机间的群集,首先需要先将虚拟机的SCSI控制器选择为“物理”的。

添加完成后,右键mscsdb01虚拟机>编辑设置,将新增的SCSI控制器1类型改为“物理”

群晖可以运行sqlite吗 群晖可以装sql server_Server_12

用以上同样的方式,将10G用于DTC和50G用于数据存放的两个卷也添加到mscsdb01虚拟机中,注意在添加10G和50G卷的时候,在选择SCSI控制器时,选择SCSI(1:1)和SCSI(1:2)。

群晖可以运行sqlite吗 群晖可以装sql server_运维_13

完成添加后,将所以磁盘联机,然后添加盘符。

群晖可以运行sqlite吗 群晖可以装sql server_数据库_14


2.2mscsdb02添加裸磁盘映射

同样的首先将mscsdb02关机,然后点击右键>编辑设置

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_15

点击“添加”>“硬盘”>“下一步”


群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_16

选择“使用现有虚拟磁盘”>“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_17

磁盘文件路径选择mscsdb01所在的文件路径,将mscsdb01添加的裸磁盘映射的硬盘添加进来。

群晖可以运行sqlite吗 群晖可以装sql server_运维_18

然后点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_19

虚拟设备节点选择“SCSI(1:0)”,然后“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_20

点击完成

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_21

同样的将mscsdb02上的SCSI控制器1类型改为物理

群晖可以运行sqlite吗 群晖可以装sql server_Server_22

然后按照上面的方式将mscsdb01映射的另外两块磁盘添加到mscsdb02中。

注意在添加10G和50G卷的时候,在选择SCSI控制器时,选择SCSI(1:1)和SCSI(1:2)。

群晖可以运行sqlite吗 群晖可以装sql server_Server_23

完成添加后,打开mscsdb02虚拟机电源,将添加的磁盘联机。

联机后,磁盘会自动添加盘符,无需更改。

群晖可以运行sqlite吗 群晖可以装sql server_运维_24

三、搭建MSCS集群

在mscsdb01虚拟机中,点击“服务器管理”>“功能”>“添加功能”>“故障转移群集”>“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_数据库_25

然后点击“安装”,等待安装完成

群晖可以运行sqlite吗 群晖可以装sql server_数据库_26

安装完成后,点击“关闭”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_27

完成mscsdb01故障转移群集安装后,然后再到mscsdb02中完成故障转移群集安装。(安装步骤同上)

在mscsdb01中,进入“故障转移群集管理器”中,点击“验证配置”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_28

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_29

将mscsdb01和mscsdb02两个群集节点都添加进来,然后“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_30

选择“运行所有测试(推荐)”,然后“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_31

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_32

等待验证完成,在这个验证的过程中可能会出现各类问题,请根据测试报告进行更改,否则无法进行下一步。

群晖可以运行sqlite吗 群晖可以装sql server_数据库_33

显示测试成功,适合群集,点击完成。

群晖可以运行sqlite吗 群晖可以装sql server_运维_34

然后点击创建群集,点击“下一步”。

群晖可以运行sqlite吗 群晖可以装sql server_Server_35

将两台群集服务器mscsdb01和mscsdb02都添加进来,然后点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_36

选择公用网络,输入群集IP地址,并命名,然后点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_37

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_Server_38

等待完成群集创建完成

群晖可以运行sqlite吗 群晖可以装sql server_Server_39

点击“完成”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_40

点击群集网络1进行编辑

群晖可以运行sqlite吗 群晖可以装sql server_数据库_41

群集网络1配置

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_42

群集网络2配置

群晖可以运行sqlite吗 群晖可以装sql server_Server_43

进行群集网络测试,首先对群集IP进行ping测试

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_44

然后将mscsdb01的群集公用网络禁用,此时mscsdb01已经无法访问。

群晖可以运行sqlite吗 群晖可以装sql server_数据库_45

而此时我们再试试ping群集IP试试,得到的结果是出现了几个丢包后,群集IP任然可以ping通,此时群集测试通过。

群晖可以运行sqlite吗 群晖可以装sql server_Server_46

四、SQL Server数据库群集搭建

4.1在群集上添加分布式事务协调器(DTC)应用

点击群集右键,选择“配置服务器或应用程序”,然后下一步

群晖可以运行sqlite吗 群晖可以装sql server_数据库_47

选择“分布式事物协调器(DTC)”,然后下一步

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_48

输入群集DTC的IP地址

群晖可以运行sqlite吗 群晖可以装sql server_Server_49

选择之前我们为群集DTC创建的10G磁盘,然后“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_50

选择“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_51

等待完成配置

群晖可以运行sqlite吗 群晖可以装sql server_Server_52

点击完成DTC配置

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_53

在mscsdb01和mscsdb02上均安装上.NET Framework 3.5.1

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_54

4.2安装SQL Server2008群集

首先,在mscsdb01中将SQL Server2008的镜像挂载到光驱,然后点击setup进行安装

在安装界面中,选择“安装”,然后选择“新的SQL Server 故障转移群集安装”

群晖可以运行sqlite吗 群晖可以装sql server_运维_55

点击“确定”

群晖可以运行sqlite吗 群晖可以装sql server_运维_56

输入产品密钥,点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_57

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_58

点击“安装”

群晖可以运行sqlite吗 群晖可以装sql server_数据库_59

进行安装检测,检测通过后点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_数据库_60

选择安装功能

群晖可以运行sqlite吗 群晖可以装sql server_运维_61

输入sql网络名称

群晖可以运行sqlite吗 群晖可以装sql server_数据库_62

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_63

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_Server_64

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_数据库_65

将DHCP的勾选去掉,然后手动输入IP地址,点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_66

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_数据库_67

在这里为了方便,对所以sql server服务使用相同域账号,下一步

群晖可以运行sqlite吗 群晖可以装sql server_Server_68

身份验证模式,选择混合模式,并输入sa用户的密码,下一步

群晖可以运行sqlite吗 群晖可以装sql server_数据库_69

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_运维_70

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_71

点击“安装”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_72

等待安装完成

群晖可以运行sqlite吗 群晖可以装sql server_Server_73

完成安装后,查看SQL Server状态;。

群晖可以运行sqlite吗 群晖可以装sql server_Server_74

在mscsdb02上向SQL Server故障转移群集添加节点

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_75

然后点击下一步继续安装

群晖可以运行sqlite吗 群晖可以装sql server_运维_76

群集节点配置,会自动显示mscsdb01群集的实例名称,然后点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_Server_77

输入先前创建数据库时添加的管理用户的密码,点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_78

点击“安装”,等待节点添加完成

群晖可以运行sqlite吗 群晖可以装sql server_运维_79

完成SQL Server群集节点添加。

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_80

五、群集数据库测试

5.1 添加测试数据库

查收数据库群集,当前所有者为mscsdb01.

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_81

在mscsdb01中登录数据库,在这里服务器名称填之前我们创建的数据库群集名称sqlcluster,身份验证可使用windows或sql server身份验证,根据自己的习惯来。

群晖可以运行sqlite吗 群晖可以装sql server_Server_82

点击“新建数据库”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_83

输入数据库名称,然后点击“确定”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_84

为test数据库创建一个登录名,点击“新建登录名”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_85

输入登录名,选择SQL Server身份验证输入密码,去掉用户在下次登录时必须更改密码,默认数据库选择test;当然在这里你也可以选择windows身份严重,选择域用户或者计算机用户来连接此数据库,根据个人情况而定。

群晖可以运行sqlite吗 群晖可以装sql server_数据库_86

服务器角色中,勾选sysadmin选项

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_87

用户映射选择创建的test用户,然后点击确定即可。

群晖可以运行sqlite吗 群晖可以装sql server_运维_88

这样就完成了测试数据库的创建。

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_89

5.2 测试数据库高可用性

由于时间的关系,这里是用ODBC数据源进行了数据库连接测试。

打开ODBC数据源管理,点击系统DSN,然后点击添加;

群晖可以运行sqlite吗 群晖可以装sql server_运维_90

选择SQL Server Native Client,点击完成;

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_91

输入名称和服务器,然后下一步;(这里的服务器可填写SQL群集的名称、IP地址、FQDN中的一种)

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_92

输入登录ID和密码,点击下一步;

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_93

点击“下一步”

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_94

点击“完成”

群晖可以运行sqlite吗 群晖可以装sql server_数据库_95

点击“测试数据源”

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_96

显示测试成功。

群晖可以运行sqlite吗 群晖可以装sql server_Server_97

完成数据源添加。

群晖可以运行sqlite吗 群晖可以装sql server_操作系统_98

现在我们将mscsdb01关机,然后再测试看看数据库是否能正常连接。

现在我们看到的SQL Server群集当前所有者已经变成了mscsdb02了。

群晖可以运行sqlite吗 群晖可以装sql server_数据库_99

接下来,我们再使用ODBC数据源测试看看是否能够成功连接到test数据库。

群晖可以运行sqlite吗 群晖可以装sql server_群晖可以运行sqlite吗_100

测试仍然成功。

 


转载于:https://blog.51cto.com/virtualwill/1351148