SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

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

配置SQL Server故障轉移群集實例在Microsoft Azure IAAS中

Date: 9 3 月, 2018

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

7/19/2016更新 – 以下步驟描述了Azure“Classic”中的部署。 如果您要在Azure資源管理器(ARM)中部署SQL群集,那麼您應該在這裡看到我的文章。 https://clusteringformeremortals.com/2016/04/23/deploying-microsoft-sql-server-2014-failover-clusters-in-azure-resource-manager-arm/

在開始之前,我們將假設您至少對故障轉移群集和Microsoft Azure略為熟悉,並且已經註冊了Azure帳戶。在整個分步指南中,我們將參考其他資源以進行額外閱讀。本指南包含屏幕截圖和代碼示例。Azure是一種快速發展的產品,因此您的體驗可能與所描述的不同。但是你應該能夠根據需要進行調整和調整。隨著時間的推移,我會盡力讓本文保持最新狀態。在撰寫本文時,新的Azure門戶仍處於預覽階段。因此,我們將在所有示例中使用當前支持的門戶以及PowerShell。

在高層次上,為了在Azure IaaS上創建高度可用的SQL Server部署,需要採取以下步驟。如果您已經在Azure IaaS中擁有一個正在運行的域,則可以跳過項目1-3。

我們將仔細研究下面的每個步驟。

  • 創建您的虛擬網絡
  • 創建一個雲服務
  • 創建存儲帳戶
  • 創建您的Azure虛擬機和存儲
  • 配置Active Directory
  • 創建一個群集
  • 創建複製群集卷資源
  • 將SQL安裝到群集中
  • 創建一個內部負載平衡器
  • 更新客戶端偵聽器

概觀

這些說明假定您希望完全在一個Azure區域內創建高度可用的SQL Server部署。完全有可能在Azure中配置跨越不同地理區域的SQL Server群集,甚至可以配置從內部部署到Azure Cloud的混合雲配置,反之亦然。我不打算在本文檔中涵蓋這些類型的配置。相反,我將關注配置的配置如圖1所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中
圖1 – Azure中的SQL Server故障轉移群集

本文將介紹如何創建跨越Azure區域中兩個不同的故障域和更新域的群集。跨越不同的故障域消除了與計劃外停機相關的停機時間。跨越不同的更新域可以消除與計劃停機時間相關的故障。

有關其他概述信息,您可能想要觀看我在SQLTIPS上做的網絡研討會,詳細討論了這個主題。可以在http://www.mssqltips.com/sql-server-video/360/highly-available-sql-server-cluster-deployments-in-azure-iaas/上查看它。

創建您的虛擬網絡

為了實現這個目標,您需要在虛擬網絡中擁有所有虛擬機。創建虛擬網絡非常簡單。下面的屏幕截圖應該有助於指導您完成整個過程。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

此時我想添加8.8.8.8的Google DNS服務器地址。嘗試使用默認DNS服務器從Microsoft下載更新時,我遇到了奇怪的連接問題。在我們下載完所有這些服務器所需的更新後,我們將返回並用AD控制器的IP地址替換DNS服務器的IP地址。但現在,添加8.8.8.8,並且在此虛擬網絡中供應的所有虛擬機都將通過DHCP服務將其作為DNS服務器接收。此論壇帖子描述了我沒有添加此DNS服務器條目時遇到的問題。在將所有服務器添加到域之前,我發現您需要刪除此8.8.8.8地址並將其替換為您創建的第一個域控制器的IP地址。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

你會看到我在這個虛擬網絡中創建了一個子網,並將其標記為Public。稍後當我們創建我們的虛擬機時,我們將使用公共網絡。儘管Azure最近添加了對每個虛擬機多個NIC的支持,但我發現將多個子網和NIC添加到Azure虛擬機可能會產生問題。主要問題是每個NIC都會自動分配一個網關地址,由於在同一台服務器上定義了多個網關,可能會導致路由問題。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建虛擬網絡需要幾分鐘的時間。

創建一個雲服務

您的虛擬機將全部駐留在相同的“Cloud Service”中。祝您找到Azure“雲服務”的定義,因為Azure整體上是“雲服務”。但是,這是您在開始部署VM之前需要創建的特定於Azure IaaS的特定思路。下面的屏幕截圖將引導您完成整個過程。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

確保將Cloud Service放置在與虛擬網絡相同的地區。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建存儲帳戶

