SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 产品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 服务器集群简单化
  • 成功案例
  • 联系我们
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

在Azure中运行SQL Server的存储注意事项

5月 8, 2019 by Jason Aw Leave a Comment

在Azure中运行SQL Server的存储注意事项

在Azure或任何云平台中部署SQL Server?考虑到Azure中的存储与您可能访问本地的存储不完全相同,而不是像您为内部部署多年来那样配置存储。一些传统的“最佳实践”可能会花费你额外的钱,并给你不到最佳的性能。然而,一直没有为您提供任何预期的好处。我将要讨论的大部分内容也在SQL Server虚拟机中的Azure性能指南中进行了描述。

磁盘类型

我不是要告诉您必须使用UltraSSD,Premium Storage或任何其他磁盘类型。您只需要知道您有选项,以及每种磁盘类型为表带来的内容。当然,就像云中的其他任何东西一样,您花费的钱越多,您将获得的功率,速度,吞吐量等就越多。诀窍是找到适合您存储考虑因素的最佳配置,这样您就可以花费足够的时间来达到预期的效果。

尺寸很重要

像云中的许多东西一样,某些规格是捆绑在一起的。对于服务器,如果你想要更多的RAM,你经常会获得更多的CPU,即使你不需要更多的CPU。对于存储,IOPS,吞吐量和大小都捆绑在一起。如果您想要更多IOPS,则需要更大的磁盘。如果您需要更多空间,您还可以获得更多IOPS。当然,您可以在存储类之间跳转以在某种程度上规避这一点,但是如果您需要更多IOPS,您仍然可以在任何不同的存储类型上获得更多空间。虚拟机实例的大小也很重要。无论您最终使用哪种存储配置,总体吞吐量都将限制在实例大小允许的范围内。因此,再次,您可能需要支付比您需要的更多的RAM和CPU,只是为了实现您期望的存储性能。确保您了解实例大小可以支持的最大IOPS和MBps吞吐量。很多时候,实例大小将成为Azure中感知存储性能问题的瓶颈。

使用Raid 0

RAID 0传统上是存储配置选项的第三轨。虽然它提供了任何RAID选项的性能和存储利用率的最佳组合,但它存在灾难性故障的风险。当RAID 0条带集中的单个磁盘发生故障时,整个条带集将失败。因此,传统上RAID 0仅用于数据丢失可接受且需要高性能的情况。但是,在Azure软件中,RAID 0是可取的,甚至在许多情况下也是推荐的。我们如何在Azure中使用RAID 0?答案很简单。您呈现给Azure虚拟机实例的每个磁盘已在后端具有三重冗余。这意味着在丢失条带集之前需要多次失败。通过使用RAID 0,您可以组合多个磁盘。对于添加到条带集的每个附加磁盘,组合条带集的整体性能将增加100%。因此,例如,您需要10,000 IOPS,您可能认为您需要UltraSSD,因为高级存储使用P50最高可达7,500 IOPS。但是,通过将两个P50放入RAID 0,您现在可以实现高达15,000 IOPS。假设您正在运行Standard_F16s_v2或类似的大型实例大小,支持那么多IOPS。在Windows 2012及更高版本中,RAID 0是通过创建简单存储空间来实现的。在Windows Server 2008 R2中,您可以使用动态磁盘创建RAID 0条带卷。只是提醒一句。如果您要使用本地存储空间并使用DataKeeper配置可用性组或SANless故障转移群集实例,则最好在创建群集之前配置存储。 只是提醒。您只有两个月的时间将SQL Server 2008 R2实例移动到Azure。查看我的帖子,了解如何在Azure上部署SQL Server 2008 R2 FCI以确保高可用性。

不要打扰分离日志和数据文件

