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 來啟用處理器相容性模式:
連線至叢集,然後在 [工具] 窗格中選取 [虛擬機器]。
在 [清查] 下,選取您要啟用處理器相容性模式的 VM,展開 [電源] 功能表,然後選取 [關機]。
選取 [設定],再選取 [處理器],然後勾選 [處理器相容性] 方塊。
如果要將 VM 的 CPU 功能設定為叢集上所有伺服器支援的最高程度,請選取 [整個叢集相容 (建議)]。 這樣可達到最高 VM 效能,同時仍然能夠將執行中 VM 移至叢集上的其他伺服器。 針對 Azure Stack HCI 21H2 叢集上執行的所有 VM,建議啟用此選項;如果停用,則 VM 必須重新開機,才能移至支援的 CPU 指令等級不同的主機,通常是具有不同世代的 CPU。
或者,如果要將 VM 的 CPU 功能設定為最少,以確保您可以將執行中 VM 移至叢集外的其他 Hyper-V 主機 (前提是 CPU 製造商相同),請選取 [與相同 CPU 製造商的其他主機相容]。
注意
就像動態處理器相容性模式一樣,[整個叢集相容] 為 Azure Stack HCI 21H2 專用,不支援任何其他作業系統。
選取 [儲存處理器設定],然後重新啟動 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
後續步驟
如需詳細資訊,請參閱:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應