使用「儲存空間直接存取」(Azure VM 上的 SQL Server) 建立 FCI

適用於:Azure VM 上的 SQL Server

提示

有許多方法可部署可用性群組。 在相同 Azure 虛擬網路內的多個子網路中建立 SQL Server 虛擬機器 (VM),您的 Always On 可用性群組就可以簡化部署,而且不再需要 Azure Load Balancer 或分散式網路名稱 (DNN)。 如果您已在單一子網路中建立可用性群組,您可以將它移轉至多子網路環境

本文說明如何使用儲存空間直接存取搭配 Azure 虛擬機器 (VM) 上的 SQL Server,建立容錯移轉叢集執行個體 (FCI)。 「儲存空間直接存取」可做為以軟體為基礎的虛擬存放區域網路 (VSAN),以同步處理 Windows 叢集中節點之間的儲存體 (資料磁碟)。

若要深入了解,請參閱 Azure VM 上使用 SQL Server 的 FCI 的概觀和叢集最佳做法

注意

現在使用 Azure Migrate 可將容錯移轉叢集執行個體解決方案隨即轉換至 Azure VM 上的 SQL Server。 若要深入了解,請參閱移轉容錯移轉叢集執行個體

概觀

儲存空間直接存取 (S2D) 支援兩種架構類型:聚合式和超融合式。 超融合式基礎結構會將儲存體放置在裝載叢集應用程式的相同伺服器上,讓儲存體位於每個 SQL Server FCI 節點上。

下圖顯示完整的解決方案,其使用超融合式「儲存空間直接存取」搭配 Azure VM 上的 SQL Server:

使用超融合式儲存空間直接存取的完整解決方案圖表

上圖顯示相同資源群組中的下列資源:

  • Windows Server 容錯移轉叢集中的兩部虛擬機器。 位於容錯移轉叢集中的虛擬機器也稱為「叢集節點」或「節點」。
  • 每部虛擬機器有兩個以上的資料磁碟。
  • 儲存空間直接存取會同步資料磁碟上的資料,並將同步儲存體作為儲存集區呈現。
  • 儲存集區會向容錯移轉叢集提供叢集共用磁碟區 (CSV)。
  • SQL Server FCI 叢集角色會針對資料硬碟使用 CSV。
  • 針對單一子網路的案例,保留 SQL Server FCI IP 位址的 Azure Load Balancer。
  • 保留所有資源的 Azure 可用性設定組。

注意

您可在 Azure 中,從範本開始建立整個解決方案。 GitHub [Azure 快速入門範本] 頁面中提供範本範例。 本範例並非為任何特定工作負載設計或測試。 您可執行範本來建立 SQL Server FCI,並將儲存空間直接存取儲存體連線至網域。 您可評估此範本,並依需要進行修改。

必要條件

建議先準備好下列項目,再完成本文中的指示:

建立 Windows 容錯移轉叢集

建立 Windows Server 容錯移轉叢集的步驟,取決於您是將 SQL Server VM 部署到單一子網路或多重子網路。 若要建立叢集,請針對多重子網路案例單一子網路案例,遵循本教學課程中的步驟。 雖然這些教學課程適用於建立可用性群組,但建立叢集的步驟是相同的。

設定仲裁

雖然磁碟見證是最彈性的仲裁選項,但使用「儲存空間直接存取」設定的容錯移轉叢集執行個體並不支援此選項。 因此,針對 Azure VM 上的 SQL Server,雲端見證是此類型叢集設定建議的仲裁解決方案。

如果您的叢集中有偶數個投票,請設定最適合您商務需求的仲裁解決方案。 如需詳細資訊,請參閱 SQL Server VM 的仲裁

驗證叢集

在容錯移轉叢集管理員 UI 或使用 PowerShell 驗證叢集。

若要使用 UI 來驗證叢集,請在其中一部虛擬機器上執行下列步驟:

  1. 在 [伺服器管理員] 下,選取 [工具],然後選取 [容錯移轉叢集管理員]。

  2. 在 [容錯移轉叢集管理員] 下,選取 [動作],然後選取 [驗證設定]。

  3. 選取 [下一步] 。

  4. 在 [選取伺服器或叢集] 下,輸入這兩部虛擬機器的名稱。

  5. 在 [測試選項] 下,選取 [僅執行我選取的測試]。

  6. 選取 [下一步] 。

  7. 在 [測試選取] 下,選取除 [儲存體] 以外的所有測試,如以下所示:

    選取叢集驗證測試

  8. 選取 [下一步] 。

  9. 在 [確認] 下,選取 [下一步]。

    [驗證設定] 精靈會執行驗證測試。

若要使用 PowerShell 驗證叢集,請在其中一部虛擬機器上,從系統管理員 PowerShell 工作階段執行下列指令碼:

Test-Cluster –Node ("<node1>","<node2>") –Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"

新增儲存體

儲存空間直接存取的磁碟必須是空的。 其不能包含磁碟分割或其他資料。 若要清理磁碟,請遵循部署儲存空間直接存取中的指示。

  1. 啟用儲存空間直接存取

    下列 PowerShell 指令碼會啟用儲存空間直接存取:

    Enable-ClusterS2D
    

    現在,您可以在容錯移轉管理員中看到儲存集區。

  2. 建立磁碟區

    儲存空間直接存取會在啟用時自動建立儲存集區。 您現在可開始建立磁碟區。 PowerShell Cmdlet New-Volume 會自動化磁碟區的建立流程。 此程序包括格式化、將磁碟區新增到叢集,以及建立 CSV。 此範例會建立 800 GB 的 CSV:

    New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VDisk01 -FileSystem CSVFS_REFS -Size 800GB
    

    執行上述命令之後,800 GB 磁碟區會掛接為叢集資源。 磁碟區會位於 C:\ClusterStorage\Volume1\

    此螢幕擷取畫面顯示具有「儲存空間直接存取」的 CSV:

    螢幕擷取畫面:顯示具有儲存空間直接存取的叢集共用磁碟區

測試叢集容錯移轉

測試叢集的容錯移轉。 在 [容錯移轉叢集管理員] 中,以滑鼠右鍵按一下叢集,然後選取 [其他動作]>[移動核心叢集資源]>[選取節點],然後選取叢集的其他節點。 將核心叢集資源移到叢集的每個節點,再移回主要節點。 如果您可成功地將叢集移至每個節點,即可開始安裝 SQL Server。

將核心資源移至其他節點以測試叢集容錯移轉

建立 SDL Server FCI

在設定容錯移轉叢集和所有叢集元件 (包括儲存體) 後,即可建立 SQL Server FCI。

  1. 使用 RDP 連線到第一部虛擬機器。

  2. 在 [容錯移轉叢集管理員] 中,確認所有核心叢集資源都位於第一部虛擬機器。 如有必要,請將所有資源移至該虛擬機器。

  3. 如果作業系統的版本是 Windows Server 2019,且 Windows 叢集是使用預設的分散式網路名稱 (DNN) 建立,則 SQL Server 2017 和以下的 FCI 安裝將會失敗,並出現錯誤 The given key was not present in the dictionary

    在安裝期間,SQL Server 安裝程式會查詢現有的虛擬網路名稱 (VNN),且無法辨識 Windows 叢集 DNN。 SQL Server 2019 安裝程式已修正此問題。 針對 SQL Server 2017 和以下版本,請遵循下列步驟以避免安裝錯誤:

    • 在容錯移轉叢集管理員中,連線到叢集,以滑鼠右鍵按一下 [角色],然後選取 [建立空的角色]。
    • 以滑鼠右鍵按一下新建立的空角色,選取 [新增資源],然後選取 [用戶端存取點]。
    • 輸入任何名稱,並完成精靈,以建立用戶端存取點
    • SQL Server FCI 安裝完成之後,就可以刪除包含暫時性用戶端存取點的角色。
  4. 找出安裝媒體。 若虛擬機器是使用其中一個 Azure Marketplace 映像,則媒體會位於 C:\SQLServer_<version number>_Full。 選取 [設定]。

  5. 在 [SQL Server 安裝中心] 中,選取 [安裝]。

  6. 選取 [安裝新的 SQL Server 容錯移轉叢集]。 請遵循精靈內的指示安裝 SQL Server FCI。

  7. 在 [叢集網路設定] 頁面上,您提供的 IP 會依據您的 SQL Server VM 部署到單一子網路或多重子網路而有所不同。

    1. 對於單一子網路環境,提供您打算新增至 Azure Load Balancer 的 IP 位址
    2. 對於多重子網路環境,請在「第一個」 SQL Server VM (您先前指定為容錯移轉叢集執行個體網路名稱的 IP 位址) 的子網路中,提供次要 IP 位址:

    在第一個 SQL Server VM (您先前指定為容錯移轉叢集執行個體網路名稱的 IP 位址) 的子網路中,提供次要 IP 位址

  8. 在 [資料庫引擎設定] 中,FCI 資料目錄必須位於叢集儲存體中。 使用儲存空間直接存取時,FCI 會作為每部伺服器上的磁碟區掛接點,而非共用磁碟。 儲存空間直接存取會在節點之間同步磁碟區。 磁碟區會以 CSV 的形式向叢集呈現。 在資料目錄上使用 CSV 掛接點。

    資料目錄

  9. 完成精靈中的指示後,安裝程式會在第一個節點上安裝 SQL Server FCI。

  10. 在第一個節點上成功安裝 FCI 之後,請使用 RDP 連線到第二個節點。

  11. 開啟 [SQL Server 安裝中心]。 選取 [安裝類型]。

  12. 選取 [將節點新增到 SQL Server 容錯移轉叢集]。 遵循精靈中的指示來安裝 SQL Server,並將節點新增到 FCI。

  13. 對於多重子網路案例,在 [叢集網路設定] 中,請在「第二個」SQL Server VM (您先前指定為容錯移轉叢集執行個體網路名稱 的 IP 位址) 的子網路中,提供次要 IP 位址

    在第二個 SQL Server VM 子網路 (您先前指定為容錯移轉叢集執行個體網路名稱的 IP 位址) 的子網路中,輸入次要 IP 位址

    在 [叢集網路設定] 中選取 [下一步] 之後,安裝程式會顯示一個對話方塊,指出 SQL Server 安裝程式在範例圖片中偵測到多個子網路。 選取 [是] 加以確認。

    多重子網路確認

  14. 完成精靈中的指示之後,安裝程式會新增第二個 SQL Server FCI 節點。

  15. 在您想要新增至 SQL Server 容錯移轉叢集執行個體的任何其他節點上重複這些步驟。