传统上,日志和数据文件将驻留在不同的物理磁盘上。日志文件往往具有大量写入活动,而数据文件往往具有更多读取活动。因此,有时存储将基于这些特征进行优化。还希望将日志和数据文件保存在不同的磁盘上以用于恢复目的。如果您丢失了一个或另一个,并且有适当的备份策略,您可以恢复数据库而不会丢失数据。使用基于云的存储,只丢失一个卷的可能性非常低。现在您正考虑存储注意事项。如果您偶然丢失了存储空间,则可能是您的整个存储群集以及三重冗余都要去吃午餐。因此,虽然将日志放入E: logs和F: data中的数据可能是正确的,但您确实在做自己的损害。例如,您为日志配置了P20,为数据配置了P20。每个卷的大小为512 GiB,上限为2,300 IOPS。试想一下,你可能不需要那么大的日志文件。但它可能不会为您的数据文件增长留出太多空间。它最终需要转移到更昂贵的P30,只是为了额外的空间。简单地将这两个卷组合成一个支持4,600 IOPS的漂亮的大1 TB卷不是更好吗?通过这样做,日志和数据文件都可以利用增加的IOPS。而且,您还可以通过推迟数据文件的P30磁盘来优化存储利用率并降低云存储成本。这同样适用于真正的文件和文件组。真的很想你在做什么。一旦你搬到云端,它是否仍然有意义。 有意义的事情可能与你过去所做的事情相违背。如有疑问,请遵循KISS规则,Keep It Simple Stupid!云的美妙之处在于您可以随时添加更多存储空间,增加实例大小,或者尽一切可能优化性能与成本。

如何处理TempDB

使用本地SSD,也称为D:驱动器。D驱动器将成为tempdb的最佳位置。 因为它是本地驱动器,所以数据被认为是“临时的”。这意味着如果移动,重新启动服务器等,它可能会丢失。没关系。每次SQL启动时都会重新创建Tempdb。本地SSD将很快并且具有低延迟。但是因为它是本地的,所以对它的读取和写入不会影响实例大小的总体存储IOPS限制。所以有效它是免费的IOPS!为什么不利用?如果要使用SIOS DataKeeper构建SANless SQL Server FCI,请确保创建D驱动器的非镜像卷资源。这样您就不必不必要地复制TempDB。

装载点变得过时

当在同一Windows群集上安装多个SQL Server实例时,挂载点通常用于SQL Server FCI配置中。这降低了SQL Server许可证的总体成本。它可以通过提高服务器利用率来帮助节省成本。正如我们过去所讨论的,通常可能有五个或更多驱动器与每个SQL Server实例相关联。如果每个驱动器都必须使用驱动器号,那么在大约三到四个实例中就会用完字母。因此,不是给每个驱动器一个字母,而是使用挂载点,以便每个实例只能由一个驱动器号(根驱动器)提供服务。根驱动器具有映射到没有驱动器号的单独物理磁盘的安装点。但是,正如我们上面所讨论的,使用一堆单独磁盘的概念在云中确实没有多大意义。因此,挂载点在云中变得过时。相反,我们如上所述创建RAID 0条带。每个群集实例SQL Server都将拥有自己独立的卷,该卷针对空间,性能和成本进行了优化。这解决了驱动器号耗尽的问题。此外,还可以提高存储利用率和性能,同时还可以降低云存储的成本。

结论

这篇文章是一个跳跃点,而不是权威指南。这篇文章的主要内容是让您对云和存储注意事项有不同的看法,因为它与在Azure中运行SQL Server有关。不要简单地采用您在本地进行的操作并在云中重新创建它。这几乎总会导致不太理想的性能和比必要的更大的存储费用。经Clusteringformeremortals.com许可转载

Filed Under: 服务器集群简单化

不要丢失SQL Server 2008安全更新!

5月 7, 2019 by Jason Aw Leave a Comment

不要丢失SQL Server 2008安全更新!让SIOS专家帮助您迁移到Azure通过利用SIOS DataKeeper降低停机时间并获得Azure 99.95%或99.99%SLA的资格。DataKeeper克服了Azure缺乏共享存储的问题,使您能够在Azure中构建SQL Server FCI,利用每个实例上的本地连接存储。SIOS DataKeeper支持SQL Server 2008 R2和Windows Server 2008 R2。同时,它支持任何版本的Windows Server – 从2008 R2到Windows Server 2019以及从SQL Server 2008到SQL Server 2019的任何版本的SQL Server。

Filed Under: 服务器集群简单化

在Azure中的Windows Server 2008 R2上配置SQL Server 2008 R2故障转移群集实例

4月 24, 2019 by Jason Aw Leave a Comment

循序渐进:如何在Azure中的Windows Server 2008 R2上配置SQL Server 2008 R2故障转移群集实例

