Azure Stack HCI 中的動態處理器相容性模式

適用於:Azure Stack HCI 版本 23H2 和 22H2

注意

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

Azure Stack HCI 中的動態處理器相容性模式已更新,可在叢集環境中利用新的處理器功能。 處理器相容性判斷叢集上每個節點支援的處理器功能,並計算所有處理器之間的共通性。 虛擬機器 (VM) 設定為在叢集的所有伺服器上使用最多的功能。 效能高於舊版處理器相容性預設固定只用一組最少的處理器功能。

如需 Windows Server 中處理器相容性模式的相關資訊,請參閱 Hyper-V 中的處理器相容性模式

處理器相容性模式的使用時機

處理器相容性模式可讓您在具有不同處理能力集的節點之間,移動即時 VM (即時遷移) 或移動已儲存的 VM。 但是,即使已啟用處理器相容性,也無法在不同處理器製造商的主機之間移動 VM。 例如,無法將執行中 VM 或儲存狀態 VM,從具有 Intel 處理器的主機移至具有 AMD 處理器的主機。 如果必須這樣移動 VM,請先關閉 VM,然後在新主機上重新啟動 VM。

重要

只有搭配最新設定版本 (10.0) 的 Hyper-V VM,才能享用動態設定。 搭配較舊版本的 VM 無法享用動態設定,只能繼續使用前一版固定的處理器功能。

對於 Azure Stack HCI 上執行的 VM,建議啟用處理器相容性模式。 這樣可發揮最大的能力,在需要遷移至新的硬體時,移動 VM 不需要停機。

注意

如果您打算停止再重新啟動 VM,則不需要使用處理器相容性模式。 每當 VM 重新開機時,客體作業系統會列舉新主機電腦上可用的處理器相容性。

需要處理器相容性模式的原因

處理器製造商通常在處理器中引進最佳化和功能。 這些功能通常使用特殊硬體來執行特定工作,以改善效能或安全性。 例如,許多媒體應用程式都使用處理器功能來加速向量計算。 執行應用程式很少需要這些功能,只是提升效能而已。

處理器上可用的功能集根據品牌、型號和年代而有所不同。 作業系統和應用程式軟體在第一次啟動時,通常會列舉系統的處理器功能集。 軟體預料其存留期內可用的處理器功能不會改變,當然,在實體電腦上執行時,這永遠不會發生,因為除非處理器升級,否則處理器功能都固定。

不過,VM 行動功能允許執行中 VM 遷移至新的虛擬化主機。 如果 VM 中的軟體已偵測到並開始使用特定的處理器功能,但 VM 移至缺少該功能的新虛擬化主機,則軟體可能會失敗。 這可能會導致應用程式或 VM 損毀。

為了避免失敗,每次起始 VM 即時移轉或儲存/還原作業時,Hyper-V 會執行「預檢」。 這些檢查會比較來源主機與目標主機上可供 VM 使用的處理器功能集。 如果這些功能集不相符,則會取消遷移或還原作業。

處理器相容性模式的最新功能

在過去,所有新的處理器指令集都隱藏,也就是說,客體作業系統和應用程式軟體無法利用新的處理器指令集增強功能,以協助應用程式和 VM 保持效能。

為了克服這項限制,處理器相容性模式已更新,在支援第二層位址轉譯 (SLAT) 的處理器上提供增強的動態功能。 這項新功能從叢集上各節點支援的 CPU 功能中計算共通性,並更新 VM 上現有的處理器相容性模式,以使用這組動態計算的功能集,而不是舊的固定功能集。

在 Azure Stack HCI 環境中,新的處理器相容性模式揭露叢集上所有伺服器的共同功能集,以確保各虛擬化主機上可供 VM 使用的處理器功能集相符。 每個 VM 獲得叢集上所有伺服器都有的最多處理器指令集。 此流程自動進行,且一律啟用並複寫到整個叢集,因此無須命令來啟用或停用此流程。

在叢集之間遷移執行中 VM

假設每個叢集的所有伺服器都以相同的硬體運作 (Azure Stack HCI 的需求),則可以在叢集之間即時遷移執行中 VM。 有三種常見情節。

  • 從具有新處理器的叢集,將 VM 即時移轉至具有相同處理器的叢集。 VM 功能會轉移到目的地叢集。 此情節不需要啟用處理器相容性模式,但保持啟用也不會有任何問題。

  • 從處理器較舊的叢集,將 VM 即時移轉至處理器較新的叢集。 VM 功能會轉移到目的地叢集。 在此情節中,如果 VM 重新開機,則會獲得目的地叢集最新計算的功能。

  • 從處理器較新的叢集,將 VM 即時移轉至處理器較舊的叢集。 您必須在 PowerShell 中以 CompatibilityForMigrationMode 參數將 VM 處理器設定為使用 MinimumFeatureSet,或在 Windows Admin Center 中的 [虛擬機器] > [設定] > [處理器] 下,選取 [與相同 CPU 製造商的其他主機相容]。 這會將伺服器上提供的最少處理器功能指派給 VM。 一旦將相容性移至 [整個叢集相容性 (建議)],並重新啟動 VM,VM 就會獲得目的地叢集上最新計算的功能。

將 VM 設定為使用處理器相容性模式

本節說明如何使用 Windows Admin Center 或 PowerShell,將 VM 設定為使用處理器相容性模式。 在相同叢集上可以啟用和停用相容性模式來執行 VM。

重要

您必須先關閉 VM,才能啟用或停用處理器相容性模式。

使用 Windows Admin Center 啟用處理器相容性模式

若要使用 Windows Admin Center 來啟用處理器相容性模式:

  1. 連線至叢集,然後在 [工具] 窗格中選取 [虛擬機器]。

  2. 在 [清查] 下,選取您要啟用處理器相容性模式的 VM,展開 [電源] 功能表,然後選取 [關機]。

  3. 選取 [設定],再選取 [處理器],然後勾選 [處理器相容性] 方塊。

    核取方塊以啟用處理器相容性

  4. 如果要將 VM 的 CPU 功能設定為叢集上所有伺服器支援的最高程度,請選取 [整個叢集相容 (建議)]。 這樣可達到最高 VM 效能,同時仍然能夠將執行中 VM 移至叢集上的其他伺服器。 針對 Azure Stack HCI 21H2 叢集上執行的所有 VM,建議啟用此選項;如果停用,則 VM 必須重新開機,才能移至支援的 CPU 指令等級不同的主機,通常是具有不同世代的 CPU。

    或者,如果要將 VM 的 CPU 功能設定為最少,以確保您可以將執行中 VM 移至叢集外的其他 Hyper-V 主機 (前提是 CPU 製造商相同),請選取 [與相同 CPU 製造商的其他主機相容]。

    注意

    就像動態處理器相容性模式一樣,[整個叢集相容] 為 Azure Stack HCI 21H2 專用,不支援任何其他作業系統。

  5. 選取 [儲存處理器設定],然後重新啟動 VM。

使用 PowerShell 啟用處理器相容性模式

若要啟用處理器相容性模式,請執行下列 Cmdlet:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true 

建議您將 VM 的 CPU 功能設定為叢集上所有伺服器支援的最高程度。 這樣可達到最高 VM 效能,同時仍然能夠將執行中 VM 移至叢集上的其他伺服器。

若要讓 VM 使用叢集節點的共同功能,請執行下列 Cmdlet:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true -CompatibilityForMigrationMode CommonClusterFeatureSet

或者,您可以將 VM 的 CPU 功能設定為最少,以確保您可以將執行中 VM 移至叢集外的其他 Hyper-V 主機 (如果 CPU 製造商相同)。

若要讓 VM 使用預設最少功能來跨叢集遷移,請執行下列 Cmdlet:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true -CompatibilityForMigrationMode MinimumFeatureSet

後續步驟

如需詳細資訊,請參閱: