在 Windows Server 伺服器上設定 Hyper-V 叢集:逐步指南

對於虛擬基礎架構而言,特別是在大型資料中心中,消除單點故障並確保服務與應用程式的高可用性,是其中一項關鍵需求。 在 Hyper-V 環境中,可運用 Microsoft 故障移轉叢集技術來配置多個 Hyper-V 主機(或節點),以便當其中一台主機發生故障時,其工作負載能由其他主機接管。

在這份逐步指南中,您將學習 Hyper-V 故障移轉叢集配置的實務要點,包括初始主機與網路設定、Hyper-V 角色的安裝,以及叢集的建立。

NAKIVO for Hyper-V 複製

NAKIVO for 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 是相似的。

Initial server configuration required for building a cluster

  • Updates. 我們需要根據 Hyper-V 叢集的最佳實踐,將所有預備中的 Hyper-V 叢集節點更新至可用的最新修補程式版本。在 Hyper-V 主機上安裝更新可提升系統的安全性。您可能需要重新啟動 Windows 才能完成更新的安裝。

Installing Windows updates is one of Hyper V clustering best practices

  • 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 主機的基本設定。

  1. 在 FreeNAS 中啟動 iSCSI 服務,並設定儲存網路的網路配置,使其與您打算用於 Hyper-V 主機的設定相符。
  2. 請檢查我們即將建立的目標之基礎 IQN 設定。

Creating an iSCSI share for Hyper-V cluster storage

  1. 在 FreeNAS 中設定一個入口,用以監聽 iSCSI 流量。

Creating an iSCSI Portal on FreeNAS

  1. 設定 iSCSI 目標名稱。在我們的 FreeNAS 裝置中,我們正在設定:
  • a quorum 將用作磁碟見證的磁碟區
  • 一個將用作 Hyper-V 叢集共用磁碟區的磁碟區,用以存放我們的虛擬機器

註: 在 Windows 叢集中,"法定人數"是一種機制,用於確保當叢集的某些部分發生故障時,叢集仍能擁有多數的可用資源,以維持運作。

  • Starting with Windows Server 2012, 預設情況下,叢集中的每個節點都擁有單一的法定票數。透過在 Windows Server 2016 中新增一個基於檔案分享、磁碟或新雲端儲存帳戶的額外票數,叢集的一方應能透過宣稱該檔案分享、磁碟或雲端儲存帳戶的票數,始終獲得超過 50% 的法定票數。
  • With Windows Server 2012 R2, 建議已變更為應始終設定磁碟或檔案分享見證。僅當節點數量為偶數時,才會將投票權擴展至額外的見證(檔案分享、磁碟或雲端儲存帳戶)。若節點數量為奇數,該見證將不具投票權且不會被使用。

在下方的螢幕截圖中,我們已建立兩個目標名稱:一個用作磁碟見證的法定人數卷,以及一個用作叢集共用卷的卷。

Configuring iSCSI targets for a witness and Hyper-V cluster shared volume

  1. 新增儲存區,在下方的範例中,這些儲存區已映射至我們在 FreeNAS 裝置中實際指派的個別磁碟。

Adding Extents in FreeNAS

  1. 將目標與儲存關聯。這些目標會映射至 FreeNAS 中的儲存空間。

Associating iSCSI targets with Extents in FreeNAS

安裝 Hyper-V 角色

安裝 Hyper-V 角色 服務,請在 PowerShell 指令 提示:

Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -IncludeManagementTools -Restart

Installing a Hyper-V role is a requirement for Hyper-V cluster configuration

設定儲存裝置:新增 iSCSI 入口網站位址

在新增我們的 iSCSI 入口位址之前,我們需要依照以下步驟設定並啟動 Microsoft iSCSI 服務:

  1. 將服務設定為自動。

Set-Service -Name msiscsi -StartupType Automatic

  1. 啟動服務。

Start-Service msiscsi

  1. 使用 PowerShell 新增已配置的 iSCSI 入口點位址:

New-iscsitargetportal -targetportaladdress

Configuring Hyper-V cluster storage – adding the iSCSI portal address

  1. 連線至特定的 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.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 指令。

Verifying whether iSCSI targets have been added for Hyper-V cluster storage

註: 您可以使用 get-disk 執行此指令以顯示磁碟資訊,並確認 Hyper-V 叢集共用儲存體處於線上且運作正常。

Checking configuration of Hyper-V cluster shared storage

設定虛擬交換器

設定 虛擬交換器 這是正確設定 Hyper-V 故障移轉叢集網路所必需的。我們可以使用 PowerShell 或 Hyper-V 管理員 設定 Hyper-V 的虛擬交換器。

以下是 PowerShell 中建立虛擬交換器的指令範例:

New-VMSwitch "ExternalSwitch01" -NetAdapterName "Public" -AllowManagementOS 1

註: 請在兩台主機上設定相同的虛擬交換機名稱,因為我們需要確保虛擬交換機相互對應,特別是在執行即時遷移時。

Network configuration for Hyper-V failover clustering