介绍

2019年7月9日,对SQL Server 2008和2008 R2的支持将结束。这意味着定期安全更新的结束。但是,如果将这些SQL Server实例移动到Azure,Microsoft将为您提供三年的扩展安全更新,无需额外费用。如果您当前正在运行SQL Server 2008/2008 R2并且在7月9日截止日期之前无法更新到SQL Server的更高版本,那么您将希望利用此优惠而不是冒着面临未来安全漏洞的风险。未修补的SQL Server实例可能导致数据丢失,停机或破坏性数据泄露。

在Azure中运行SQL Server 2008/2008 R2时将面临的挑战之一是确保高可用性。在本地,您可能正在运行SQL Server故障转移群集(FCI)实例以实现高可用性,或者您可能正在虚拟机中运行SQL Server,并且依赖VMware HA或Hyper-V群集来获取可用性。迁移到Azure时,这些选项都不可用。 Azure中的停机是非常可能的,您必须采取措施来缓解。

为了减少停机的可能性并获得Azure 99.95%或99.99%SLA的资格,您必须利用SIOS DataKeeper。DataKeeper克服了Azure缺乏共享存储的问题,并允许您在Azure中构建SQL Server FCI,利用每个实例上的本地连接存储。SIOS DataKeeper不仅支持本指南中记录的SQL Server 2008 R2和Windows Server 2008 R2,它支持从2008 R2到Windows Server 2019的任何版本的Windows Server以及从SQL Server 2008到SQL Server 2019的任何版本的SQL Server 。

本指南将介绍在Azure中创建在Windows Server 2008 R2上运行的双节点SQL Server 2008 R2故障转移群集实例(FCI)的过程。尽管SIOS DataKeeper还支持跨可用区或区域的群集,但本指南假设每个节点都位于同一个Azure区域,但位于不同的故障域中。将使用SIOS DataKeeper代替创建SQL Server 2008 R2 FCI通常所需的共享存储。

在Azure中创建第一个SQL Server实例

本指南将利用Azure Marketplace中发布的Windows Server 2008R2映像上的SQL Server 2008R2SP3。

配置第一个实例时,您必须创建新的可用性集。在此过程中,请确保将Fault Domains的数量增加到3。这允许两个群集节点和文件共享见证每个节点驻留在它们自己的故障域中。

为每个实例添加其他磁盘。建议使用Premium或Ultra SSD。禁用用于SQL日志文件的磁盘上的缓存。在用于SQL数据文件的磁盘上启用只读缓存。有关存储最佳实践的其他信息,请参阅Azure虚拟机中的SQL Server性能指南。

如果尚未配置虚拟网络,请允许创建向导为您创建新虚拟网络。

创建实例后,请进入IP配置并使专用IP地址静态。这是SIOS DataKeeper所必需的,也是群集实例的最佳实践。

确保将虚拟网络配置为将DNS服务器设置为本地Windows AD控制器。这是为了确保您能够在以后的步骤中加入域。

在Azure中创建结束SQL Server实例

按照上面的相同步骤。除了确保将此实例放在您使用第一个实例创建的同一虚拟网络和可用性集中。

创建文件共享见证(FSW)实例

为了使Windows Server故障转移群集(WSFC)以最佳方式工作,您需要创建另一个Windows Server实例并将其放在与SQL Server实例相同的可用性集中。通过将其置于同一可用性集中,可确保每个群集节点和FSW位于不同的故障域中。因此,如果整个故障域脱机,确保您的群集保持在线。此实例不需要SQL Server。它可以是一个简单的Windows Server,因为它需要做的就是托管一个简单的文件共享。

此实例将托管WSFC所需的文件共享见证。此实例不需要具有相同的大小,也不需要附加任何其他磁盘。它的唯一目的是托管一个简单的文件共享。它实际上可以用于其他目的。在我的实验室环境中,我的FSW也是我的域控制器。

卸载SQL Server 2008 R2

配置的两个SQL Server实例中的每一个都已经安装了SQL Server 2008 R2。但是,它们作为独立的SQL Server实例安装,而不是群集实例。在我们安装集群实例之前,必须从每个实例中卸载SQL Server。最简单的方法是运行SQL安装程序,如下所示。

