使用DataKeeper创建SQL Server 2014故障转移群集实例
更新 – 由于引入了新功能,我已经更新了关于在Azure上部署SQL Server群集的指导。最新文章可以在这里找到:https://clusteringformeremortals.com/2015/01/01/step-by-step-how-to-configure-a-sql-server-failover-cluster-instance-fci-in-微软天青-的IaaS-SQLSERVER-天青-sanless /
这是Windows Azure中高可用性和灾难恢复系列的第3篇文章。本文包含在不同故障域中的两个群集节点之间的Windows Azure IaaS云中实施Windows Server故障转移群集的分步说明。虽然本文重点介绍如何构建SQL Server 2014故障转移群集实例,但您只需对以下步骤进行一些小的调整即可保护任何群集感知应用程序。在下一篇文章中,我将向您展示如何将此群集扩展到不同数据中心中的第三个节点,以实现非常强大的灾难恢复计划。由于Azure没有集群存储选项,因此我们将使用名为DataKeeper Cluster Edition的第三方解决方案来实现集群存储。
本文假设您已经在Azure中创建了一个虚拟网络,并且您已经在Azure中配置了第一个DC。如果你还没有这样做,你会想继续前进,看看这个主题的前两个帖子。
http://www.sios-apac.com/2018/02/extending-datacenter-azure-cloud/
虽然创建与主数据中心的VPN连接不是先决条件,但我强烈建议您考虑这样做。通过这种方式,您可以为我们的混合灾难恢复配置做好准备,这将在下一篇文章中讨论。
我们将在这篇文章中阐述的高层步骤如下:
- 配置两台Windows Server 2012 R2服务器
- 将服务器添加到域
- 启用故障转移群集功能
- 创建群集
- 使用DataKeeper Cluster Edition创建复制卷群集资源
- 安装SQL 2014故障转移群集实例
配置两台Windows Server 2012 R2服务器
点击左栏中的虚拟机标签,然后点击左下角的新建按钮。
从图库中选择新建虚拟机
对于我们的集群,我们将选择Windows 2012 R2 Datacenter
选择最新的版本发布日期,命名虚拟机和大小。用户名和密码将是您将用于登录到VM以完成配置的本地管理员帐户。
在下一页上,您将选择以下内容:
云服务:我选择了在配置第一台虚拟机时创建的相同Cloud Service。Cloud Service文档称它用于负载平衡,但我认为将所有群集VM和DC放在同一个Cloud Service中以便于管理没有任何坏处。通过选择现有的Cloud Service,我的虚拟网络和子网会自动选中。
存储帐户:我选择现有的存储帐户
可用性集:这非常重要。你想确保所有的虚拟机都驻留在同一个可用性集合中。通过将所有VM放在同一可用性集中,可以保证VM都运行在不同的Fault Domain中。
最后一页显示了可以访问此虚拟机的端口。
虚拟机一旦创建,您就会将其视为Azure门户中的新虚拟机
下一步是向VM添加额外的存储。Azure最佳实践可让您将数据库和日志文件放在同一个卷上,否则必须禁用默认启用的地理复制功能。以下文章更详细地描述了此问题:http://msdn.microsoft.com/en-us/library/jj870962.aspx#BKMK_GEO
要将额外的存储添加到虚拟机,请单击虚拟机,然后单击仪表板以转到虚拟机仪表板。一旦那里,点击附加。
在考虑SQL Server的存储选项时,需要考虑很多事情。最安全和最简单的方法是我们将在这篇文章中使用的方法。我们将为我们的数据和日志文件使用单个卷并禁用缓存。您需要阅读本文以获取有关SQL Server性能注意事项和Azure最佳做法的最新信息。
http://msdn.microsoft.com/en-us/library/windowsazure/dn133149.aspx
添加此额外卷后,您需要打开每个虚拟机并使用“磁盘管理”来初始化和格式化卷。为了演示的目的,我们将把这个卷格式化为“F:”驱动器。
您现在有一个称为SQL1的VM。您需要完成与配置另一个VM并将其称为SQL2相同的过程,确保将其放入同一个Cloud Service,Availability Set和Storage Account中。还要确保将另一个卷附加到SQL2,就像您为SQL1所做的一样,并将其格式化为F:驱动器。
当您完成配置这两个虚拟机时,我们将前进到下一步,将它们添加到域中。
将其添加到域
将SQL1和SQL2添加到域是一个简单的过程。假设您一直关注以前的帖子,您已经创建了域,并且在与SQ1和SQL2相同的Cloud Service中配置了一个名为DC2的DC。将它们添加到域中与连接到VM并将VM添加到域一样简单,就像在常规内部部署网络中一样。如果您正确配置了虚拟网络,则新VM应该使用由DHCP指定的IP地址进行引导,该DHCP地址指定本地DC2和域控制器。
单击“连接”以打开到SQL1和SQL2的RDP会话
IPconfig / all显示当前的IP配置。Windows Azure要求您保留设置为使用DHCP服务器的地址,但IP地址在VM的生命周期内不会更改。您应该注意到您的DNS服务器已设置为您在前一篇文章中创建的本地DNS服务器。
将SQL1和SQL2添加到域中并继续执行下一步。
启用故障转移群集功能
在SQL1和SQL2上,您都将启用故障转移群集功能
创建群集
如果您熟悉集群,那么除了少数例外情况,以下步骤应该对您非常熟悉,因此请密切注意避免特定于在Windows Azure中部署集群的问题。
我们将首先创建一个节点集群,这将允许我们在将第二个节点添加到集群之前对集群名称资源进行必要的调整。使用故障转移群集管理器并从选择创建群集开始。将SQL1添加到选定的服务器,然后单击下一步。
为了让我们在后面的步骤中将SQL Server 2014安装到集群中,我们需要完成集群验证
逐步完成群集创建过程的其余部分,如下所示。我们将调用这个集群SQLCLUSTER,它只是我们用来管理集群的名称。这不是客户端应用程序最终连接到的名称。
群集创建过程完成后,您会注意到群集名称资源无法联机,这是预期的。
由于IP资源无法联机,名称资源无法联机。由于DHCP服务器分配的地址与服务器的物理地址相同,因此IP地址无法联机,在本例中为10.10.11.5,所以存在重复的IP地址冲突。
为了解决这个问题,我们需要进入IP地址资源的属性,并将地址更改为当前未使用的同一子网中的另一个地址。我会选择位于子网范围较高端的地址,以减少将来可能部署新VM的可能性,Azure将分发该群集IP地址,从而导致IP地址冲突。为了消除这种可能性,微软将不得不允许我们更多地控制DHCP地址池。目前,完全消除这种可能性的唯一方法是在虚拟专用网络中为稍后可能部署的任何新虚拟机创建一个新子网,以便只有此群集驻留在此子网中。如果您打算在此子网中部署更多虚拟机,则可以同时部署所有虚拟机,以便知道它们将使用哪些IP地址,这样您就可以使用群集的剩余IP地址,。
要更改IP地址,请选择IP地址群集资源的属性并指定新地址。
地址更改后,右键单击“群集名称”资源并使其联机。
我们现在准备将第二个节点添加到集群。在故障转移群集管理器中,选择“添加节点”
浏览到第二个节点,然后单击“添加”。
再次运行所有验证测试。
当您单击完成时,您会看到该节点已成功添加,但由于Azure中没有共享存储,因此无法创建用于仲裁的磁盘目击者。我们将在下一步修复。
我们现在需要将文件共享见证添加到我们的群集,以确保满足两个节点群集的仲裁需求。文件共享见证将在DC2服务器上配置,该服务器也是在Azure云中运行的域控制器。
打开Azure私有云中的域控制器的RDP会话
连接到您的域控制器并创建名为“Quorum”的文件共享。您需要在共享级别和安全性(NTFS)级别提供群集计算机名称对象(本例中称为SQLCluster)读取/写入权限。如果您不熟悉创建文件共享见证,您可能需要查看我以前的帖子以获取更多详细信息。
一旦在域控制器上创建了文件共享见证文件夹,我们需要使用SQL1上的故障转移群集管理器在群集配置中添加见证
现在应该如下所示配置文件共享见证。
使用DataKeeper Cluster Edition创建复制卷群集资源
传统的故障转移群集需要共享存储设备,如SAN。Azure IaaS云不提供能够用作群集磁盘的存储解决方案,因此我们将使用名为DataKeeper Cluster Edition的第三方数据复制解决方案,这将允许我们创建可用于的复制卷资源共享磁盘的位置。14天试用许可证通常可根据要求进行测试。
一旦你下载DataKeeper,安装它并在SQL1和SQL2上同时授权它并重启服务器。一旦服务器重新启动,连接到SQL1,启动DataKeeper UI并完成以下步骤。
“连接”到SQL1和SQL2
现在单击“创建作业”并按照以下步骤创建镜像和DataKeeper卷群集资源。
选择镜子的来源。当您为源和目标选择IP地址时,请务必选择服务器本身的IP地址,请勿选择群集IP地址!
对于两个节点均位于Azure云中的此实现,请选择不压缩的同步复制,如下所示。
单击完成,系统会询问您是否要在Windows Server故障转移群集中注册此镜像。单击是。
当您打开Windows Server故障转移群集GUI时,现在您会看到DataKeeper卷资源位于可用存储中
您现在已准备好将SQL Server安装到群集中。
安装SQL Server 2014故障转移群集实例
要启动SQL Server 2014群集安装,您必须将SQL 2014 ISO下载到SQL1和SQL2。您可以将SQL Server 2014 Standard Edition用于简单的双节点群集。如果您想将此群集扩展到第三个站点进行灾难恢复,我们将在下一篇文章中讨论,那么您将需要企业版,因为标准版仅支持双节点群集。如果您只是在寻找一个简单的双节点解决方案,那么SQL Server Standard Edition可能是一个更经济的解决方案。
一旦将SQL Server 2014下载到服务器,安装ISO并运行安装程序。我们想要打开的选项位于“高级”选项卡中。打开高级选项卡并运行“高级群集准备”。我的好朋友和Cluster MVP同事Robert Smit告诉我有关使用高级选项的信息。基本上,高级选项可让您将安装分成两个不同的进程,即准备和完成。群集安装可能会出现许多问题,通常与活动目录和权限有关。如果使用标准安装方法,则可能需要等待20分钟或更长时间才能完成安装,但只有在最后一刻才发现群集无法在活动目录中注册CNO,并且整个安装失败。整个安装过程不仅失败,现在您可能已经安装了部分安装的SQL Server集群,并且清理起来很麻烦。通过使用高级方法,您可以通过在群集完成期间将风险部分放在最后来将风险降至最低。如果群集完成失败,则只需要诊断问题并再次仅重新运行群集完成过程。
如果您真的想节省一些时间,请查看Robert关于使用配置文件安装SQL Cluster的文章,如果您正在进行多次安装,这很容易做到并节省了大量时间。但是,就我们的目的而言,我们将通过GUI执行SQL安装,如下所示。
为了演示目的,我只使用了每个服务的管理员帐户。在生产中,您需要为每项服务创建单独的帐户,作为最佳做法。
一旦安装完成,它看起来像这样。
现在我们准备继续进行第二部分安装,即高级群集完成。
给这个SQL实例一个名字。这是客户将连接到的名称。在这种情况下,我称之为SQLINSTANCE1。
这是魔术发生的地方。如果您按前面所述在DataKeeper中配置了镜像,那么您将在此处列出的DataKeeper卷为可用共享磁盘,实际上它只是一个复制卷对。
在“群集网络配置”页面中,选择IPv4并指定子网中未使用的地址很重要。如前所述,此地址应位于DHCP范围的较高端,以帮助将Azure未来将该地址分配给其他虚拟机的风险降至最低。我强烈建议你有一个专用于你的集群的子网,以避免可能的冲突,直到Windows Azure为我们提供更好的IP地址和DHCP范围控制。稍后,在创建群集后,您将需要删除此客户端访问点并添加客户端访问点,如http://blogs.msdn.com/b/sqlalwayson/archive/2013/08/06/availability-中所述 – 组侦听器的窗口,蔚现在支持-和脚本换云的唯一-configuration.aspx。我将在未来发布一篇博客文章,详细描述这一过程。
在此页面上确保您单击添加当前用户,或者指定您希望用于管理SQL Server的帐户。
从SQL Server 2012开始,tempdb不再需要成为SQL Server集群的一部分。如果将tempdb移动到非复制卷,则需要确保每个节点上都存在目录结构。要更改tempdb的位置,请单击“数据目录”选项卡并更改tempdb所在的位置。
在SQL1上安装完成时,是时候在SQL2上运行SQL安装程序并将第二个节点添加到群集。在SQL2上运行安装程序并选择将节点添加到SQL Server故障转移群集。
安装完成后,您现在可以在Azure云上运行功能齐全的SQL Server 2014故障转移群集实例。每个实例都位于不同的故障域中,提供高级别的弹性。请务必按照我的文章中所述,使用客户端访问点替换客户端访问点…
在本系列的下一篇文章中,我将向您展示如何将这两个节点群集扩展到多站点群集的第三个节点。这个第三节点将位于我的内部数据中心,这将为我们提供高可用性和灾难恢复的终极解决方案。
有关SQL Server 2014故障转移群集实例的详细信息,请阅读此处
经https://clusteringformeremortals.com/2014/01/10/creating-a-sql-server-2014-alwayson-failover-cluster-fci-instance-in-windows-azure-iaas-azure-cloud/许可转载