在開始配置VM之前,您必須創建一個存儲帳戶。按照以下步驟創建存儲帳戶。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

確保您在與虛擬網絡相同的位置創建存儲帳戶

創建您的Azure VMS和存儲

如果您尚未下載並安裝Azure PowerShell,請立即執行此操作。此外,請確保您設置您的默認訂閱和CurrentStorageAccountName。

我們將開始配置第一台將成為域控制器(DC)的VM。在我們的例子中,我們也將DC用作文件共享見證,因此我們將創建一個可用性集,其中包含域控制器和集群中的兩個節點。以下是一個示例腳本,它將創建VM並為其分配“靜態地址”。

$ AVSet =“SQLHA”

$ InstanceSize =“大”

$ VMNAME =“DC1”

$ AdminName =“myadminaccount”

$ ADMINPASSWORD =“輸入mypassword”

$ PrimarySubnet =“公共”

$ PRIMARYIP =“10.0.0.100”

$ CloudService =“SQLFailover”

$ VirtualNetwork =“Azure的東”

$ ImageName =“a699494373c04fc0bc8f2bb1389d6106__Windows-服務器-2012-R2-201412.01-en.us-127GB.vhd”

$ image = Get-AzureVMImage -ImageName $ ImageName

$ vm = New-AzureVMConfig -Name $ VMName -InstanceSize $ InstanceSize -Image $ image.ImageName -AvailabilitySetName $ AVSet

Add-AzureProvisioningConfig -VM $ vm -Windows -AdminUserName $ AdminName -Password $ AdminPassword

Set-AzureSubnet -SubnetNames $ PrimarySubnet -VM $ vm

Set-AzureStaticVNetIP -IPAddress $ PrimaryIP -VM $ vm

New-AzureVM -ServiceName $ CloudService -VNetName $ VirtualNetwork -VM $ vm

技術說明 – 我說“靜態IP地址”,但它只是創建一個DHCP“請求”。我把它稱為DHCP“Request”而不是“Reservation”,因為它只是一個盡力而為的請求。如果此服務器處於脫機狀態並且某人啟動了新服務器,則DHCP服務器可以將此地址分發給其他人,使其在此服務器處於開啟狀態時不可用。

一旦創建了第一個VM,就可以創建群集中使用的兩個SQL VM。您會看到我試圖通過允許您指定不同的變量來使腳本易於使用。我強調了需要為每個虛擬機更改的變量。

$ AVSet =“SQLHA”

$ InstanceSize =“大”

$ VMNAME =“SQL1”

$ AdminName =“myadminaccount”

$ ADMINPASSWORD =“P @ 55w0rd”

$ PrimarySubnet =“公共”

$ PRIMARYIP =“10.0.0.101”

$ CloudService =“SQLFailover”

$ VirtualNetwork =“Azure的東”

$ ImageName =“a699494373c04fc0bc8f2bb1389d6106__Windows-服務器-2012-R2-201412.01-en.us-127GB.vhd”

$ image = Get-AzureVMImage -ImageName $ ImageName

$ vm = New-AzureVMConfig -Name $ VMName -InstanceSize $ InstanceSize -Image $ image.ImageName -AvailabilitySetName $ AVSet

Add-AzureProvisioningConfig -VM $ vm -Windows -AdminUserName $ AdminName -Password $ AdminPassword

Set-AzureSubnet -SubnetNames $ PrimarySubnet -VM $ vm

Set-AzureStaticVNetIP -IPAddress $ PrimaryIP -VM $ vm

New-AzureVM -ServiceName $ CloudService -VNetName $ VirtualNetwork -VM $ vm

再次運行腳本以配置第二個群集節點

$ AVSet =“SQLHA”

$ InstanceSize =“大”

$ VMNAME =“SQL2”

$ AdminName =“myadminaccount”

$ ADMINPASSWORD =“輸入mypassword”

$ PrimarySubnet =“公共”

$ PRIMARYIP =“10.0.0.102”

$ CloudService =“SQLFailover”

$ VirtualNetwork =“Azure的東”

$ ImageName =“a699494373c04fc0bc8f2bb1389d6106__Windows-服務器-2012-R2-201412.01-en.us-127GB.vhd”

$ image = Get-AzureVMImage -ImageName $ ImageName

$ vm = New-AzureVMConfig -Name $ VMName -InstanceSize $ InstanceSize -Image $ image.ImageName -AvailabilitySetName $ AVSet

