我现在一直在使用微软的Hyper-V技术,但是现在我正在将我的脚趾集中起来。
特别是,我试图实现一个容错SQL DB。 这包括设置两个虚拟机,通过故障转移群集对它们进行群集,然后以某种方式安装SQL Server。 我有两台物理机器 – 一台是高端的,另一台是用来容纳大部分虚拟机的健壮的“重型升降机”,还有另一台“备份”(一种改变了用途的桌面),用于容纳基本的“二级”(或故障转移)AD-DC, SQL和FS虚拟机。
我发现虚拟机级别的故障转移群集非常有吸引力的主要原因是,它向networking提供了一个单一的IP和DNS条目 – 如果一台机器(物理或虚拟机)出现故障,可能会丢失一些ping和连接重置,但networking应用程序(Microsoft RMS连接到后端SQL)仍然可以连接到一个可行的数据库,而不必乱搞设置。
我的第一个问题是SQL Server本身。 如果我在两台虚拟机之间有一个集群,将SQL Server安装在故障转移群集configuration中更合理,还是应该将其安装在独立configuration中并镜像数据库? 例如, 这篇文章build议只是镜像数据库,但是我只是在独立的虚拟机上镜像独立的数据库,还是能够获得群集虚拟机的networking和故障转移优势,同时仍然使用(在每个群集虚拟机上)已经镜像的独立数据库彼此?
同样,我遇到了很多关于SQL集群的文档,但是大多数假设有一些物理机器(#> 2)不仅包含实际的SQL虚拟机,还包含Quorum和Witness存储库。 我将无法召集两个以上的物理机器。 因此,我必须对不超过两台虚拟机(每台物理机一台)的虚拟机群集感到满意。
另一个问题涉及MSDTC – 分布式事务处理协调器。 当试图安装SQL故障转移群集(由于这个原因,我从来没有完成过),因为MSDTC没有被群集,所以它引发了一个棘手的问题。 我可能会search,但在Windows Server 2012 R2下我还没有find这样做的方法。 我发现了很多Windows 2008和2008 R2的文档 ,但是这些说明与2012 R2不一致(至less不能让我成功集群MSDTC)。 此外,我发现的一些SQL Server故障转移群集安装说明build议第三个“networking设备” – 共享networking存储(SAN) – 是数据库本身(和其他function)所必需的。 我没有这个,不会得到这个。 我的大部分存储空间都存在于为所有“主要”虚拟机devise的“重型升降机”上。 如果该物理机器停机,那么存储器也是如此。 辅助服务器具有足够的资源用于AD-DC服务器,SQL服务器和文件服务器,因此它将处理这些VM的“辅助”故障转移版本(无论是否为群集)。
我最后的问题涉及文件服务器。 如果我在两台虚拟机之间集群文件服务器(一台在我的“重型升降机”和另一台在我的“备份”之间),我如何镜像它们之间的数据?群集虚拟机只为networking提供一个资源访问点,并不能完全复制这两者之间的数据,而是留给提供这些数据的服务。我不确定如何确保两个群集文件服务器虚拟机之间的文件服务器数据可以正确镜像。这里使用的设备 – 我的主机和备用的辅助设备,没有机会获得SAN或任何其他types的networking附加存储,机器上存在的任何东西都必须作为存储设备。
在此先感谢您的任何build议。
您可能希望将其分解为一系列针对性更强的问题。
如果您正在寻找无缝,应用程序透明的故障转移,那么您需要使用故障转移群集或AlwaysOn可用性组。 如果您使用的是SQL 2012 Enterprise,AOAG将只是一个选项。 镜像将为您提供简单的(手动)故障转移; 如果你想自动故障转移,你将不得不添加一个见证服务器混合,但即使如此,你的应用程序将不得不故障转移意识,因为它需要使用一个新的IP /名称来连接到辅助服务器,不像一个故障转移群集/ AOAG。 事实上,微软打算利用可用性组来取代传统镜像,所以为了保证未来的可行性,我build议不要在新的部署中使用镜像。
Windows 2012上的SQL Server 2012并不是绝对需要群集MSDTC,但是如果您需要群集,就像添加DTC群集angular色一样简单: 
对于故障转移群集,您需要某种types的数据库外部存储。 这可以是SAN,DAS或(如果您有SQL 2012)NAS。 如果您不打算使用外部存储,则应该使用AlwaysOn可用性组,因为它将为您复制数据,同时提供类似群集的故障转移function。 这仍然需要Windows群集,但SQL本身不会被群集。
集群文件服务器被devise为与后端的共享存储一起工作,就像集群SQL实例一样。 另一种select是将DFS复制与DFS命名空间配合使用,以提供高度可用的文件共享,而无需集群。
一个“低技术”选项就是在两台主机之间实现Hyper-V副本。 如果您没有共享存储,并且无法configuration(或融资)共享存储和应用程序级故障转移(适用于AOAG的SQL Server企业版),则可以使用Hyper-V副本从源复制VM主机到目标主机,并保持两个虚拟机同步。 您可以使用Hyper-V副本的VSS选项启用应用程序一致性复制。
Hyper-V副本的缺点是不能在同一故障转移群集中的主机之间使用,并且没有自动故障转移。