虛擬基礎架構,尤其是在大型數據中心中,消除單點故障並確保服務和應用程序的高可用性是其中一項關鍵要求。在 Hyper-V 環境中,微軟故障轉移叢集技術可配置多個 Hyper-V 主機(或節點),在一個主機失敗時可以接管負載。
在這個分步指南中,了解 Hyper-V 故障轉移叢集配置的實際方面,包括初始主機和網絡配置、Hyper-V 角色安裝和叢集創建。
Hyper-V 主機配置
為了準備主機進行故障轉移叢集,我們應該選擇一個操作系統來安裝在將在特定叢集中使用的所有主機上。然後,我們需要對環境進行基本配置,包括所有主機,以準備它們進行 Hyper-V 叢集設置。
選擇要安裝的操作系統
在這個設置中,我們使用了兩個 Windows Server 2016 Server Core 安裝來最小化移動部件並提高安全性。使用 Windows Server 2016 Server Core 安裝可以消除許多不必要的組件並減少佔用空間。與 Server Core 的管理困難程度相比,效率和安全性的好處得到了補償。您還可以使用更新的 Windows Server 版本,如 Windows Server 2019 進行 Hyper-V 叢集設置。
注意:對於 Windows Server 2016 Server Core 的管理和配置,我們使用 PowerShell。從技術上講,可以使用帶有桌面體驗的 Windows Server 來配置 Hyper-V 故障轉移叢集。
環境的初始配置
在考慮將Hyper-V主機視為集群之前,我們必須對主機進行初始配置。這涉及到準備任何Windows伺服器的許多相同步驟 – 命名、網路配置、補丁等。特別是,網路規劃在Windows集群中至關重要,因為它允許適當的集群通信以及與共享存儲的通信。
- 命名。兩台伺服器已命名並加入實驗室域。請注意,從Windows Server 2016開始,加入域不再是必要的先決條件。伺服器配置顯示在下面的截圖中,第一台伺服器H1的配置。第二台伺服器H2的配置類似。
- 更新。我們需要根據Hyper-V集群的最佳實踐,將任何潛在的Hyper-V集群節點更新到最新的補丁級別。在Hyper-V主機上安裝更新可以提高系統的安全性。您可能需要重新啟動Windows以完成更新的安裝。
- 一致性。作為最佳實踐,我們希望所有潛在的集群節點都配置相同,除了計算機名稱和IP地址。這確保了主機之間的一切標準化,包括補丁級別、網路等。
網路規劃
適當的環境規劃可以在未來減少許多風險。對於這種情況下的實驗室網路,每台主機都配置了四個網路適配器。由於簡單起見,兩台實驗室主機都沒有進行任何網路適配器的組隊。然而,在生產環境中,您會希望將適配器進行組隊,以避免任何一個網路出現單點故障。
對於我們的實驗室設置,我們有:
- 管理和虛擬機流量
- iSCSI
- 私有集群流量
- 即時遷移
考慮到上述網路,我們為我們希望的子網段為每台伺服器分配IP地址。VLAN也是一個考慮因素,因為您很可能希望將您的子網段與配置的VLAN對齊。這需要提前考慮。
iSCSI存儲目標設置
Hyper-V集群存儲是構建集群的一個關鍵點。在這個例子中,對於實驗室環境中的iSCSI存儲,我們使用FreeNAS來創建iSCSI目標並將其提供給我們的Hyper-V集群。當然,根據供應商的不同,使用您選擇的供應商硬件或軟體iSCSI設置可能有所不同,因此請始終遵循為每個定義的方法。
注意:FreeNAS是一個通用且靈活的基於FreeBSD的作業系統,您可以安裝在電腦上作為NAS使用。您可以使用FreeNAS和NAKIVO解決方案來建立Hyper-V集群共享存儲或構建備份設備。
以下是使用FreeNAS設置Hyper-V故障轉移集群存儲的快速概述。我們不會深入討論如何為iSCSI設置FreeNAS的所有細節。但是,這裡是為我們的Hyper-V主機提供幾個iSCSI目標的基本設置。
- 在FreeNAS中啟動iSCSI服務並設置您的網絡配置以匹配您打算用於Hyper-V主機的存儲網絡。
- 檢查我們將創建的目標的基本IQN設置。
- 在FreeNAS中設置一個門戶來監聽iSCSI流量。
- 設置iSCSI目標名稱。在我們的FreeNAS設備中,我們正在設置:
- a quorum volume to be used as a disk witness
- a volume to be used for the Hyper-V cluster shared volume to house our VMs
注意:Quorum是Windows集群中用於確保在集群各部分之間出現問題時,您始終擁有大多數集群資源可供集群運行的機制。
- 從Windows Server 2012開始,集群中的每個節點默認具有單個仲裁投票。通過在Windows Server 2016中添加一個額外的投票,使用文件共享、磁碟或新的雲存儲帳戶,集群的一部分應始終通過聲稱共享、磁碟或雲存儲帳戶投票獲得超過50%的仲裁投票。
- 使用 Windows Server 2012 R2,建議始終配置磁碟或文件共享見證。只有節點數為偶數時,投票才會擴展到額外的見證(文件共享、磁碟或雲存儲帳戶)。對於奇數節點數,見證不會投票,也不會使用。
在下面的截圖中,我們已經創建了兩個目標名稱:一個用作磁碟見證的仲裁卷,以及一個用於我們的叢集共享卷的卷。
- 添加擴展,例如在下面的示例中,這些擴展被映射到我們在 FreeNAS 裝置中物理分配的各個磁碟。
- 將目標與擴展關聯。這些目標被映射到 FreeNAS 中的存儲。
安裝 Hyper-V 角色
要安裝 Hyper-V 角色服務,請在 PowerShell 命令提示符 中運行以下命令:
Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -IncludeManagementTools -Restart
設置存儲:添加 iSCSI 门户地址
在添加我們的 iSCSI 门户地址之前,我們需要配置並啟動 Microsoft iSCSI 服務如下:
- 將服務設置為自動啟動。
Set-Service -Name msiscsi -StartupType Automatic
- 啟動服務。
Start-Service msiscsi
- 使用 PowerShell 添加配置的 iSCSI 门户地址:
New-iscsitargetportal -targetportaladdress <IP 地址>
- 连接特定的 iSCSI 目标,在我们的情况下,这些目标是在我们的 FreeNAS 设备上创建的。以下是我们在为集群配置的 Hyper-V 主机中添加 FreeNAS 目标时使用的示例。
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:quorum -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:hvvol1 -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
您可以通过运行 Get-iSCSItarget 命令来验证并查看已添加的目标。
注意: 您可以使用 get-disk 命令显示磁盘信息,并确保 Hyper-V 集群共享存储在线且健康。
设置虚拟交换机
配置虛擬交換機是進行正確的 Hyper-V 故障轉移叢集網路配置所需的。我們可以使用 PowerShell 或 Hyper-V 管理員來設置我們的虛擬交換機用於 Hyper-V。
在 PowerShell 中創建虛擬交換機的命令示例:
New-VMSwitch “ExternalSwitch01” -NetAdapterName “Public” -AllowManagementOS 1
注意:在兩台主機之間將虛擬交換機名稱設置為相同,因為我們需要確保虛擬交換機匹配,尤其是在執行實時遷移時。
創建 Hyper-V 叢集
使用 PowerShell,創建叢集只需一條簡單的命令。
- 在創建叢集之前,運行此命令以驗證叢集配置是否符合 Hyper V 集群化最佳實踐:
Test-Cluster H1,H2
- 使用 new-cluster 命令列創建一個叢集並分配名稱、節點和靜態 IP 地址給叢集。
New-Cluster -Name HVCluster -node H1,H2 -staticAddress 192.168.85.75
- 當叢集創建過程完成時,您將在命令行中看到顯示叢集名稱的輸出。
Hyper-V clustersharedvolume
雖然我們從 iSCSI 目標的視角已有共用存儲,但我們需要確保我們的 VM 所在的存儲是設定在 Hyper-V clustersharedvolume上。 cluster shared volume (CSV) 是在 Windows Server 2008 R2 中引入,用來與 Hyper-V 角色一起使用,使 VM 可以VHD 文件被集群中的任何節點訪問。 CSV 内建容錯功能,包括 I/O 異常检测,允許在通信失敗的情況下使用代替的通信路徑。
讓我們一步步来看為我們的 VM 創建 clustersharedvolume。
- 更改用作 VM 存儲的集群磁盤資源名稱(可选)。在我們的實驗環境中,這是 Cluster Disk 1:
(Get-ClusterResource | ?{$_.Name -eq “Cluster Disk 1”}).name = “VMs”
- 現在我們可以把這個卷添加到集群共享卷中:
Get-ClusterResource -Name “VMs”| Add-ClusterSharedVolume
注意:我們也可以使用故障转移集群管理器將磁盤添加到 CSV:
- 使用get-clustersharedvolume命令查看集群共享卷的狀態。
注意:如果您有可透過 容錯叢集管理員 連線的管理工作站,您可以透過連接到 Windows 容錯 叢集來使用圖形化使用者介面 (GUI) 檢視儲存空間。我們可以輕鬆查看可用的 磁碟 及其指派的角色。下面,我們可以看到指定為叢集共用磁碟機的仲裁和虛擬機器磁碟機。
變更 Hyper-V 儲存設定
現在我們已經設定了叢集共用磁碟機,可以變更 Hyper-V 設定,以使用 Hyper-V 叢集共用磁碟機作為儲存虛擬機器的預設位置。
在每個主機的 Hyper-V 設定 中,將 虛擬硬碟 位置和 虛擬機器 位置變更為您的叢集共用磁碟機,即 Hyper-V 主機上的 C:\ClusterStorage\volume(x)。
建立高可用性的虛擬機器
現在我們可以啟動容錯叢集管理員,開始建立高可用性的虛擬機器。
- 以滑鼠右鍵按一下 角色,選擇建立新的 虛擬機器。
- 選擇虛擬機器的 Hyper-V 主機 (叢集節點之一)。
- 依照 建立虛擬機器精靈 的提示來佈建新的虛擬機器。
- 在精靈的 連接虛擬硬碟 步驟中,確保在我們的 Hyper-V 叢集共用磁碟機上建立虛擬機器。
- 總結步驟顯示我們所選擇的選項。
- 當您點擊完成時,高可用性精靈將顯示在角色和虛擬機器上啟用高可用性的摘要。正如您所見,成功啟用。
- 如果您想查看高可用性報告,可以點擊查看報告按鈕,這將顯示高可用性測試的更詳細呈現。
Hyper-V故障轉移叢集配置已完成,我們現在在叢集中運行一個高度可用的VM。您可以在叢集中創建更多VM以使用Hyper-V高可用性。
結論
Hyper-V故障轉移叢集允許您在發生故障時減少VM的停機時間。但是,如果您沒有頻繁進行Hyper-V叢集備份,這不會保護您的VM數據。由於VM可以在Hyper-V故障轉移叢集中在主機之間遷移,因此VM備份可能是一項艱巨的任務。使用NAKIVO的解決方案,即使是在叢集中運行的VM也可以輕鬆備份。<diy10