本文属于 基于SQL Alwayson的Windows Server 2012 WSFC搭建指南 系列文章
前言:
上一节介绍了AD的配置,对于SQL Server AlwaysOn而言,首先我们要有一个WSFC(Windows Server Failover Cluster),而WSFC首先又需要有一个Windows 域,所以AD的配置是前提条件。在配置完AD之后,我们就可以搭建WSFC。
但是搭建之前,我们需要规划会用到多少个节点及一些其他内容。在本系列中,我们使用5节点群集,那么我们就需要先把这5个节点逐一入域。配置网络、存储等。
再次提醒,本系列为实操形式,并且以为SQL Alwayson服务,所以不打算添加过多的Windows Server及其功能方面的内容。
群集中会涉及3个网络:1. 域网络。2. 公共网络(Public)。3.私有网络(Private),本人会在配置过程中,标识网卡名称以便识别。
节点入域:
下面以第一个节点为例:
配置IP地址,同样,把第一个网卡改名为Domain,标识是用于域之间的通讯网络。IP地址如下,其他节点按上文最后部分填写。注意这里的【首选DNS服务器】在本例中为AD的IP地址:
按下图方式把机器加入域内,同时修改机器名:
点击【确定】,然后重启服务器。该节点入域完成,按这个步骤把其他节点加入到域中。
节点添加群集:
添加故障转移群集功能:
在每个需要加入群集的服务器中(ClusterNode1~5)添加故障转移群集功能(Failover Clustering Feature),这里以ClusterNode1为例:
跳过不必要的步骤,勾选【故障转移群集】并开始安装,勾选必要时重启的选项:
群集存储:
在开始群集之前,我们必须考虑群集使用什么类型的存储。传统模式下会使用SAN,但是在Windows 2012中,不是所有的群集都会使用一个SAM。比如,如果你需要创建一个群集用于SQL Server AlwaysOn 可用组,那么可以省去SAN复制存储。另外,在SMB 3.0中支持Hyper-V和SQL Server群集实例的存储可能不需要传统的SAN存储。在本文中,不打算使用共享存储。
验证群集:
在所有群集节点服务器上启用了故障转移群集功能之后,可以在某一台(一般是第一台/节点)中的故障转移群集管理器,然后进行【验证配置】,以便识别是否满足安装要求:
注意:验证过程中任何错误都应该被修复,否则后续会有很多奇奇怪怪的问题
一旦验证完毕,检查报告,并确保【立即使用经过验证的节点创建群集】,然后点击【完成】。然后开始创建群集。在存储上面我们会看到一些警告,但是由于AlwaysOn可以不使用共享存储,也确实没必要,因为SQL Server FCI的唯一弱点就是在共享存储,所以如果使用共享存储会重新引入这个风险。
创建群集:
在【创建群集向导】中,会要求提供一个唯一虚拟网络名和一个唯一虚拟IP地址用于群集接入点。这里我们使用下面配置:
- 虚拟网络名:WIN2K12R2-01
- 虚拟IP地址:192.168.0.176
注意:这个是“虚拟”的,也就是说不需要名为“WIN2K12R2-01”的Windows服务器的存在。但是为了后面WSFC存储所需,还是建立了这台虚拟机,但是加域,没有加入WSFC。这里把WIN2K12R2-01这台服务器也作为存储服务器模拟存储。入域后机器名为WINS(代表着WIN Storage的缩写),domain的ip地址为192.168.0.177,为了不合VIP冲突。
提到虚拟,仅仅意味着分配给客户端接入点,本身是一个虚拟连接点。虚拟IP地址和虚拟网络名需要满足以下要求:
- 虚拟IP地址:必须在网络范围内唯一。
- 虚拟网络名:遵循相同的规则,作为普通的计算机名会被分配到一台 Windows 计算机。
- 虚拟网络名在Windows域中必须唯一。
通常会由网络或域管理员来分配满足这个条件的资源。这里使用WIN2K12R2-01及192.168.0.176。在【创建群集向导】中,把5个节点添加进去:
然后在【用于管理群集的访问点】选项中输入这个WIN2K12R2-01及其IP地址:
然后一直下一步:注意去除下图红框中的勾选,因为我们的AlwaysOn不需要共享存储,并且如果需要,后续可以手动添加。
然后我们可以看到这个界面:
现在,我们的群集就可以用于部署SQL Server FCI。但是还需要添加共享存储(FCI的强制要求)。如果对此有兴趣,可以看一下另外两篇文章,这两篇如有精力也会一起翻译,目前我们把注意力集中在AlwaysON上:
- SQL Server 2012 FCIs Part 1 - http://www.sqlservercentral.com/articles/AlwaysOn/98619/
- SQL Server 2012 FCIs Part 2 - http://www.sqlservercentral.com/articles/AlwaysOn/106314/
当在Windows 2008/2012中映射共享磁盘,默认策略是对所有节点进行脱机操作以免磁盘损坏。在这里,使用了5个LUNs,然后把这些联机以便群集可以作为磁盘资源使用。
配置iSCSI:
由于需要仲裁磁盘及存储,所以这里使用之前创建的
WIN2K12R2-01服务器。首先通过控制台(这里使用Hyper-V做演示),添加一个网卡,在虚拟机内部以iSCSI命名。其IP地址为192.168.100.176 ,另外可以看到有第三个网卡“Public”,这个在这里仅仅为了在Hyper-V宿主机可以通过共享方式把iSCSI和其他软件放进去虚拟机内部而已。暂无其他特殊用处,大家可以忽略。另外,这里的iSCSI为冗余网络,可以不需要。
按下图在WIN2K12R2-01(后续使用WINS代替)中打开iSCSI发起程序:
选择“是”
通过角色向导添加iSCSI目标服务器:把当前服务器,即WIN2K12R2-01作为当前服务器并完成安装。
此时关闭这台虚拟机,并通过Hyper-V控制台,挂在 WINS的一块300G硬盘。然后在WINS虚拟机内部联机。然后使用【服务器管理器】中的【新建iSCSI虚拟磁盘】功能添加:
选择E盘(盘符无所谓,本例中使用E盘符而已):
创建节点3 的iSCSI虚拟磁盘名称:
指定大小为5GB:
使用【新建iSCSI目标】创建:
指定目标名称及其描述:这里建议添加必要的描述以便后续管理
指定访问服务器:在域中的服务器,可以通过查找方式来指定,由于这里演示的盘是在节点三,所以这里只指定节点三访问,后续可以继续添加其他节点访问。
完成创建:
现在到节点三中,先开启iSCSI发起程序,然后配置iSCSI目标所在的服务器,这里即192.168.0.177或者使用IP地址192.168.100.176:
连接之后,在节点三的磁盘管理可以看到一个脱机的盘,把它联机并用“MBR”进行初始化后:
在节点三的故障转移群集管理器中的存储→磁盘→添加磁盘中就可以发现这个盘:
这时候就可以把这个盘加进群集:
按照这个方式,把下面的盘创建完毕:
添加磁盘到群集:
配置注意事项:当添加磁盘时,如果存储没有连到当前节点。要修复这种问题,右键【磁盘】选择【移动可用存储】→【选择节点】,把资源移到节点1。
在【故障转移群集管理器】中,右键【角色】选择【创建空角色】,并修改名称如下图所示,同时确保所有者节点在节点1。
右键这个角色,选择【添加存储】
当使用已联机的空间时,最佳实践是设置磁盘依赖关系。根驱动必须在其他挂载驱动启动之前先启动。可以右键存储中的某个磁盘,选择属性,然后在依赖关系中配置。
现在,共享磁盘已经添加到群集中。在下一步操作之前,进行一下快照,然后尝试以下操作并观察结果:
- 对根驱动进行脱机,所有挂载空间必须提前脱机。
- 右键【角色】中你创建的那个空角色,然后选择【启动角色】。所有空间变成联机。
- 在节点1~2之间来回移动角色。
- 关闭根驱动,一旦所有空间脱机,选择其中一个并联机。
- 右键角色并【停止角色】
- 右键角色并【启动角色】
现在对群集已经有了一个初步的框架。