Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體
本文介紹在 Azure 虛擬機器 (VM) 上使用 SQL Server 容錯移轉叢集執行個體 (FCI) 時的功能差異。
若要開始使用,請確保您的 VM 已做好準備。
概觀
Azure VM 上的 SQL Server 會使用 Windows Server 容錯移轉叢集 (WSFC) 功能,透過伺服器執行個體層級的備援來提供本機高可用性:容錯移轉叢集執行個體。 FCI 是安裝在所有 WSFC (或僅在叢集) 節點上 (而且可能跨多個子網路) 的單一 SQL Server 執行個體。 在網路上,FCI 看起來就像是在單一電腦上執行的單一 SQL Server 執行個體。 但是,如果目前的節點變得無法使用,FCI 就會提供從一個 WSFC 節點容錯移轉到另一個節點的服務。
本文其餘部分著重於容錯移轉叢集執行個體與 Azure VM 上的 SQL Server 搭配使用時的差異。 若要深入了解容錯移轉叢集技術,請參閱:
注意
現在使用 Azure Migrate 可將容錯移轉叢集執行個體解決方案隨即轉換至 Azure VM 上的 SQL Server。 若要深入了解,請參閱移轉容錯移轉叢集執行個體。
Quorum
Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體支援使用磁碟見證、雲端見證或檔案共用見證來進行叢集仲裁。
若要深入了解,請參閱 Azure 中 SQL Server VM 的仲裁最佳做法。
儲存體
在傳統的內部部署叢集環境中,Windows 容錯移轉叢集使用所有節點都可存取的存放區域網路 (SAN) 作為共用儲存體。 SQL Server 檔案裝載在共用儲存體上,而且每次只有使用中的節點才能存取檔案。
Azure VM 上的 SQL Server 提供各種選項,作為用來部署 SQL Server 容錯移轉叢集執行個體的共用儲存體解決方案:
Azure 共用磁碟 | 進階檔案共用 | 儲存空間直接存取 (S2D) | Azure 彈性 SAN | |
---|---|---|---|---|
作業系統最低版本 | 全部 | Windows Server 2012 | Windows Server 2016 | Windows Server 2022 |
最低 SQL Server 版本 | 全部 | SQL Server 2012 | SQL Server 2016 | SQL Server 2022 |
支援的 VM 可用性 | 進階 SSD LRS:具有或不含鄰近放置群組的可用性設定組 進階 SSD ZRS:可用性區域 Ultra 磁碟:相同的可用性區域 |
可用性設定組與可用性區域 | 可用性設定組 | 可用性區域 |
支援 FileStream | 是 | 無 | .是 | No |
支援 MSDTC | 是 | 無 | 無 | No |
本節其餘部分列出 Azure VM 上 SQL Server 可用的每個儲存體選項有何優點和限制。
Azure 共用磁碟
Azure 共用磁碟是 Azure 受控磁碟的功能。 Windows Server 容錯移轉叢集支援將 Azure 共用磁碟與容錯移轉叢集執行個體搭配使用。
支援的 OS:全部
支援的 SQL 版本:全部
優點:
- 可用於想要遷移至 Azure 的應用程式,同時讓其保持原本的高可用性和災害復原 (HADR) 架構。
- 可以將叢集應用程式原封不動地遷移至 Azure,因為其支援 SCSI 持續保留 (SCSI PR)。
- 支援共用的 Azure 進階 SSD 和 Azure Ultra 磁碟儲存體。
- 可使用單一共用磁碟或等量分割多個共用磁碟來建立共用存放集區。
- 支援 FILESTREAM。
- 進階 SSD 支援可用性設定組。
- 進階 SSD 區域備援儲存體 (ZRS) 支援可用性區域。 FCI 的 VM 組件可放置在不同的可用性區域中。
- 從 Windows Server 2019 開始,支援 Microsoft Distributed Transaction Coordinator (MSDTC)。
注意
雖然 Azure 共用磁碟也支援標準 SSD 大小,但由於效能限制,我們不建議針對 SQL Server 工作負載使用標準 SSD。
限制:
- 不支援進階 SSD 磁碟快取。
- Ultra 磁碟不支援可用性設定組或區域備援儲存體 (ZRS)。
- Ultra 磁碟支援可用性區域,但 VM 必須位於相同的可用性區域,這會降低虛擬機器的可用性達 99.9%。
若要開始使用,請參閱使用 Azure 共用磁碟設定容錯移轉叢集執行個體。
儲存空間直接存取
儲存空間直接存取是 Azure 虛擬機器上的容錯移轉叢集所支援的 Windows Server 功能。 其提供了以軟體為基礎的虛擬 SAN。
支援的 OS:Windows Server 2016 及更新版本
支援的 SQL 版本:SQL Server 2016 及更新版本
優點:
- 足夠的網路頻寬可提供穩固且高效能的共用儲存體解決方案。
- 支援 Azure Blob 快取,因此可從快取在本機提供讀取。 (更新會同時複寫到這兩個節點。)
- 支援 FileStream。
限制:
- 僅適用於 Windows Server 2016 和更新版本。
- 不支援可用性區域。
- 需要將相同的磁碟容量連結到這兩部虛擬機器。
- 由於要進行持續的磁碟複寫,因此需要高網路頻寬才能實現高效能。
- 需要較大的 VM 大小,並支付兩倍的儲存體費用,因為儲存體要連結至每個 VM。
- Microsoft Distributed Transaction Coordinator (MSDTC) 不受支援。
若要開始使用,請參閱使用儲存空間直接存取設定容錯移轉叢集執行個體。
進階檔案共用
進階檔案共用是 Azure 檔案儲存體的功能。 進階檔案共用會透過 SSD 來支援,並持續保持低延遲。 在 Windows Server 2012 或更新版本上的 SQL Server 2012 或更新版本中,其完全支援與容錯移轉叢集執行個體搭配使用。 進階檔案共用提供更大的彈性,因為您無需停機即可調整檔案共用的大小和規模。
支援的 OS:Windows Server 2012 及更新版本
支援的 SQL 版本:SQL Server 2012 及更新版本
優點:
- 只有適用於虛擬機器的共用儲存體解決方案會散佈至多個可用性區域。
- 完全受控的檔案系統,具有個位數延遲和可高載的 I/O 效能。
- 並非所有的 SQL Server 功能都受到支援,例如資料庫快照集、資料庫快照集和 CHECKDB,沒有 TABLOCK。 如需詳細資訊,請檢閱限制。
限制:
- 僅適用於 Windows Server 2012 和更新版本。
- 不支援 FileStream。
- Microsoft Distributed Transaction Coordinator (MSDTC) 不受支援。
若要開始使用,請參閱使用進階檔案共用設定容錯移轉叢集執行個體。
Azure 彈性 SAN
Azure 彈性 SAN 是一種網路連接儲存裝置供應項目,可為客戶提供彈性且可調整的解決方案,並有可能透過儲存體合併來降低成本。 Azure 彈性 SAN 提供了符合成本效益、效能高又可靠的區塊存放裝置解決方案,可透過 iSCSI 通訊協定連線至各種 Azure 計算服務。 彈性 SAN 可讓您順暢地從現有的 SAN 儲存體資產轉換至雲端,完全不需要重構應用程式結構。
注意
針對 Azure VM 上的 SQL Server,使用 Azure 彈性 SAN 設定容錯移轉叢集執行個體目前為預覽。
支援的 OS:Windows Server 2019 及更新版本
支援的 SQL 版本:SQL Server 2022 及更新版本
優點:
- 彈性 SAN 不受限於 VM 磁碟輸送量限制,代表您可以使用較小的 VM 達到所需的輸送量,節省成本。
- 儲存體合併和動態效能共用 - 將中低階層效能工作負載與 SQL Server 工作負載合併,即可節省成本,因為儲存集區佈建在 SAN 層級,且效能跨工作負載共用。
- 支援 SCSI 持續保留 (SCSI PR),意味著可以將叢集應用程式移轉至 Azure。
- 可使用單一共用磁碟區或等量分割多個共用磁碟區,建立共用儲存集區。
- 彈性 SAN 區域備援儲存體支援可用性區域。 容錯移轉叢集執行個體的 VM 部分可放置在不同的可用性區域。
限制:
- 目前不支援雲端見證。
- 不支援毫秒延遲工作負載。
- 不支援 Filestream。
- Microsoft Distributed Transaction Coordinator (MSDTC) 不受支援。
Partner
您可以找到具有受支援儲存體的合作夥伴叢集解決方案。
支援的 OS:全部
支援的 SQL 版本:全部
其中一個範例使用 SIOS DataKeeper 作為儲存體。 如需詳細資訊,請參閱部落格文章容錯移轉叢集和 SIOS DataKeeper。
iSCSI 和 ExpressRoute
您也可以透過 Azure ExpressRoute 公開 iSCSI 目標共用區塊儲存體。
支援的 OS:全部
支援的 SQL 版本:全部
例如,NetApp 私用儲存體 (NPS) 會透過 ExpressRoute 使用 Equinix 將 iSCSI 目標公開至 Azure VM。
對於 Microsoft 合作夥伴所提供的共用儲存體和資料複寫解決方案,如有關於存取容錯移轉資料的任何問題,請與廠商連絡。
連線能力
若要比對連線至容錯移轉叢集執行個體的內部部署體驗,請將 SQL Server VM 部署至相同虛擬網路中的多個子網路。 多個子網路不需要 Azure Load Balancer 的額外相依性,或是分散式網路名稱 (DNN),即可將流量路由傳送至 FCI。
如果您將 SQL Server VM 部署至單一子網路,則可以設定虛擬網路名稱 (VNN) 和 Azure Load Balancer 或分散式網路名稱 (DNN),將流量路由傳送至您的容錯移轉叢集執行個體。 請檢閱兩者之間的差異,然後針對您的容錯移轉叢集執行個體部署分散式網路名稱或虛擬網路名稱。
如果可能的話,建議使用分散式網路名稱,因為容錯移轉速度更快,而且會消除管理負載平衡器的額外負荷與成本。
使用 DNN 時,多數 SQL Server 功能都會以透明的方式與 FCI 搭配運作,但特定功能可能需要特別考量。 如需詳細資訊,請參閱<FCI 和 DNN 互通性>。
注意
如果您在相同叢集有多個 AG 或 FCI,而且您使用 DNN 或 VNN 接聽程式,則每個 AG 或 FCI 都必須有自己的獨立連接點。
限制
有限的延伸模組支援
目前,向 SQL IaaS 代理程式延伸模組註冊的 Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體僅支援透過基本註冊提供的數量有限的功能,而不支援需要代理程式的功能,例如自動備份、修補、Microsoft Entra 驗證和進階入口網站管理。 若要深入了解,請參閱優點資料表。
如果您的 SQL Server VM 已經向 SQL IaaS 代理程式延伸模組註冊,而且您已啟用任何需要代理程式的功能,則需要刪除對應 VM 的 SQL 虛擬機器資源以從 SQL Server VM 刪除延伸項目,然後再次向 SQL IaaS 代理程式延伸模組註冊。 使用 Azure 入口網站刪除 SQL 虛擬機器資源時,請清除正確虛擬機器旁邊的核取方塊以避免刪除虛擬機器。
MSDTC
Azure 虛擬機器支援儲存體位於叢集共用磁碟區 (CSV) 和 Azure Standard Load Balancer 上的 Windows Server 2019 使用 Microsoft Distributed Transaction Coordinator (MSDTC),也支援在使用 Azure 共用磁碟的 SQL Server VM 上使用 MSDTC。
在 Azure 虛擬機器上,具有叢集共用磁碟區的 Windows Server 2016 或更早版本不支援 MSDTC,因為:
- 叢集化的 MSDTC 資源無法設為使用共用儲存體。 如果在 Windows Server 2016 上建立 MSDTC 資源,即使有儲存體可用,系統也不會顯示任何可用的共用儲存體。 Windows Server 2019 中已修正此問題。
- 基本負載平衡器不處理 RPC 連接埠。