Date: 15 2 月, 2018
標籤: Windows Server 2012
使用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
添加此額外卷後,您需要打開每個VM並使用“磁盤管理”來初始化和格式化卷。為了演示的目的,我們將把這個卷格式化為“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地址進行引導,該地址指定本地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/許可轉載