Add-AzureProvisioningConfig -VM $ vm -Windows -AdminUserName $ AdminName -Password $ AdminPassword

Set-AzureSubnet -SubnetNames $ PrimarySubnet -VM $ vm

Set-AzureStaticVNetIP -IPAddress $ PrimaryIP -VM $ vm

New-AzureVM -ServiceName $ CloudService -VNetName $ VirtualNetwork -VM $ vm

您會發現每個這些虛擬機都放置在同一個可用性集中,我稱之為“SQLHA”。通過將虛擬機放置在相同的可用性集中,可以利用此處所述的故障域和更新域。 http://blogs.technet.com/b/yungchou/archive/2011/05/16/window-azure-fault-domain-and-update-domain-explained-for-it-pros.aspx

一旦你創建了你的虛擬機,你的Azure Portal應該看起來像這樣。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

關於故障域的智慧的話

故障域是一個很好的概念;但是微軟不保證(截至2015年1月),您將每個可用性集總是獲得三個故障域。事實上,大多數時候我只有兩個故障域。如果最後只有兩個故障域,你會考慮將你的文件共享見證放在不同的區域,以便100%確定你的群集投票沒有​​大部分坐在同一個機架上。一旦Windows Server 10成為GA,這將不再是一個問題,因為您將能夠使用Cloud Witness而不是File Share Witness。如果您希望看到三個故障域名作為標準,請在Azure idea網站上點擊此鏈接並提出該觀點的投票。

配置Active Directory

首先我們將通過RDP連接到DC1並啟用活動目錄。使用“連接”按鈕將RDP連接下載到DC1。使用您在創建Azure VM時指定的用戶名和密碼。將DC1升級到域控制器。

內幕提示 – 我還發現,如果您移除DNS服務器上的所有DNS轉發器並且只使用根提示,則DNS解析工作效果最佳。如果您使用他們的DNS服務器,AZURE有時可能會解決微軟網絡性能問題。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中
圖2 – 刪除所有轉發器以獲得可靠的名稱解析

創建一個群集

將DC1配置為域控制器後,您將連接到SQL1和SQL2並將它們添加到域中。但是,在執行此操作之前,需要將虛擬網絡的DNS服務器更改為DC1服務器(10.0.0.100)的DNS服務器,然後重新啟動SQL1和SQL2。一旦SQL1和SQL2擁有100.0.0.100作為他們的DNS服務器,您將能夠加入域。

一旦您加入到域中,您將必須完成以下說明的步驟才能創建SQL Server故障轉移群集實例(FCI)。

首先,在每個節點上啟用.Net 3.5 Framework。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

如果您發現無法安裝.Net Framework,請參閱我的有關DNS的提示。

啟用故障轉移群集

現在.NET 3.5已啟用,您需要在SQL1和SQL2上啟用故障轉移群集功能。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

驗證

一旦啟用了群集功能,您將需要創建群集。第一步是運行集群驗證。我假設你熟悉集群,所以我只會發布一些屏幕截圖並記下你需要考慮的事情。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

驗證將完成,但會有一些警告。大多數警告將圍繞存儲。您可以忽略這些,因為我們將使用複制存儲而不是共享磁盤。另外,您可能會收到關於網絡的警告。您也可以忽略該警告,因為我們知道Azure在物理層內置了網絡冗餘。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建集群接入點

11/24/2015更新 – 我發現通過Powershell創建集群避免了以下GUI步驟中描述的所有這些問題,因為您可以將集群的IP地址指定為創建過程的一部分。下面的兩個PowerShell命令替換本節後面的GUI屏幕截圖中顯示的所有步驟。確保StaticIaddress參數

測試群集節點服務器1,服務器2

New-Cluster -Name MyCluster -Node Server1,Server2 -StaticAddress 10.0.0.200

如果你運行了上面的Powershell腳本,那麼你可以跳過本節的其餘部分,直接跳到下一節創建文件共享見證。

我建議創建單擊完成以啟動群集創建過程。首先為群集選擇一個名稱。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

如果您點擊查看報告,您會看到有一些警告。您可以忽略該警告,因為我們將創建一個文件共享見證。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

群集創建後,您可能會收到以下消息。“操作”驗證配置…“沒有完成。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

修復集群接入點IP地址

這裡的根本問題是由於IP地址衝突,群集沒有正確解析群集名稱。你會發現Azure DHCP實際上給你剛創建的集群計算機對象提供了一個重複的IP地址。這只是您需要處理的奇怪Azure特性之一,如下所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

您可能需要在SQL2上打開故障轉移群集GUI才能進行連接。一旦能夠連接到群集,您將看到群集獲取了與其中一個群集節點相同的IP地址。這當然會導致IP地址衝突。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

我們需要做的是將10.0.0.102 IP地址更改為此子網中未使用的另一個IP地址。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

你會看到我選擇10.0.0.200作為我的地址。該地址不在DHCP範圍內保留,因為目前沒有辦法控制DHCP範圍或添加預留。我只是在DHCP範圍的上端選擇一個地址,並確保我沒有在該子網內配置足夠的虛擬機來達到該IP地址。

現在,群集IP地址已修復,您將能夠使用任一節點上的故障轉移群集管理器連接到群集。

創建文件共享見證

接下來,我們將為群集仲裁創建一個文件共享見證。有關群集仲裁的完整說明,請閱讀我在MSDN上的博客文章,http://blogs.msdn.com/b/microsoft_press/archive/2014/04/28/from-the-mvps-understanding-the-windows-server -failover-集群定額功能於Windows的服務器-2012-r2.aspx

文件共享見證將在域控制器上創建。基本上,您需要在DC1上創建文件共享,並為群集計算機帳戶“sioscluster”提供讀/寫權限。確保如下所示對共享和安全權限進行這些更改。

以下步驟在DC1上完成。

新建一個文件夾。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

確保搜索計算機對象並選擇群集計算機對象名稱,在我們的示例中為SIOSCLUSTER

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

確保你給它更改權限。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

您還需要更改安全性以允許群集計算機對象修改文件夾的權限。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建共享文件夾後,您將在任一節點上使用Windows Server故障轉移群集界面添加文件共享見證,如下所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

安裝DataKeeper

需要來自SIOS Technology的DataKeeper Cluster Edition才能提供複製和集群集成,這將允許您構建無共享存儲的故障轉移群集實例。首先,您將在群集的兩個節點上安裝DataKeeper Cluster Edition。執行如下所示的設置。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

出於演示目的,我使用了域管理員帳戶。唯一的要求是所用的用戶帳戶位於每台服務器的本地管理員組中。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建一個DataKeeper卷資源

在每個群集節點(SQL1和SQL2)上安裝軟件後,即可準備創建第一個複製卷資源。在任一節點上啟動DataKeeper GUI,並按照以下步驟創建DataKeeper卷資源。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

連接到兩台服務器後,單擊服務器概覽報告。它應該如下所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

您會注意到您已連接到兩台服務器,但沒有列出任何卷。接下來,我們需要為每個群集節點添加額外的存儲。通過Azure門戶執行此操作,如下所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

在為每個虛擬機添加額外卷並創建了格式化分區後,DataKeeper GUI應該如圖所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

現在可以啟動“創建作業嚮導”並創建DataKeeper卷資源,如下所示。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建作業,並給它一個名稱和可選的描述。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

將SQL安裝到群集中

現在您已經配置了集群並且在可用存儲中安裝了DataKeeper卷,您可以開始安裝SQL Server集群了。該過程與使用共享存儲安裝SQL Server故障轉移群集實例的過程完全相同。由於DataKeeper Replicated Volume資源是一個存儲類資源,因此故障轉移群集將其視為物理磁盤資源。按照下面的步驟將SQL Server安裝到群集中。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

您可以使用SQL Server 2014 Standard Edition構建2節點故障轉移群集。在這種情況下,DataKeeper也可以將數據複製到第三個節點,但該節點不能成為集群的一部分。如果要創建3+節點群集,則需要使用SQL Server 2014 Enterprise Edition。SQL的早期版本也可以很好地工作。我已經通過SQL 2014測試了SQL 2008。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

在單擊下一步之前,單擊數據目錄選項卡。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

一旦SQL安裝在第一個節點上,您將需要在第二個節點上運行安裝。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

創建一個內部負載平衡器

一旦配置了集群,您將需要創建將用於所有客戶端訪問的內部負載均衡器(ILB)。連接到SQL Server的客戶端需要連接到ILB,而不是直接連接到群集IP地址。如果此時嘗試直接連接群集,則會看到無法從任何遠程系統連接到群集。即使SQL Server Management Studio也不能直接連接到群集。