建立 Hyper-V 叢集

使用 PowerShell,建立叢集只需執行一行簡單的命令。

  1. 在建立叢集之前,請執行此指令以確認叢集設定符合 Hyper-V 叢集的最佳實踐:

Test-Cluster H1,H2

  1. 請使用 new-cluster 用於建立叢集,並為叢集指派名稱、節點及靜態 IP 位址的命令。

New-Cluster -Name HVCluster -node H1,H2 -staticAddress 192.168.85.75

How to create Hyper-V cluster in PowerShell

  1. 當叢集建立程序完成時,您會在命令列中看到顯示叢集名稱的輸出結果。

Hyper-V cluster setup in PowerShell

Hyper-V 叢集共用磁碟區

儘管我們從 iSCSI 目標的角度來看已具備共用儲存空間,但我們仍需確保存放虛擬機器的儲存空間已設定在 Hyper-V 上 clustered shared volume. 叢集共用磁碟區 (CSV) 首次出現在 Windows Server 2008 R2 中,旨在配合 Hyper-V 角色使用,以便虛擬機器能夠擁有 VHD 檔案 叢集中的任何節點皆可存取。CSV 還內建了韌性機制,包括 I/O 故障偵測功能,可在通訊失敗時啟用備用通訊路徑。

讓我們逐步了解如何為虛擬機器建立叢集共用卷。

  1. 將用於虛擬機器儲存的叢集磁碟資源重新命名(可選)。在我們的實驗室環境中,此資源為 叢集磁碟 1:

(Get-ClusterResource | ?{$_.Name -eq "Cluster Disk 1"}).name = "VMs"

  1. 現在我們可以將此磁碟區新增至叢集共用磁碟區:

Get-ClusterResource -Name "VMs"| Add-ClusterSharedVolume

註: 我們也可以使用"故障移轉叢集管理員"將磁碟新增至 CSV:

Configuring Hyper-V cluster shared storage

  1. 請使用 get-clustersharedvolume commandlet。

Checking a state of a Hyper V cluster shared volume in PowerShell

註: 如果您有一台管理工作站,需要透過 Failover Cluster Manager, 您可以透過連線至儲存來查看儲存的 GUI Windows 故障移轉 叢集。在此我們可以清楚地看到 磁碟 可用的資源及其所分配的角色。下方我們可以看到"Quorum"和"VMs"磁碟,後者已被指定為叢集共用磁碟。

Hyper-V cluster storage is configured

變更 Hyper-V 儲存設定

既然我們已經設定好叢集共用磁碟區,現在可以變更 Hyper-V 設定,將 Hyper-V 叢集共用磁碟區設為儲存虛擬機器的預設位置。

Hyper-V Settings 對於每個主機,請將 Virtual Hard Disks 位置以及 Virtual Machines 位置指向您的叢集共用卷,即 C:ClusterStoragevolume(x) 在您的 Hyper-V 主機上。

Selecting Hyper-V cluster storage to store VM data

建立高可用性虛擬機器

現在我們可以啟動"故障移轉叢集管理員",並開始建立一臺高可用性虛擬機器。

  1. 右鍵點擊 Roles 並選擇建立一個 New Virtual Machine.

Creating a HA VM to finish the Hyper-V cluster setup

  1. 請選擇虛擬機器的 Hyper-V 主機(即叢集節點之一)。

Selecting a cluster node to create a new Hyper-V VM

  1. 逐步完成 New Virtual Machine Wizard 提示您建立一台新的虛擬機器。

Entering a VM name and using Hyper-V cluster storage

  • Connect Virtual Hard Disk 在精靈的此步驟中,請確保虛擬機器是建立在我們的 Hyper-V 叢集共用磁碟上。

Creating a new virtual disk on the Hyper-V cluster shared volume

  • Summary 此步驟會顯示我們所選的選項。

Finishing the VM creation in a Hyper-V Failover cluster

  1. 當您點擊"完成"時, High Availability Wizard 顯示在角色和虛擬機器上啟用高可用性的摘要。如您所見,已成功啟用。

Checking High Availability for Hyper-V failover clustering

  1. 如果您想查看高可用性報告,可以點擊 View Report 按鈕,可顯示高可用性測試的更詳細結果。

Viewing the high availability report for Hyper-V clustering

Hyper-V 故障移轉叢集的設定已完成,目前叢集中已有一台高可用性虛擬機器正在運行。您可以在叢集中建立更多虛擬機器,以使用 Hyper-V 高可用性功能。

Hyper-V cluster setup has been finished

結語

Hyper-V 故障移轉叢集可讓您在發生故障時減少虛擬機器的停機時間。然而,若未定期執行 Hyper-V 叢集備份,此功能將無法保護您的虛擬機器資料。由於虛擬機器可在 Hyper-V 故障移轉叢集中的主機之間遷移,因此備份虛擬機器可能是一項艱鉅的任務。使用 NAKIVO 的解決方案,即使是在叢集中運行的虛擬機器,也能輕鬆完成備份。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read