在 Windows Server 伺服器上設定 Hyper-V 叢集:逐步指南
對於虛擬基礎架構而言,特別是在大型資料中心中,消除單點故障並確保服務與應用程式的高可用性,是其中一項關鍵需求。 在 Hyper-V 環境中,可運用 Microsoft 故障移轉叢集技術來配置多個 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 叢集。
註: 我們使用 PowerShell 來管理及設定 Windows Server 2016 Server Core。從技術上來說,也可以使用具備桌面體驗的 Windows Server 來設定 Hyper-V 故障移轉叢集。
環境的初始設定
在將 Hyper-V 主機視為叢集之前,我們必須先對主機進行初始設定。這包含與準備任何 Windows 伺服器大致相同的步驟,例如命名、網路設定、套用修補程式等。其中,網路規劃在 Windows 叢集中尤為關鍵,因為它不僅能確保叢集內部通訊順暢,還能確保與共用儲存裝置的通訊順暢。
Naming. 這兩台伺服器均已命名並加入實驗室網域。請注意,自 Windows Server 2016 起, 加入網域已不再是必要條件. 以下截圖顯示了第一台伺服器的設定 H1. 第二台伺服器的設定 H2 是相似的。
Updates. 我們需要根據 Hyper-V 叢集的最佳實踐,將所有預備中的 Hyper-V 叢集節點更新至可用的最新修補程式版本。在 Hyper-V 主機上安裝更新可提升系統的安全性。您可能需要重新啟動 Windows 才能完成更新的安裝。
Consistency. 作為最佳實踐,我們希望所有潛在的叢集節點配置完全相同,僅電腦名稱和 IP 位址除外。這可確保各主機之間的一切均保持標準化,包括修補程式版本、網路設定等。
網路規劃
妥善的環境規劃能降低未來許多風險。就本情境中的實驗室網路而言,共有四項 網路介面卡 已針對每台主機進行設定。為簡化操作,兩台實驗室主機均未進行網路介面卡(NIC)綑綁。然而,在實際生產環境中,您應將網路介面卡進行綑綁,以避免任何單一網路出現單點故障。
在我們的實驗室環境中,我們有:
- 管理與虛擬機器流量
- iSCSI
- 私有叢集流量
- 即時遷移
基於上述網路架構,我們會將 IP 位址分配給各台伺服器,並採用預期的子網範圍。在此過程中,VLAN 也是需要考量的因素,因為您很可能希望將子網與已配置的 VLAN 對應起來。這一點需要事先仔細規劃。
iSCSI 儲存目標設定
Hyper-V 叢集儲存是建置叢集的關鍵環節。以實驗室環境中的 iSCSI 儲存為例,本範例中我們使用 FreeNAS 建立 iSCSI 目標,並將其提供給 Hyper-V 叢集。當然,在您選擇的供應商硬體上設定 iSCSI,或是使用軟體 iSCSI,其操作方式可能因供應商而異,因此請務必遵循各供應商所定義的方法。
註: FreeNAS 是一款基於 FreeBSD 的通用且靈活的作業系統,您可以將其安裝在電腦上,使其作為 NAS 使用。您可以建立 Hyper-V 叢集共享儲存空間,或打造備份裝置,透過 FreeNAS 與 NAKIVO 解決方案.
以下簡要概述如何使用 FreeNAS 設定 Hyper-V 故障移轉叢集的儲存空間。我們不會深入探討如何為 iSCSI 設定 FreeNAS 的所有細節。不過,以下是將幾個 iSCSI 目標提供給 Hyper-V 主機的基本設定。
- 在 FreeNAS 中啟動 iSCSI 服務,並設定儲存網路的網路配置,使其與您打算用於 Hyper-V 主機的設定相符。
- 請檢查我們即將建立的目標之基礎 IQN 設定。
- 在 FreeNAS 中設定一個入口,用以監聽 iSCSI 流量。
- 設定 iSCSI 目標名稱。在我們的 FreeNAS 裝置中,我們正在設定:
- a
quorum將用作磁碟見證的磁碟區 - 一個將用作 Hyper-V 叢集共用磁碟區的磁碟區,用以存放我們的虛擬機器
註: 在 Windows 叢集中,"法定人數"是一種機制,用於確保當叢集的某些部分發生故障時,叢集仍能擁有多數的可用資源,以維持運作。
Starting with Windows Server 2012, 預設情況下,叢集中的每個節點都擁有單一的法定票數。透過在 Windows Server 2016 中新增一個基於檔案分享、磁碟或新雲端儲存帳戶的額外票數,叢集的一方應能透過宣稱該檔案分享、磁碟或雲端儲存帳戶的票數,始終獲得超過 50% 的法定票數。With 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
- 連線至特定的 iSCSI 目標,在本案例中,這些目標是建立在我們的 FreeNAS 裝置上。以下是我們將 FreeNAS 目標新增至為叢集配置的 Hyper-V 主機時所使用的範例。
Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:quorum -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1Connect-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 叢集共用磁碟區
儘管我們從 iSCSI 目標的角度來看已具備共用儲存空間,但我們仍需確保存放虛擬機器的儲存空間已設定在 Hyper-V 上 clustered shared volume. 叢集共用磁碟區 (CSV) 首次出現在 Windows Server 2008 R2 中,旨在配合 Hyper-V 角色使用,以便虛擬機器能夠擁有 VHD 檔案 叢集中的任何節點皆可存取。CSV 還內建了韌性機制,包括 I/O 故障偵測功能,可在通訊失敗時啟用備用通訊路徑。
讓我們逐步了解如何為虛擬機器建立叢集共用卷。
- 將用於虛擬機器儲存的叢集磁碟資源重新命名(可選)。在我們的實驗室環境中,此資源為 叢集磁碟 1:
(Get-ClusterResource | ?{$_.Name -eq "Cluster Disk 1"}).name = "VMs"
- 現在我們可以將此磁碟區新增至叢集共用磁碟區:
Get-ClusterResource -Name "VMs"| Add-ClusterSharedVolume
註: 我們也可以使用"故障移轉叢集管理員"將磁碟新增至 CSV:
- 請使用
get-clustersharedvolumecommandlet。
註: 如果您有一台管理工作站,需要透過 Failover Cluster Manager, 您可以透過連線至儲存來查看儲存的 GUI Windows 故障移轉 叢集。在此我們可以清楚地看到 磁碟 可用的資源及其所分配的角色。下方我們可以看到"Quorum"和"VMs"磁碟,後者已被指定為叢集共用磁碟。
變更 Hyper-V 儲存設定
既然我們已經設定好叢集共用磁碟區,現在可以變更 Hyper-V 設定,將 Hyper-V 叢集共用磁碟區設為儲存虛擬機器的預設位置。
在 Hyper-V Settings 對於每個主機,請將 Virtual Hard Disks 位置以及 Virtual Machines 位置指向您的叢集共用卷,即 C:ClusterStoragevolume(x) 在您的 Hyper-V 主機上。
建立高可用性虛擬機器
現在我們可以啟動"故障移轉叢集管理員",並開始建立一臺高可用性虛擬機器。
- 右鍵點擊
Roles並選擇建立一個New Virtual Machine.
- 請選擇虛擬機器的 Hyper-V 主機(即叢集節點之一)。
- 逐步完成
New Virtual Machine Wizard提示您建立一台新的虛擬機器。
- 在
Connect Virtual Hard Disk在精靈的此步驟中,請確保虛擬機器是建立在我們的 Hyper-V 叢集共用磁碟上。
- 該
Summary此步驟會顯示我們所選的選項。
- 當您點擊"完成"時,
High Availability Wizard顯示在角色和虛擬機器上啟用高可用性的摘要。如您所見,已成功啟用。
- 如果您想查看高可用性報告,可以點擊
View Report按鈕,可顯示高可用性測試的更詳細結果。
Hyper-V 故障移轉叢集的設定已完成,目前叢集中已有一台高可用性虛擬機器正在運行。您可以在叢集中建立更多虛擬機器,以使用 Hyper-V 高可用性功能。
結語
Hyper-V 故障移轉叢集可讓您在發生故障時減少虛擬機器的停機時間。然而,若未定期執行 Hyper-V 叢集備份,此功能將無法保護您的虛擬機器資料。由於虛擬機器可在 Hyper-V 故障移轉叢集中的主機之間遷移,因此備份虛擬機器可能是一項艱鉅的任務。使用 NAKIVO 的解決方案,即使是在叢集中運行的虛擬機器,也能輕鬆完成備份。

























