需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服务的性能。
SQL Server始终在负载均衡集群方面都缺少自己的产品,多由第三方厂家提供,但SQL Server故障转移集群却由来已久,在SQL Server 2012还提供了一个可用性组(AlwaysOn High Availability Groups)的新特性,我们知道微软的故障转移集群(Windows Server Failover Clustering , WSFC)一般需要共享存储,SQL Server故障转移集群也是建立在WSFC的基础之上,可用性组却可以不依赖于共享存储实现SQL Server的故障转移,这为没有共享存储的环境提供了一个实现SQL Server高可用的解决方案,关于AlwaysOn特性可以参阅相关文档,这里我们实现的是仍是基于共享存储的包含两个节点的SQL Server故障转移集群。
一、搭建Windows故障转移集群(WSFC)
SQL Server故障转移集群是基于WSFC的,因而我们需要事先在两个节点中搭建一个WSFC,这里需WSFC仅是一个容器,可以放置多个角色以实现这些角色的故障转移。为搭建一个WSFC,除了需要域环境,还需要在节点,存储,网络等方面做准备。
1、在各节点中添加Failover Clustering服务器功能。
2、确保各节点操作系统的更新一致,新安装的系统要么更新到最新,要么暂不更新。
3、在各节点中配置管理网络和心跳网络,虽然一个可用网络既可以搭建集群,但是最佳实践还是分开。
4、在各节点中配置共享存储磁盘,初始化并格式化磁盘,分配盘符。这里的共享存储磁盘可以是基于IP SAN和FC SAN的磁盘,也可以是基于文件服务器的虚拟磁盘,具体可以参考Windows Server 2012 虚拟化测试:存储。在节点中可见磁盘如下:
为搭建SQL Server故障转移集群,至少需要准备两块共享磁盘:集群见证磁盘Q、为存储SQL Server数据库和日志文件准备的集群磁盘S。另外我们需要为SQL Server的集群实例配置分布式事务协调器(Distributed Transaction Coordinator, DTC),因而需要为DTC准备磁盘M。微软建议将SQL Server各类文件分开存储,最佳实践需准备两块以上共享磁盘,分别存储User Database、Backup和User Database Log文件,这就至少需要另一个集群磁盘L。综上我们对存储做如下配置:
集群见证磁盘Q