Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體

適用於:Azure VM 上的 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)
作業系統最低版本 全部 Windows Server 2012 Windows Server 2016
最低 SQL Server 版本 全部 SQL Server 2012 SQL Server 2016
支援的 VM 可用性 進階 SSD LRS:具有或不含鄰近放置群組的可用性設定組
進階 SSD ZRS:可用性區域
Ultra 磁碟:相同的可用性區域
可用性設定組與可用性區域 可用性設定組
支援 FileStream
Azure Blob 快取

本節其餘部分列出 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 組件可放置在不同的可用性區域中。

注意

雖然 Azure 共用磁碟也支援標準 SSD 大小,但由於效能限制,我們不建議針對 SQL Server 工作負載使用標準 SSD。

限制

  • 不支援進階 SSD 磁碟快取。
  • Ultra 磁碟不支援可用性設定組或區域備援儲存體 (ZRS)。
  • Ultra 磁碟支援可用性區域,但 VM 必須位於相同的可用性區域,這會降低虛擬機器的可用性達 99.9%。

若要開始使用,請參閱 SQL Server 容錯移轉叢集執行個體與 Azure 共用磁碟

儲存空間直接存取

儲存空間直接存取是 Azure 虛擬機器上的容錯移轉叢集所支援的 Windows Server 功能。 其提供了以軟體為基礎的虛擬 SAN。

支援的 OS:Windows Server 2016 及更新版本
支援的 SQL 版本:SQL Server 2016 及更新版本

優點:

  • 足夠的網路頻寬可提供穩固且高效能的共用儲存體解決方案。
  • 支援 Azure Blob 快取,因此可從快取在本機提供讀取。 (更新會同時複寫到這兩個節點。)
  • 支援 FileStream。

限制:

  • 僅適用於 Windows Server 2016 和更新版本。
  • 不支援可用性區域。
  • 需要將相同的磁碟容量連結到這兩部虛擬機器。
  • 由於要進行持續的磁碟複寫,因此需要高網路頻寬才能實現高效能。
  • 需要較大的 VM 大小,並支付兩倍的儲存體費用,因為儲存體要連結至每個 VM。

若要開始使用,請參閱 SQL Server 容錯移轉叢集執行個體與儲存空間直接存取

進階檔案共用

進階檔案共用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。

若要開始使用,請參閱 SQL Server 容錯移轉叢集執行個體與進階檔案共用

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 互通性>。

限制

針對 Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體,請考慮下列限制。

限制擴充功能支援

目前,已註冊 SQL IaaS 代理程式延伸模組之 Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體只支援有限數目的功能。 請參閱權益表格

如果您的 SQL Server VM 已經向 SQL IaaS 代理程式延伸模組註冊,而且您已啟用任何需要代理程式的功能,則需要刪除對應 VM 的SQL 虛擬機器資源以從延伸模組取消註冊,然後再次向 SQL IaaS 代理程式延伸模組註冊。 使用 Azure 入口網站刪除 SQL 虛擬機器資源時,請清除正確虛擬機器旁邊的核取方塊以避免刪除虛擬機器。

SQL Server 向延伸模組註冊的 FCI 不支援需要代理程式的功能,例如自動備份、修補和進階入口網站管理。 請參閱權益表格

MSDTC

Azure 虛擬機器支援在儲存體位於叢集共用磁碟區 (CSV) 和 Azure Standard Load Balancer 上的 Windows Server 2019 上使用 Microsoft 分散式交易協調器 (MSDTC),也支援在使用 Azure 共用磁碟的 SQL Server VM 上使用 MSDTC。

在 Azure 虛擬機器上,具有叢集共用磁碟區的 Windows Server 2016 或更早版本不支援 MSDTC,因為:

  • 叢集化的 MSDTC 資源無法設為使用共用儲存體。 如果在 Windows Server 2016 上建立 MSDTC 資源,即使有儲存體可用,系統也不會顯示任何可用的共用儲存體。 Windows Server 2019 中已修正此問題。
  • 基本負載平衡器不處理 RPC 連接埠。