运行setup.exe / Action-RunDiscovery时,您将看到所有预安装的内容 

setup.exe / Action-RunDiscovery

运行setup.exe / Action =卸载/ FEATURES = SQL,AS,RS,IS,工具/ INSTANCENAME = MSSQLSERVER启动卸载过程

setup.exe / Action = Uninstall / FEATURES = SQL,AS,RS,IS,Tools / INSTANCENAME = MSSQLSERVER

运行setup.exe / Action-RunDiscovery确认卸载已完成

setup.exe / Action-RunDiscovery

在第二个实例上再次运行此卸载过程。

将实例添加到域

所有这三个实例都需要添加到Windows域中。

添加Windows故障转移群集功能

需要将故障转移群集功能添加到两个SQL Server实例中

Add-WindowsFeature故障转移 - 群集

关闭Windows防火墙

为简单起见,请在安装和配置SQL Server FCI期间关闭Windows防火墙。有关保护Azure资源的建议,请参阅Azure网络安全最佳实践。可以在此处找到所需Windows端口的详细信息,此处的SQL Server端口和此处的SIOS DataKeeper端口,我们稍后将配置的内部负载均衡器还需要端口59999访问。因此,请务必在安全配置中考虑到这一点。

NetSh Advfirewall设置allprofiles状态

安装Windows Server 2008 R2 SP1的Convenience Rollup更新

为了在Azure中配置Windows Server 2008 R2实例,需要进行关键更新(kb2854082)。该更新以及更多内容包含在Windows Server 2008 R2 SP1的便捷汇总更新中。在每个SQL Server实例上安装此更新。

格式化存储

配置两个SQL Server实例时附加的其他磁盘需要格式化。对每个实例上的每个卷执行以下操作。

微软最佳实践说如下……

“NTFS分配单元大小:格式化数据磁盘时,建议您对数据和日志文件以及TempDB使用64 KB的分配单元大小。”

运行群集验证

运行集群验证以确保一切准备好进行集群。

您的报告将包含有关存储和网络的警告。您可以忽略这些警告,因为我们知道没有共享磁盘,并且服务器之间只存在单个网络连接。您可能还会收到有关网络绑定顺序的警告,该警告也可以忽略。如果您遇到任何错误,您必须在继续之前解决这些错误。

创建群集

在Azure中创建集群的最佳实践是使用Powershell,如下所示。Powershell允许我们指定静态IP地址,而GUI方法则不允许。不幸的是,Azure的DHCP实现与Windows Server Failover Clustering不兼容。如果您使用GUI方法,您将使用重复的IP地址作为群集IP地址。这不是世界末日,但你需要在我展示时解决这个问题。

正如我所说,Powershell方法通常效果最好。但是,出于某种原因,它似乎在Windows Server 2008 R2上失败,如下所示。

New-Cluster -Name cluster1 -Node sql1,sql2 -StaticAddress 10.1.0.100 -NoStorage

您可以尝试这种方法,如果它适合您 – 太棒了!我需要回过头来再研究一下,看看它是不是侥幸。如果Powershell不工作,我需要探索的另一个选项是Cluster.exe。运行cluster / create /?使用不推荐使用的cluster.exe命令提供用于创建集群的正确语法。

但是,如果Powershell或Cluster.exe使您失败,则以下步骤说明了如何通过Windows Server Failover Clustering UI创建群集,包括修复将分配给群集的重复IP地址。

请记住,您在此处指定的名称只是群集名称对象(CNO)。这不是SQL客户端用于连接群集的名称;我们将在稍后的步骤中定义SQL Server群集设置期间。 

此时,已创建群集,但由于重复的IP地址问题,您可能无法使用Windows Server Failover Clustering UI连接到群集。

修复重复的IP地址

如前所述,如果使用GUI创建集群,则无法为集群选择IP地址。由于您的实例配置为使用DHCP(Azure中需要),因此GUI希望使用DHCP自动为您分配IP地址。遗憾的是,Azure的DHCP实现无法按预期工作,并且群集将分配其中一个节点已使用的相同地址。虽然群集将正确创建,但在解决此问题之前,您将很难连接到群集。

要解决此问题,请从其中一个节点运行以下命令,以确保在该节点上启动群集服务。

净启动clussvc / fq