從本地桌面運行此Powershell命令以創建您的內部負載均衡器(ILB)。

#定義變量

$ IP =“10.0.0.201”#希望內部負載平衡器使用的IP地址,它應該與您的SQL Server群集IP地址

$ svc =“SQLFailover”#您的雲服務的名稱

$ vmname1 =“sql1”#是您的第一個群集節點的VM的名稱

$ epname1 =“sql1”#這是您要分配給與第一個群集節點關聯的端點的名稱,使用任何您喜歡的

$ vmname2 =“sql2”#是第二個群集節點的VM的名稱

$ epname2 =“sql2”#這是您想要分配給與第二個群集節點關聯的端點的名稱,使用任何您喜歡的

$ lbsetname =“ilbsetsqlha”#使用任何你喜歡的名字,這個名字是不重要的

$ PROT =“TCP”

$ locport = 1433

$ pubport = 1433

$ probeport = 59999

$ ilbname =“sqlcluster”#this是您的客戶端連接的名稱,它應該與您一致SQL集群名稱資源

$ subnetname =“Public”#您希望內部負載均衡器存活的Azure子網名稱

#將內部負載均衡器添加到服務

Add-AzureInternalLoadBalancer -InternalLoadBalancerName $ ilbname -SubnetName $ subnetname -ServiceName $ svc -StaticVNetIPAddress $ IP

#將負載均衡端點添加到主群集節點

Get-AzureVM -ServiceName $ svc -Name $ vmname1 | Add-AzureEndpoint -Name $ epname1 -LBSetName $ lbsetname -Protocol $ prot -LocalPort $ locport -PublicPort $ pubport -ProbePort $ probeport -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -DirectServerReturn $ true -InternalLoadBalancerName $ ilbname |更新AzureVM

#將負載均衡端點添加到輔助群集節點

Get-AzureVM -ServiceName $ svc -Name $ vmname2 | Add-AzureEndpoint -Name $ epname2 -LBSetName $ lbsetname -Protocol $ prot -LocalPort $ locport -PublicPort $ pubport -ProbePort $ probeport -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -DirectServerReturn $ true -InternalLoadBalancerName $ ilbname |更新AzureVM

假設腳本按計劃運行,您應該看到以下輸出。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

 

更新客戶端偵聽器

一旦創建了內部負載均衡器,我們將需要在SQL1上運行Powershell腳本來更新SQL Server群集IP地址。該腳本引用群集網絡名稱和IP資源名稱。下面的圖片顯示您在故障轉移群集管理器中找到這兩個名稱。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

下面的腳本應該在其中一個集群節點上運行。確保使用以管理員身份運行啟動Powershell ISE。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

#在創建內部負載均衡器後,應在主群集節點上運行此腳本

#定義變量

$ ClusterNetworkName =“集群網絡1”#集群網絡名稱

$ IPResourceName =“SQL IP地址1(sqlcluster)”#IP地址資源名稱

$ CloudServiceIP =“10.0.0.201”#您的內部負載均衡器的IP地址

導入模塊故障轉移群集

#如果您使用的是Windows 2012或更高版本,請使用Get-Cluster Resource命令。如果您使用的是Windows 2008 R2,請使用註釋掉的cluster res命令。

Get-ClusterResource $ IPResourceName | Set-ClusterParameter -Multiple @ {“Address”=“$ CloudServiceIP”;“ProbePort”=“59999”;
子網掩碼=“255.255.255.255”;“網絡”=“$ ClusterNetworkName”;
“OverrideAddressMatch”= 1;“EnableDHCP時”= 0}

#cluster res $ IPResourceName / priv enabledhcp = 0 overrideaddressmatch = 1 address = $ CloudServiceIP probeport = 59999 subnetmask = 255.255.255.255

假設您的腳本按預期運行,輸出應如下所示。您會看到,為了應用更改,您需要將群集資源脫機一次,然後將其聯機。

分步說明:如何配置SQL Server故障轉移群集實例(FCI)在Microsoft Azure IaaS中

火牆

每個服務器的防火牆上打開TCP端口59999,1433和1434。

概要

既然已創建群集,則可以使用名稱sqlcluster或直接連接到10.0.0.201,通過內部負載均衡器連接到SQL故障轉移群集實例。

查找有關SQL Server故障轉移群集實例的文章有用,請閱讀我們的其他博客文章。

經Clusteringformeremortal許可轉載

 

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