本实验基于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(用于数据存放,这个卷的大小可根据自己业务数据量大小分配);
拓扑图:
架构版本: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网络配置:
心跳网络只与内部网络进行心跳检测,故此可不配置网关。
mscsdb02网络配置:
二、配置RDM
2.1mscsdb01添加裸磁盘映射
将mscsdb01关机,然后右键mscsdb01虚拟机>编辑设置
然后点击“添加”按钮,选择“磁盘”然后点击“下一步”
选择“裸机映射”
选择分配用于quorum disk 1G的LUN,点击“下一步”
按照默认选择,“下一步”
选择“物理”,然后“下一步”。虚拟兼容模式(非直通)RDM 不支持 Windows Server 2008 的故障切换群集。
将虚拟设备节点改为“SCSI(1:0)”然后“下一步”
然后点击完成,完成第一个裸磁盘映射的添加。
要实现不同主机间的群集,首先需要先将虚拟机的SCSI控制器选择为“物理”的。
添加完成后,右键mscsdb01虚拟机>编辑设置,将新增的SCSI控制器1类型改为“物理”
用以上同样的方式,将10G用于DTC和50G用于数据存放的两个卷也添加到mscsdb01虚拟机中,注意在添加10G和50G卷的时候,在选择SCSI控制器时,选择SCSI(1:1)和SCSI(1:2)。
完成添加后,将所以磁盘联机,然后添加盘符。
2.2mscsdb02添加裸磁盘映射
同样的首先将mscsdb02关机,然后点击右键>编辑设置
点击“添加”>“硬盘”>“下一步”
选择“使用现有虚拟磁盘”>“下一步”
磁盘文件路径选择mscsdb01所在的文件路径,将mscsdb01添加的裸磁盘映射的硬盘添加进来。
然后点击“下一步”
虚拟设备节点选择“SCSI(1:0)”,然后“下一步”
点击完成
同样的将mscsdb02上的SCSI控制器1类型改为物理
然后按照上面的方式将mscsdb01映射的另外两块磁盘添加到mscsdb02中。
注意在添加10G和50G卷的时候,在选择SCSI控制器时,选择SCSI(1:1)和SCSI(1:2)。
完成添加后,打开mscsdb02虚拟机电源,将添加的磁盘联机。
联机后,磁盘会自动添加盘符,无需更改。
三、搭建MSCS集群
在mscsdb01虚拟机中,点击“服务器管理”>“功能”>“添加功能”>“故障转移群集”>“下一步”
然后点击“安装”,等待安装完成
安装完成后,点击“关闭”
完成mscsdb01故障转移群集安装后,然后再到mscsdb02中完成故障转移群集安装。(安装步骤同上)
在mscsdb01中,进入“故障转移群集管理器”中,点击“验证配置”
点击“下一步”
将mscsdb01和mscsdb02两个群集节点都添加进来,然后“下一步”
选择“运行所有测试(推荐)”,然后“下一步”
点击“下一步”
等待验证完成,在这个验证的过程中可能会出现各类问题,请根据测试报告进行更改,否则无法进行下一步。
显示测试成功,适合群集,点击完成。
然后点击创建群集,点击“下一步”。
将两台群集服务器mscsdb01和mscsdb02都添加进来,然后点击“下一步”
选择公用网络,输入群集IP地址,并命名,然后点击“下一步”
点击“下一步”
等待完成群集创建完成
点击“完成”
点击群集网络1进行编辑
群集网络1配置
群集网络2配置
进行群集网络测试,首先对群集IP进行ping测试
然后将mscsdb01的群集公用网络禁用,此时mscsdb01已经无法访问。
而此时我们再试试ping群集IP试试,得到的结果是出现了几个丢包后,群集IP任然可以ping通,此时群集测试通过。
四、SQL Server数据库群集搭建
4.1在群集上添加分布式事务协调器(DTC)应用
点击群集右键,选择“配置服务器或应用程序”,然后下一步
选择“分布式事物协调器(DTC)”,然后下一步
输入群集DTC的IP地址
选择之前我们为群集DTC创建的10G磁盘,然后“下一步”
选择“下一步”
等待完成配置
点击完成DTC配置
在mscsdb01和mscsdb02上均安装上.NET Framework 3.5.1
4.2安装SQL Server2008群集
首先,在mscsdb01中将SQL Server2008的镜像挂载到光驱,然后点击setup进行安装
在安装界面中,选择“安装”,然后选择“新的SQL Server 故障转移群集安装”
点击“确定”
输入产品密钥,点击“下一步”
点击“下一步”
点击“安装”
进行安装检测,检测通过后点击“下一步”
选择安装功能
输入sql网络名称
点击“下一步”
点击“下一步”
点击“下一步”
将DHCP的勾选去掉,然后手动输入IP地址,点击“下一步”
点击“下一步”
在这里为了方便,对所以sql server服务使用相同域账号,下一步
身份验证模式,选择混合模式,并输入sa用户的密码,下一步
点击“下一步”
点击“下一步”
点击“安装”
等待安装完成
完成安装后,查看SQL Server状态;。
在mscsdb02上向SQL Server故障转移群集添加节点
然后点击下一步继续安装
群集节点配置,会自动显示mscsdb01群集的实例名称,然后点击“下一步”
输入先前创建数据库时添加的管理用户的密码,点击“下一步”
点击“安装”,等待节点添加完成
完成SQL Server群集节点添加。
五、群集数据库测试
5.1 添加测试数据库
查收数据库群集,当前所有者为mscsdb01.
在mscsdb01中登录数据库,在这里服务器名称填之前我们创建的数据库群集名称sqlcluster,身份验证可使用windows或sql server身份验证,根据自己的习惯来。
点击“新建数据库”
输入数据库名称,然后点击“确定”
为test数据库创建一个登录名,点击“新建登录名”
输入登录名,选择SQL Server身份验证输入密码,去掉用户在下次登录时必须更改密码,默认数据库选择test;当然在这里你也可以选择windows身份严重,选择域用户或者计算机用户来连接此数据库,根据个人情况而定。
服务器角色中,勾选sysadmin选项
用户映射选择创建的test用户,然后点击确定即可。
这样就完成了测试数据库的创建。
5.2 测试数据库高可用性
由于时间的关系,这里是用ODBC数据源进行了数据库连接测试。
打开ODBC数据源管理,点击系统DSN,然后点击添加;
选择SQL Server Native Client,点击完成;
输入名称和服务器,然后下一步;(这里的服务器可填写SQL群集的名称、IP地址、FQDN中的一种)
输入登录ID和密码,点击下一步;
点击“下一步”
点击“完成”
点击“测试数据源”
显示测试成功。
完成数据源添加。
现在我们将mscsdb01关机,然后再测试看看数据库是否能正常连接。
现在我们看到的SQL Server群集当前所有者已经变成了mscsdb02了。
接下来,我们再使用ODBC数据源测试看看是否能够成功连接到test数据库。
测试仍然成功。