在同一节点上,您现在应该能够连接到Windows Server Failover Clustering UI,在那里您将看到IP地址无法联机。

打开群集IP地址的属性并将其从DHCP更改为静态,并为其分配未使用的IP地址。

将Name资源联机

添加文件共享见证

接下来我们需要添加文件共享见证。在我们配置为FSW的第三台服务器上,创建一个文件夹并共享它,如下所示。您需要在共享和安全级别授予群集名称对象(CNO)读/写权限,如下所示。

创建共享后,在其中一个群集节点上运行“配置群集仲裁”向导,然后按照以下步骤操作。

为DataKeeper创建服务帐户

我们几乎准备好安装DataKeeper。但是,在我们这样做之前,您需要创建一个Domain帐户并将其添加到每个SQL Server群集实例上的Local Administrators组。我们将在安装DataKeeper时指定此帐户。

安装DataKeeper

在两个SQL Server群集节点中的每个节点上安装DataKeeper,如下所示。

这是我们将指定我们添加到每个本地域管理员组的域帐户的位置。

配置DataKeeper

在两个群集节点中的每个节点上安装DataKeeper后,即可配置DataKeeper。

注 – 以下步骤中遇到的最常见错误与安全性相关,通常由预先存在的Azure安全组阻止所需端口。请参阅SIOS文档以确保服务器可以通过所需的端口进行通信。

首先,您必须连接到两个节点中的每一个。

如果一切配置正确,您应该在“服务器概述”报告中看到以下内容。

接下来,创建一个新工作并按照下面说明的步骤

在此处选择“是”以在“可用存储”中注册DataKeeper卷资源

为每个卷完成上述步骤。完成后,您应该在Windows Server故障转移群集UI中看到以下内容。

您现在已准备好将SQL Server安装到群集中。

注 – 此时,只能在当前托管可用存储的节点上访问复制卷。这是预期的,所以不要担心!

在第一个节点上安装SQL Server

在第一个节点上,运行SQL Server安装程序。

选择“新建SQL Server故障转移群集安装”,然后按照说明执行操作。

只选择您需要的选项。 

请注意,本文档假定您使用的是SQL Server的默认实例。如果使用命名实例,则需要确保锁定其侦听的端口,并在配置负载平衡器时使用该端口。您还需要为SQL Server Browser服务(UDP 1434)创建负载平衡器规则,以便连接到命名实例。本指南不涉及这两个要求。但是,如果您需要命名实例,那么如果您执行这两个额外步骤,它将起作用。

在这里,您需要指定一个未使用的IP地址

转到“数据目录”选项卡并重定位数据和日志文件。在本指南的最后,我们将讨论将tempdb重定位到非镜像DataKeeper卷以获得最佳性能。现在,只需将其保留在其中一个群集磁盘上即可。

在第二个节点上安装SQL

在第二个节点上再次运行SQL Server安装程序。然后,选择“将节点添加到SQL Server故障转移群集”。

恭喜你,差不多完成了!但是,由于Azure缺乏对免费ARP的支持,我们需要配置内部负载均衡器(ILB)以协助客户端重定向,如以下步骤所示。

更新SQL群集IP地址

为了使ILB正常运行,必须从其中一个集群节点运行以下命令。SQL Cluster IP使SQL Cluster IP地址能够响应ILB运行状况探测,同时还将子网掩码设置为255.255.255.255,以避免IP地址与运行状况探测冲突。

cluster res <IPResourceName> / priv enabledhcp = 0 address = <ILBIP> probeport = 59999 subnetmask = 255.255.255.255

注意 – 我不知道它是不是侥幸。有时候我运行了这个命令,它看起来很有效,但它没有完成工作,我必须重新开始。我可以判断它是否有效的方法是查看SQL Server IP资源的子网掩码。如果它不是255.255.255.255那么你知道它没有成功运行。 它可能只是一个GUI刷新问题。请尝试重新启动群集GUI以验证子网掩码是否已更新。

成功运行后,使资源脱机并将其重新联机以使更改生效。

创建负载均衡器

最后一步是创建负载均衡器。在这种情况下,我们假设您正在运行SQL Server的默认实例,侦听端口1433。

创建负载均衡器时定义的专用IP地址将与SQL Server FCI使用的地址完全相同。

