負載平衡虛擬機器

適用於:Azure Stack HCI 版本 23H2 和 22H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

注意

在 Azure Stack HCI 23H2 上建立和管理 VM 的建議方式是使用 Azure Arc 控制平面。 只有在您需要 Azure Arc VM 中無法使用的功能時,才能使用下列機制來管理 VM。

部署 HCI 時的其中一大考量是,要進入生產階段需要多少資本支出 (CapEx)。 在生產環境的尖峰流量期間,通常會新增備援以避免容量不足,但這會增加 CapEx。 由於叢集中的某些伺服器會裝載較多的虛擬機器 (VM),因此這個備援容量有其必要,然而其他伺服器卻又處於未充分利用的狀態。

根據預設,在 Azure Stack HCI、Windows Server 2022、Windows Server 2019 和 Windows Server 2016 中啟用,VM 負載平衡是一項功能,可讓您優化叢集中的伺服器使用率。 此功能會識別過度使用的伺服器,並即時地將這些伺服器中的 VM 遷移至未充分使用的伺服器。 諸如反親和性、容錯網域 (網站) 和可能的擁有者都是其會採用的失敗原則。

VM 負載平衡會根據下列啟發學習法來評估伺服器的負載:

  • 目前的記憶體壓力:記憶體是 Hyper-V 主機上最常見的資源限制。
  • 為時五分鐘的 CPU 使用率平均值:讓叢集中的伺服器會變得過度使用的情形減少。

VM 負載平衡的運作方式為何?

當您將新的伺服器新增至叢集時,便會自動進行 VM 負載平衡,而且也可以設定為會定期執行週期性的負載平衡。

將新的伺服器新增至叢集時

當您將新的伺服器加入叢集時,VM 負載平衡功能會自動地依下列順序,將現有伺服器的容量平衡到新加入的伺服器:

  1. 叢集中的現有伺服器會評估記憶體壓力和 CPU 使用率。
  2. 識別出超過閾值的所有伺服器。
  3. 識別出記憶體壓力和 CPU 使用率最高的伺服器,以判斷要進行平衡的優先順序。
  4. VM 即時地從超過閾值的伺服器遷移到叢集中新增的伺服器 (不會停機)。

顯示新增至叢集之新伺服器的影像

週期性負載平衡

根據預設,VM 負載平衡會設定為定期進行平衡:叢集中每部伺服器上的記憶體壓力和 CPU 使用率會每隔 30 分鐘評估一次,以決定是否進行平衡。 以下是步驟的流程:

  1. 叢集中的所有伺服器會評估記憶體壓力和 CPU 使用率。
  2. 識別出超過閾值和低於閾值的所有伺服器。
  3. 識別出記憶體壓力和 CPU 使用率最高的伺服器,以判斷要進行平衡的優先順序。
  4. VM 即時地從超過閾值的伺服器遷移到低於閾值下限的其他伺服器 (不會停機)。

顯示自動重新平衡即時叢集的影像

使用 Windows Admin Center 來設定 VM 負載平衡

若要設定 VM 負載平衡,最簡單的方式是使用 Windows Admin Center。

使用 Windows Admin Center 設定 VM 負載平衡

  1. 連線到叢集,然後移至 [工具] > [設定]。

  2. 在 [設定] 底下,選取 [虛擬機器負載平衡]。

  3. 在 [平衡虛擬機器] 底下,選取 [一律] (以在有伺服器加入時以及每隔 30 分鐘進行負載平衡)、[伺服器加入] (只在有伺服器加入時進行負載平衡) 或 [永不] (以停用 VM 負載平衡功能)。 預設設定是 [一律]。

  4. 在 [積極性] 底下,選取 [低] (以在伺服器負載超過 80% 時即時遷移 VM)、[中] (以在伺服器負載超過 70% 時進行遷移) 或 [高] (以計算叢集中的伺服器平均值,並在伺服器超過平均值 5% 時進行遷移)。 預設設定是 [低]。

使用 Windows PowerShell 來設定 VM 負載平衡

您可以使用叢集通用屬性 AutoBalancerMode 來設定負載平衡的進行時機。 若要控制叢集的平衡時機,請在 PowerShell 中執行下列命令,並替換下表中的值:

(Get-Cluster).AutoBalancerMode = <value>
AutoBalancerMode 行為
0 已停用
1 有伺服器加入時進行負載平衡
2 (預設值) 有伺服器加入時以及每隔 30 分鐘進行負載平衡

您也可以使用叢集通用屬性 AutoBalancerLevel 來設定進行平衡與否的積極性。 若要控制積極性閾值,請在 PowerShell 中執行下列命令,並替換下表中的值:

(Get-Cluster).AutoBalancerLevel = <value>
AutoBalancerLevel 積極性 行為
1 (預設值) 在主機負載超過 80% 時移動
2 在主機負載超過 70% 時移動
3 計算叢集中的伺服器平均值,並在主機超過平均值 5% 時移動

若要了解 AutoBalancerLevelAutoBalancerMode 屬性的設定方式,請在 PowerShell 中執行下列命令:

Get-Cluster | fl AutoBalancer*

後續步驟

如需相關資訊,另請參閱: