本文說明如何準備 Azure 虛擬機(VM)以便將它們用於 SQL Server 故障轉移叢集實例(FCI)。 組態設定會隨 FCI 儲存體解決方案而異,因此請驗證是否選擇了符合您環境和企業的正確設定。
欲了解更多,請參閱FCI 與 SQL Server on Azure VMs 及 cluster 最佳實務 的概述。
注意
現在你可以利用 Azure Migrate 將你的故障移轉叢集實例解決方案遷移並部署到 Azure 虛擬機上的 SQL Server。 若要深入瞭解,請參閱 容錯叢集執行個體移轉。
必要條件
- 一個 Microsoft Azure 訂閱。 開始使用一個免費Azure帳號。
- Azure 虛擬機上的 Windows 網域,或是本地 Active Directory 並透過虛擬網路配對擴展至 Azure。
- 一個擁有在 Azure 虛擬機和 Active Directory 中建立物件權限的帳號。
- 一個 Azure 虛擬網路,以及一個或多個具有足夠 IP 位址空間的子網路,以容納以下元件:
- 兩部虛擬機器
- Windows 故障轉移叢集的 IP 位址
- 每個 FCI 一個 IP 位址
- DNS 在 Azure 網路上設定,指向網域控制器。
選擇 FCI 儲存體選項
虛擬機的設定會依你打算用於 SQL Server 故障轉移叢集實例的儲存選項而有所不同。 準備虛擬機器之前,請先檢閱可用的 FCI 儲存體選項,選擇最適合您環境和企業需求的選項。 然後,根據您的儲存體選項,在本文中仔細選取適當的 VM 設定選項。
選擇 VM 可用性
容錯移轉叢集功能要求虛擬機器必須放置於可用性設定組或可用性區域中。
請仔細選取符合您預期叢集設定的 VM 可用性選項:
Azure 共享磁碟:使用高級 SSD 或超強磁碟,可用性選項會有所不同:
進階 SSD 區域備援儲存體 (ZRS):不同區域中的可用性區域。 進階 SSD ZRS 會跨所選區域的三個 Azure 可用性區域,同步複寫 Azure 受控磁碟。 虛擬機器作為故障轉移叢集的一部分,可以配置在不同的可用性區域中,幫助您實現區域冗餘的 SQL Server FCI,並且提供虛擬機器可用性的 SLA。 ZRS 的磁碟延遲因跨區複製資料而較高。
進階 SSD 本地備援儲存體 (LRS):進階 SSD LRS 在不同容錯/更新網域中的可用性設定組。 您也可以選擇將 VM 放在鄰近放置群組內,讓彼此更接近。 結合可用性設定與鄰近配置群組,為共享磁碟提供最低延遲,因為資料可在同一資料中心本地複製,並提供虛擬機 可用性SLA。
Ultra 磁碟本地備援儲存體 (LRS):可用性區域,但 VM 必須放在相同的可用性區域。 Ultra Disks 提供最低的磁碟延遲,最適合 IO 密集型工作負載。 由於所有屬於 FCI 的虛擬機都必須在同一個可用區域,虛擬機的可用性較低。
Storage Spaces Direct:可用設定。
Azure Elastic SAN:可用區域。
重要
建立虛擬機器後,您即無法設定或變更可用性設定組。
子網路
對於 Azure 虛擬機上的 SQL Server,你可以將 SQL Server 虛擬機部署到單一子網路,或多個子網路。
將 VM 部署至多個子網路會利用 IP 位址的叢集 OR 相依性,並在連線到容錯移轉叢集執行個體時符合內部部署體驗。 多子網方法建議用於 Azure VM 上的 SQL Server,以簡化管理並加快故障轉移時間。
將虛擬機部署到單一子網路需要額外依賴 Azure Load Balancer 或分散式網路名稱(DNN)來將流量路由到 FCI。
如果你將SQL Server虛擬機部署到多個子網,請依照本節步驟建立包含額外子網的虛擬網路,然後在SQL Server虛擬機建立後, 在這些子網路內分配次要 IP 位址給虛擬機。 將 SQL Server 虛擬機部署到單一子網路不需要額外的網路設定。
將兩部虛擬機器放在具有足夠 IP 位址的單一子網路中,以供最終可能安裝到此叢集的兩部虛擬機器和所有 FCI 使用。 這種方式需要額外元件來導向連線至你的 FCI,例如 Azure Load Balancer 或分散式網路名稱(DNN)。
如果你選擇將SQL Server虛擬機部署到單一子網路,請檢視Azure Load Balancer與 DNN 連接選項 的差異。 使用此資訊來決定哪個選項最適合您,然後再為 FCI 準備環境的其餘部分。
將 SQL Server 虛擬機部署到單一子網路不需要額外的網路設定。
設定 DNS
設定虛擬網路使用 DNS 伺服器。 首先,識別 DNS IP 位址,然後將其新增至虛擬網路。
識別 DNS IP 位址
識別 DNS 伺服器的 IP 位址,然後將其新增至虛擬網路設定。 本節示範如何在 Azure 虛擬機上的 DNS 伺服器中辨識 DNS IP 位址。
要在 Azure 入口網站中辨識 DNS 伺服器虛擬機的 IP 位址,請依照以下步驟操作:
- 請進入 Azure portal 的資源群組,選擇 DNS 伺服器的虛擬機。
- 在該 VM 頁面的 [設定] 窗格中,選擇 [網路]。
- 記下 NIC 專用 IP 位址。 使用此值作為 DNS 伺服器的 IP 位址。 範例影像中的私人 IP 位址是 10.38.0.4。
設定虛擬網路 DNS
將虛擬網路設定為使用您在上一個步驟中識別的值作為 DNS 伺服器 IP 位址。
若要設定虛擬網路使用 DNS,請遵循下列步驟:
- 請前往 Azure 入口網站 的資源群組,選擇你的虛擬網路。
- 在 [設定]下選取[DNS 伺服器],然後選取[自訂]。
- 在 [IP 位址] 欄位中輸入您之前識別的私人 IP 位址,例如 ,或提供內部 DNS 伺服器的內部 IP 位址。
- 選取 [儲存]。
建立虛擬機器
設定 VM 虛擬網路並選擇 VM 可用性之後,您就可以開始建立虛擬機器。 你可以選擇使用已安裝或未安裝 SQL Server 的 Azure Marketplace 映像檔。 不過,如果你在 Azure VM 上選擇 SQL Server 映像檔,必須先從虛擬機器中卸載 SQL Server,才能設定故障轉移叢集實例。
注意
在部署 SQL Server 虛擬機之前,務必確認你選擇的 FCI 儲存選項 的 SQL Server 版本是否支援。
網路介面控制卡考慮事項
在 Azure VM 的訪客故障轉移叢集中,我們建議每台伺服器(叢集節點)使用單一網卡。 Azure 網路有物理冗餘,這使得 Azure IaaS VM 訪客叢集不需要額外的網卡。 雖然叢集驗證報告會警告節點只能在單一網路上被存取,但你可以放心忽略 Azure IaaS VM 訪客故障轉移叢集的警告。
將兩部虛擬機器放置於:
- 如果您使用的是可用性設定組,請將其放在與該可用性設定組相同的 Azure 資源群組內。
- 在與網域控制站和 DNS 伺服器相同的虛擬網路上,或在與網域控制站有適當連線的虛擬網路上。
- 在 Azure 可用性設定或可用性區域中。
你可以使用有或無已安裝 SQL Server 的映像檔來建立 Azure 虛擬機器。 如果您選擇 SQL Server 映像,需要在安裝故障轉移叢集執行個體前手動移除 SQL Server 執行個體。
指派次要 IP 位址
如果你把 SQL Server VM 部署到單一子網路,可以跳過這個步驟。
如果你為了提升與 FCI 的連接性,將 SQL Server VM 部署到多個子網路,你需要為每個虛擬機指派次要 IP 位址。
為每個 SQL Server VM 指派次要 IP 位址,作為故障轉移叢集實例的網路名稱。 對於 Windows Server 2016 及更早版本,也要為每個 SQL Server VM 指派叢集網路名稱的次要 IP 位址。 這樣做就不必再像單一子網環境那樣需要 Azure Load Balancer。
在 Windows Server 2016 及更早版本中,你需要為每個 SQL Server 虛擬機指派額外的次要 IP 位址作為 Windows 叢集 IP,因為叢集使用 Cluster Network Name,而非 Windows Server 2019 年引入的預設分散式網路名稱(DNN)。 使用 DNN 時,叢集名稱物件 (CNO) 會自動註冊所有叢集節點的 IP 位址,不再需要專用的 Windows 叢集 IP 位址。
如果你使用的是 Windows Server 2016 或更早版本,請依照本節步驟為每個 SQL Server VM 分配一個次要 IP 位址,分別是 bothFCI 網路名稱,and叢集。
如果你使用的是 Windows Server 2019 或更新版本,請只為 FCI 網路名稱指定一個次要 IP 位址。 除非你打算用虛擬網路名稱(VNN)來設定叢集,否則可以跳過指派 Windows 叢集 IP 的步驟,這時就像對 Windows Server 2016 一樣,將兩個 IP 位址分配給每個 SQL Server 虛擬機。
若要將額外的次要 IP 指派給 VM,請遵循下列步驟:
請進入 Azure portal 的資源群組,選擇第一個 SQL Server 虛擬機。
在 [設定] 窗格中選取 [網路],然後選取 [網路介面]:
在 [網路介面] 頁面的 [設定] 窗格中,選取 [IP 設定],然後選擇 [+ 新增] 以新增額外的 IP 位址:
在 [新增 IP 設定] 頁面上,執行下列動作:
- 請為 Windows 叢集 IP 位址指定 Name,例如 windows-cluster-ip 用於 Windows 2016 及更早版本。 如果你使用的是 Windows Server 2019 或更新版本,請跳過此步驟。
- 將 配置 設為 靜態。
- 輸入一個未使用的IP位址,位於與SQL Server虛擬機相同的子網(SQL-subnet-1),例如
10.38.1.10。 - 請將 [公用 IP 位址] 保持為預設選項 [解除關聯]。
- 選取 [確定] 完成新增 IP 設定。
再次選取 [+ 新增],設定額外的 IP 位址供 FCI 網路名稱使用 (使用如 FCI-network-name 的名稱),再次在 SQL-subnet-1 中指定未使用的 IP 位址,例如 :
對第二台 SQL Server VM 重複這些步驟。 在 SQL-subnet-2 內指派兩個未使用的次要 IP 位址。 使用下表中的值新增 IP 設定 (IP 位址僅為範例,您的位址可能不一樣):
欄位 輸入 輸入 名稱 Windows 叢集 IP FCI-network-name 分配 靜態 靜態 IP 位址 10.38.2.10 10.38.2.11
卸載 SQL Server
作為 FCI 建立過程的一部分,你會將 SQL Server 安裝為故障轉移叢集的一個叢集實例。 如果你部署的是帶有 Azure Marketplace 映像檔但沒有 SQL Server 的虛擬機器,可以跳過這個步驟。 如果你部署的是預先安裝 SQL Server 的映像檔,你需要先從 SQL Server 虛擬機中刪除該擴充功能,然後卸載 SQL Server。
刪除 SQL IaaS 代理程式延伸項目
Azure Marketplace 的 SQL Server 虛擬機映像會自動註冊於 SQL IaaS Agent 擴充功能。 在卸載預裝SQL Server實例之前,你必須先從SQL Server虛擬機刪除擴充功能。
要用 Azure PowerShell 從你的 SQL Server 虛擬機中刪除該擴充功能,請使用以下範例程式碼:
Remove-AzSqlVM -ResourceGroupName <resource_group_name> -Name <SQL VM resource name>
卸載 SQL Server
當擴充功能被刪除後,你可以卸載 SQL Server。 請在每部虛擬機器上執行下列步驟:
使用 Bastion 連線至虛擬機器。 當您第一次使用 Bastion 連線到虛擬機器時,系統會提示您是否允許電腦在網路上可被發現。 選擇是。
先在控制台中開啟程式與功能。
在 Programs and Features,右鍵點擊 Microsoft SQL Server 201_(64 位元),選擇 Uninstall/Change。
選取 並移除。
選取預設執行個體。
在
Select Features 畫面中,移除Database Engine服務 、Analysis Services 以及 Reporting Services - Native 下的所有功能。 請勿移除 [共用功能]下方的任何項目。 它應該看起來像以下屏幕截圖:
選取 [下一步],然後選取 [移除]。
成功移除執行個體之後,請重新啟動虛擬機器。
開啟防火牆
在每台虛擬機器上,開啟 SQL Server 使用的 Windows 防火牆 TCP 埠。 預設 SQL Server 使用 1433 埠,但如果你在環境中更改了這個設定,請開啟你設定 SQL Server 實例要使用的埠。 Port 1433 會自動開啟從 Azure Marketplace 部署的 SQL Server 映像檔。
如果您針對單一子網路案例使用 負載平衡器 ,您也必須開啟健康情況探查所使用的連接埠。 健全狀態探查預設使用連接埠 59999,但可以是您在建立負載平衡器時所指定的任何 TCP 通訊埠。
下表會詳細說明視 FCI 設定而定,您可能需要開啟的連接埠:
| 目的 | 連接埠 | 注意 |
|---|---|---|
| SQL Server | TCP 1433 | SQL Server 預設實例的預設埠。 若您曾使用來自圖庫的影像,此連接埠會自動開啟。 適用於:所有FCI組態。 |
| 健康探測 | TCP 59999 | 任何開啟的 TCP 連接埠。 設定負載平衡器健全狀態探查和要使用此連接埠的叢集。 用於:具有負載平衡器的 FCI,適用於單一子網路場景。 |
| 檔案共用 | UDP 445 | 檔案共用服務使用的連接埠。 被使用於:FCI 與 Premium 檔案共用。 |
加入網域
您也需要將虛擬機器加入網域。 您可以使用快速入門範本完成這項作業。
檢閱儲存體設定
從 Azure Marketplace 建立的虛擬機會附帶附加儲存裝置。 如果你打算用 Premium 檔案分享或 Azure 共享磁碟來配置 FCI 儲存,可以移除附加的儲存裝置以節省成本,因為本地儲存並未用於故障轉移叢集實例。 不過,附帶儲存裝置可以用來做 Storage Spaces Direct FCI 解決方案,因此在這種情況下移除它們可能沒什麼幫助。 請檢閱 FCI 儲存體解決方案,判斷移除連結的儲存體是否最能節省成本。