仅将两个SQL Server实例添加到后端池。不要将FSW添加到后端池。

在此负载平衡规则中,您必须启用浮动IP。

测试群集

最简单的测试是在被动节点上打开SQL Server Management Studio并连接到群集。恭喜!你连接时你做的一切都正确!如果你无法连接,不要害怕。我写了一篇博客文章来帮助解决问题。管理群集与管理传统共享存储群集完全相同。一切都通过故障转移群集管理器控制。

可选 – 重定位TempDB

为获得最佳性能,建议将tempdb移至本地非复制SSD。但是,SQL Server 2008 R2要求tempdb位于群集磁盘上。SIOS有一个称为非镜像卷资源的解决方案,可以解决这个问题。建议创建本地SSD驱动器的非镜像卷资源并在那里移动tempdb。请注意,本地SSD驱动器是非持久性的。您必须注意确保每次服务器重新启动时都会重新创建包含tempdb的文件夹和该文件夹的权限。

在创建本地SSD的非镜像卷资源后,请按照本文中的步骤重新定位tempdb。必须将该文章中描述的启动脚本添加到每个群集节点。

经Clusteringformeremortals.com许可转载

Filed Under: Datakeeper, 服务器集群简单化

具有新Azure ILB功能的多实例SQL Server故障转移群集

4月 14, 2019 by Jason Aw Leave a Comment

新的Azure ILB功能允许您构建多实例SQL Server故障转移群集

在今年9月的Microsoft Ignite上,微软围绕Azure发布了一些声明。其中一个公告是内部负载平衡器上的多个VIP的普遍可用性。为什么这对SQL Server DBA如此重要?好吧,到目前为止,如果要在Azure中部署高可用性SQL Server,则每个群集或单个可用性组侦听器仅限于一个SQL Server FCI。此限制强制您为要在故障转移群集中保护的每个SQL Server实例部署新群集。如果您希望在AlwaysOn AG配置中进行自动故障转移和客户端重定向,它还会强制您将所有数据库分组到单个可用性组中。

如何摆脱这些限制?

这些新的ILB功能现已解除了这些限制。在这篇文章中,我将引导您完成在Azure中部署包含两个SQL Server实例的SQL Server FCI的过程。在以后的文章中,我将引导您完成SQL Server AlwaysOn AG的相同过程。

让我们从多实例SQL Server故障转移群集开始

如我在Azure资源管理器中部署Microsoft SQL Server 2014故障转移群集的帖子中所述,在Azure中构建基本的单实例SQL Server FCI。该帖子描述了创建多实例SQL Server故障转移群集的过程。 使用DataKeeper创建群集中使用的复制卷资源,尝试创建内部负载平衡器(ILB),然后修复SQL Server群集IP资源以使用ILB。如果您想跳过该过程并快速启动配置,您可以始终使用Azure部署模板,使用SIOS DataKeeper创建双节点SQL Server FCI假设您现在有一个基本的双节点SQL Server FCI,添加第二个命名的步骤实例如下:

  1. 在另一个当前未使用的卷上创建另一个DataKeeper卷资源。如果没有可用卷,则可能需要向Azure实例添加其他磁盘。作为此卷创建过程的一部分,新的DataKeeper卷资源将在群集中的可用存储中注册。有关详细信息,请参阅前面引用的文章。
  2. 在第一个节点上安装SQL Server的命名实例,指定我们刚刚创建的DataKeeper卷作为存储位置。
  3. “添加节点”到第二个节点上的群集。
  4. 将此新命名实例的端口号锁定到未使用的端口。在我的例子中,我使用端口1440。

将ILB调整为第二个实例

接下来,我们必须调整ILB以将流量重定向到第二个实例。以下是您需要遵循的步骤:添加前端IP地址,该地址与您用于第二个SQL Server实例的SQL群集IP地址相同,如下所示。具有新Azure ILB功能的多实例SQL Server故障转移群集 接下来,我们将需要添加另一个探测,因为实例可以在不同的服务器上运行。如下图所示,我添加了一个探测端口59998(而不是通常的59999)的探测器。我们需要确保新规则引用此探针。我们还需要记住该端口号,因为我们需要在此过程的最后一步更新与此实例关联的IP地址。具有新Azure ILB功能的多实例SQL Server故障转移群集 现在我们需要向ILB添加两个新规则来引导目标为第二个SQL实例的流量。当然我们需要添加一个规则来重定向TCP端口1440(我用于SQL命名实例的端口),但由于我们现在使用的是命名实例,我们还需要一个端口来支持SQL Server Browser服务,UDP端口1434。在下面描述SQL Server Browser服务规则的图片中,请注意前端IP地址引用了新的FrontendIP地址(10.0.0.201),端口和后端端口的UDP端口1434。在池中,您需要指定群集中的两个服务器,最后确保选择刚刚创建的新Health Probe。具有新Azure ILB功能的多实例SQL Server故障转移群集 我们现在将添加TCP / 1440规则。如下图所示,为端口TCP 1440添加新规则,或为SQL Server的命名实例锁定的任何端口。同样,请务必选择新的FrontEnd IP地址和新的Health Probe(59998)。此外,请确保启用了浮动IP(直接服务器返回)。具有新Azure ILB功能的多实例SQL Server故障转移群集

最后一步

现在已配置负载均衡器,最后一步是运行PowerShell脚本以更新与此第二个SQL Server实例关联的新群集IP地址。此PowerShell脚本只需要在其中一个群集节点上运行。

#定义变量

$ ClusterNetworkName =“”

#群集网络名称 
(在更高版本的Windows Server 2012上使用Get-ClusterNetwork查找名称)

$ IPResourceName =“”

#SQL Server的第二个实例的IP地址资源名称

$ ILBIP =“”

#第二个SQL实例的IP地址,
它应该与新的前端IP地址相同

导入模块FailoverClusters

#如果您使用的是Windows Server 2012或更高版本:

Get-ClusterResource $ IPResourceName | 
Set-ClusterParameter -Multiple @ {Address = $ ILBIP; ProbePort = 59998;
子网掩码= “255.255.255.255” 网络= $ ClusterNetworkName; EnableDHCP时= 0}

#如果您使用的是Windows Server 2008 R2,请使用以下命令:

#cluster res $ IPResourceName / priv enabledhcp = 0 address = $ ILBIP probeport = 59998  
子网掩码= 255.255.255.255

您现在在Azure中拥有一个功能齐全的多实例SQL Server FCI。如果您有任何问题要构建具有从Clusteringformeremortals.com重现的新Azure ILB功能的多实例SQL Server故障转移群集

Filed Under: Datakeeper, 服务器集群简单化

具有新Azure ILB功能的多实例SQL Server故障转移群集

4月 14, 2019 by Jason Aw Leave a Comment

新的Azure ILB功能允许您构建多实例SQL Server故障转移群集

在今年9月的Microsoft Ignite上,微软围绕Azure发布了一些声明。其中一个公告是内部负载平衡器上的多个VIP的普遍可用性。为什么这对SQL Server DBA如此重要?好吧,到目前为止,如果要在Azure中部署高可用性SQL Server,则每个群集或单个可用性组侦听器仅限于一个SQL Server FCI。此限制强制您为要在故障转移群集中保护的每个SQL Server实例部署新群集。如果您希望在AlwaysOn AG配置中进行自动故障转移和客户端重定向,它还会强制您将所有数据库分组到单个可用性组中。

如何摆脱这些限制?

这些新的ILB功能现已解除了这些限制。在这篇文章中,我将引导您完成在Azure中部署包含两个SQL Server实例的SQL Server FCI的过程。在以后的文章中,我将引导您完成SQL Server AlwaysOn AG的相同过程。

让我们从多实例SQL Server故障转移群集开始

如我在Azure资源管理器中部署Microsoft SQL Server 2014故障转移群集的帖子中所述,在Azure中构建基本的单实例SQL Server FCI。该帖子描述了创建多实例SQL Server故障转移群集的过程。 使用DataKeeper创建群集中使用的复制卷资源,尝试创建内部负载平衡器(ILB),然后修复SQL Server群集IP资源以使用ILB。如果您想跳过该过程并快速启动配置,您可以始终使用Azure部署模板,使用SIOS DataKeeper创建双节点SQL Server FCI假设您现在有一个基本的双节点SQL Server FCI,添加第二个命名的步骤实例如下:

  1. 在另一个当前未使用的卷上创建另一个DataKeeper卷资源。如果没有可用卷,则可能需要向Azure实例添加其他磁盘。作为此卷创建过程的一部分,新的DataKeeper卷资源将在群集中的可用存储中注册。有关详细信息,请参阅前面引用的文章。
  2. 在第一个节点上安装SQL Server的命名实例,指定我们刚刚创建的DataKeeper卷作为存储位置。
  3. “添加节点”到第二个节点上的群集。
  4. 将此新命名实例的端口号锁定到未使用的端口。在我的例子中,我使用端口1440。

将ILB调整为第二个实例

接下来,我们必须调整ILB以将流量重定向到第二个实例。以下是您需要遵循的步骤:添加前端IP地址,该地址与您用于第二个SQL Server实例的SQL群集IP地址相同,如下所示。具有新Azure ILB功能的多实例SQL Server故障转移群集 接下来,我们将需要添加另一个探测,因为实例可以在不同的服务器上运行。如下图所示,我添加了一个探测端口59998(而不是通常的59999)的探测器。我们需要确保新规则引用此探针。我们还需要记住该端口号,因为我们需要在此过程的最后一步更新与此实例关联的IP地址。具有新Azure ILB功能的多实例SQL Server故障转移群集 现在我们需要向ILB添加两个新规则来引导目标为第二个SQL实例的流量。当然我们需要添加一个规则来重定向TCP端口1440(我用于SQL命名实例的端口),但由于我们现在使用的是命名实例,我们还需要一个端口来支持SQL Server Browser服务,UDP端口1434。在下面描述SQL Server Browser服务规则的图片中,请注意前端IP地址引用了新的FrontendIP地址(10.0.0.201),端口和后端端口的UDP端口1434。在池中,您需要指定群集中的两个服务器,最后确保选择刚刚创建的新Health Probe。具有新Azure ILB功能的多实例SQL Server故障转移群集 我们现在将添加TCP / 1440规则。如下图所示,为端口TCP 1440添加新规则,或为SQL Server的命名实例锁定的任何端口。同样,请务必选择新的FrontEnd IP地址和新的Health Probe(59998)。此外,请确保启用了浮动IP(直接服务器返回)。具有新Azure ILB功能的多实例SQL Server故障转移群集

最后一步

现在已配置负载均衡器,最后一步是运行PowerShell脚本以更新与此第二个SQL Server实例关联的新群集IP地址。此PowerShell脚本只需要在其中一个群集节点上运行。

#定义变量

$ ClusterNetworkName =“”

#群集网络名称 
(在更高版本的Windows Server 2012上使用Get-ClusterNetwork查找名称)

$ IPResourceName =“”

#SQL Server的第二个实例的IP地址资源名称

$ ILBIP =“”

#第二个SQL实例的IP地址,
它应该与新的前端IP地址相同

导入模块FailoverClusters

#如果您使用的是Windows Server 2012或更高版本:

Get-ClusterResource $ IPResourceName | 
Set-ClusterParameter -Multiple @ {Address = $ ILBIP; ProbePort = 59998;
子网掩码= “255.255.255.255” 网络= $ ClusterNetworkName; EnableDHCP时= 0}

#如果您使用的是Windows Server 2008 R2,请使用以下命令:

#cluster res $ IPResourceName / priv enabledhcp = 0 address = $ ILBIP probeport = 59998  
子网掩码= 255.255.255.255

您现在在Azure中拥有一个功能齐全的多实例SQL Server FCI。如果您有任何问题要构建具有从Clusteringformeremortals.com重现的新Azure ILB功能的多实例SQL Server故障转移群集

Filed Under: Datakeeper, 服务器集群简单化

  • « Previous Page
  • 1
  • …
  • 64
  • 65
  • 66
  • 67
  • 68
  • …
  • 100
  • Next Page »

最近的帖子

  • 在 Nutanix 环境中选择高可用性解决方案的 10 个注意事项
  • 我的服务器是一次性的吗?高可用性软件如何融入云最佳实践
  • 灾难频发世界的数据恢复策略
  • DataKeeper 和棒球:灾难恢复的战略举措
  • SQL Server 停机风险预算

最热门的帖子

加入我们的邮件列表

Copyright © 2025 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in