Date: 14 2 月, 2021
標籤: SQL Server故障轉移群集實例
使用Amazon FSX進行SQL Server故障轉移群集實例-您需要了解的知識!
如果您正在考慮在AWS EC2中部署自己的Microsoft SQL Server實例,則需要就解決方案的彈性做出一些決策。 當然,如果您在不同的可用區域中部署兩個或更多實例,AWS將為您的Compute資源提供99.99%的SLA。 但不要上當,在計算真正的應用程序可用性時,還需要考慮許多其他因素。 我最近在博客上發表了有關如何在雲中計算應用程序可用性的博客。 在繼續之前,您可能應該快速閱讀該文章。
在確保Microsoft SQL Server實例高度可用時,它實際上可以歸結為兩個基本選擇:始終可用性組(AG)或SQL Server故障轉移群集實例(FCI)。 如果您正在閱讀本文,則假定您對這兩個選項都非常了解,並正在認真考慮使用SQL Server故障轉移群集實例而不是SQL Server Always On AG。
Microsoft SQL Server故障轉移群集實例的好處
以下列表總結了AWS所說的是SQL Server FCI的優點:
當以下是您使用案例的優先考慮因素時,對於SQL Server高可用性部署,FCI通常比AG更可取:
許可證成本效率:運行AG所需的是SQL Server的企業版許可證,而運行FCI的僅需Standard Edition許可證。 它通常比企業版便宜50–60%。 儘管您可以從SQL Server 2016開始在Standard Edition上運行AG的基本版本,但它的局限性在於每個AG僅支持一個數據庫。 在處理需要多個數據庫(例如SharePoint)的應用程序時,這可能成為一個挑戰。
實例級保護與數據庫級保護:使用FCI,可以保護整個實例-如果主節點不可用,則將整個實例移到備用節點。 這將照顧存儲在系統數據庫中的SQL Server登錄名,SQL Server代理作業,證書等,這些數據庫實際上存儲在共享存儲中。 另一方面,使用AG,只能保護組中的數據庫,並且不能將系統數據庫添加到AG中-僅允許用戶數據庫。 數據庫管理員負責將更改複製到所有AG副本上的系統對象。 這留下了人為錯誤的可能性,導致數據庫無法被應用程序訪問。
DTC功能支持:如果您使用的是SQL Server 2012或2014,並且您的應用程序使用分佈式事務處理協調器(DTC),則您將無法使用AG,因為它不受支持。 在這種情況下,請使用FCI。
雲中FCI面臨的挑戰
當然。 建立跨越可用性區域的FCI的挑戰是缺少通常需要的共享存儲設備。 因為群集的節點分佈在多個數據中心,所以傳統的SAN對於共享存儲來說不是可行的選擇。 這為集群存儲留出了兩個選擇:第三方存儲類資源,例如SIOS DataKeeper或新的Amazon FSx。
讓我們來看看您做出選擇之前需要了解的內容。
服務水平協議
正如我在如何計算應用程序可用性中所寫的那樣,您的整體應用程序SLA僅與最弱的鏈接一樣好。 在這種情況下,FSx SLA為99.9%。
通常99.99%的可用性代表著“高可用性”的起點。 這是當兩個或多個部署在不同的可用區域中時,AWS向您承諾的計算資源。
萬一您不知道三個九與四個九之間的區別…
- 99.9%的可用性每月允許停機43.83分鐘
- 99.99%的可用性每月僅允許停機4.38分鐘
儘管您具有99.99%的計算可用性,但是通過將群集存儲託管在FSx上,您的整體應用程序可用性將達到99.9%。 相比之下,跨越可用性區域的EBS卷(例如在DataKeeper部署中)在存儲和計算層均符合99.99%的SLA。 這意味著您的整體應用程序可用性為99.99%。
存儲位置
為高可用性配置FSx時,您將需要啟用多可用區支持。 通過啟用多可用區,您可以有效地擁有“首選”可用區和“備用”可用區。 部署SQL Server FCI節點時,您將希望將這些節點分佈在相同的可用區中。
現在,在正常情況下,您將需要確保活動群集節點與首選FSx存儲節點位於相同的可用區中。 這是為了最大程度地減少存儲距離和延遲。 而且還可以最大程度地減少與跨可用區進行數據傳輸相關的成本。 根據FSx價格指南中的規定,“標準數據傳輸費適用於AZ之間或區域間對文件系統的訪問。”
在不幸的情況下,如果您遇到SQL Server FCI故障,但沒有FSx故障,則沒有將存儲和計算結合在一起的機制。 如果FSx進行故障轉移,它將自動故障恢復到主要可用性區域。 但是,最佳實踐指示SQL FCI仍在輔助節點上運行,直到執行根本原因分析並且通常計劃在維護期間進行故障回复。 這使您處於存儲位於其他可用區的情況,這將產生額外的費用。 當前,跨可用區和入口的數據傳輸成本為$ 0.01 / GB。
如果不密切關注FSx和SQL Server FCI的狀態,您甚至可能都不知道它們在不同的區域中運行,直到您在月底看到數據傳輸費用為止。
相反,在使用SIOS DataKeeper的配置中,存儲故障轉移是SQL Server FCI恢復的一部分,從而確保存儲始終通過SQL Server實例進行故障轉移。 這樣可以確保SQL Server始終在讀寫直接連接到活動節點的EBS卷。 請記住,DataKeeper將產生與在AZ或區域之間複製的寫操作相關的數據傳輸成本。 通過使用DataKeeper中可用的壓縮,可以將這種數據傳輸成本降到最低。
控制故障轉移
在FSx多子網配置中,存在首選的可用性區域和備用可用性。 如果首選可用性區域中的FSx文件服務器出現故障,備用AZ中的文件服務器將恢復。 AWS報告說,使用標準共享時,此恢復時間大約需要30秒。 通過使用連續可用的文件共享,Microsoft報告此故障轉移時間可以接近15秒。 在此故障轉移時間內,將在讀取和寫入暫停的情況下發生電源不足,但是一旦恢復完成,該電源將繼續。
FSx多站點已啟用自動故障回复。 這意味著,對於FSx的每個計劃外故障轉移,您還將具有計劃外的故障回复。 相反,通常,當SQL Server FCI經歷計劃外的故障轉移時,您要么只是使其在輔助服務器上運行,要么計劃在幾個小時後或下一個維護期間進行故障回复。
FSX不支持SQL Server Analysis Services群集
如果要群集SSAS,則需要群集磁盤資源,例如SIOS DataKeeper。 如何群集SQL Server Analysis Server白皮書明確指出無法使用SMB,並且必須使用帶驅動器號的群集驅動器。 相反,DataKeeper卷資源將其自身顯示為群集磁盤,並且可以與SSAS一起使用。
概括
雖然FSx對於Windows用戶文件和其他非關鍵服務等典型的SMB使用肯定是有意義的,其中SLA滿足99.9%的可用性,但如果您的應用程序要求高可用性(99.99%)或還具有高可用性的HA / DR解決方案,則FSx是一個不錯的選擇區域,SIOS DataKeeper是正確的選擇。