注意

Azure Marketplace 資源庫映像隨附已安裝的 SQL Server Management Studio。 如果您未使用 Marketplace 映像,請下載 SQL Server Management Studio (SSMS)

向 SQL IaaS 代理程式延伸模組註冊

若要從入口網站管理您的 SQL Server 虛擬機器,請向 SQL IaaS 代理程式延伸模組註冊虛擬機器。 請注意,具有 SQL Server 容錯移轉叢集執行個體 (FCI) 的 SQL VM 只會具有有限的功能

如果您的 SQL Server VM 已經向 SQL IaaS 代理程式延伸模組註冊,而且您已啟用任何需要代理程式的功能,則需要從延伸模組取消註冊 SQL Server VM,然後在安裝 FCI 之後再次註冊。

使用 PowerShell 註冊 SQL Server VM (-LicenseType 可以是 PAYGAHUB):

# Get the existing compute VM
$vm = Get-AzVM -Name <vm_name> -ResourceGroupName <resource_group_name>
         
# Register SQL VM with SQL IaaS Agent extension
New-AzSqlVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location `
   -LicenseType <license_type>

設定連線能力

如果您將 SQL Server VM 部署在多個子網路中,請跳過此步驟。 如果您將 SQL Server VM 部署到單一子網路,則必須設定額外的元件,將流量路由至您的 FCI。 您可以使用 Azure Load Balancer,或針對容錯移轉叢集執行個體的分散式網路名稱,設定虛擬網路名稱 (VNN)。 請檢閱這兩者之間的差異,然後為您的容錯移轉叢集執行個體部署至分散式網路名稱虛擬網路名稱 Azure Load Balancer

限制

  • Azure 虛擬機器支援 Windows Server 2019 上的 Microsoft Distributed Transaction Coordinator (MSDTC),且可使用 CSV 上的儲存體和 Standard Load Balancer。 Windows Server 2016 和先前版本不支援 MSDTC。
  • 當儲存體新增至叢集時,如果未勾選或已清除磁碟適用性選項,則連結做為已格式化為 NTFS 的磁碟可以搭配使用「儲存空間直接存取」。
  • SQL Server 向 SQL IaaS 代理程式延伸模組註冊的 FCI 不支援需要代理程式的功能,例如自動備份、修補、Microsoft Entra 驗證和進階入口網站管理。 如需詳細資訊,請參閱優點資料表
  • 使用「儲存空間直接存取」做為共用儲存體的容錯移轉叢集執行個體不支援使用磁碟見證進行叢集仲裁。 請改用雲端見證。

後續步驟

如果「儲存空間直接存取」不是您適用的適當 FCI 儲存體解決方案,請考慮使用 Azure 共用磁碟進階檔案共用來建立 FCI。

若要深入了解,請參閱: