處理器相容性模式可在具有不同處理器功能的主機之間進行虛擬機移轉。 它會限制虛擬機 (VM) 可用的處理器功能,以確保在具有不同處理器的主機或叢集之間移動 VM 時的相容性。
有時候您可能需要限制通過的處理器功能,例如當您想要移動即時虛擬機(VM)或具有不同處理器功能的主機或叢集之間儲存的 VM,或開發需要在各種硬體上執行的應用程式時。 在這些情況下,您可以使用處理器相容性模式。 建議您只在移轉程式期間啟用處理器相容性模式,然後停用它以允許 VM 利用主機處理器的完整功能。 如果您有具有不同處理器世代的叢集,則必須讓處理器相容性模式保持啟用,讓即時移轉能夠運作。
針對使用組態版本 10.0 或更新版本的 VM,在 Windows Server 2025 中引進的動態處理器相容性模式,可讓 VM 使用叢集中所有節點通用的動態計算處理器功能集,藉此增強舊版處理器相容性模式。 這表示 VM 可以利用叢集上可用的最大功能,同時在主機之間移動 VM 時仍能確保相容性。
若要了解處理器相容性模式,請參閱 Hyper-V 虛擬機中的處理器相容性。
本文說明如何使用 Hyper-V Manager、PowerShell 或 Windows Admin Center 設定 VM 的處理器相容性模式。
先決條件
開始之前,請確定您符合下列必要條件:
您可以管理存取 VM 執行所在的 Hyper-V 主機或叢集,以及要將它移轉至何處。
您想要設定處理器相容性模式的 VM 已關閉電源。 在 VM 執行時,無法啟用或停用處理器相容性模式。
針對執行 Windows Server 2025 或 Azure Local (先前為 Azure Stack HCI) 21H2 版的 Hyper-V 主機上的 VM 引進了動態處理器相容性模式,並使用設定版本 10.0 或更新版本。 如果您的 VM 使用舊版組態版本,請升級其組態版本,否則會使用標準處理器相容性模式。
設定 VM 以使用處理器相容性模式
本節說明如何使用 Hyper-V 管理員、PowerShell 或 Windows Admin Center,將 VM 設定為使用處理器相容性模式。 在相同的叢集中,可以執行具有和沒有相容性模式的 VM。 處理器相容性的兩種模式會以相同的方式啟用和停用。 動態處理器相容性模式對使用者而言是透明的,而且會在 VM 在叢集上執行時啟用。
針對您想要使用的方法,選取相關的索引標籤。
若要使用 Hyper-V Manager 啟用或停用 VM 的處理器相容性模式,請遵循下列步驟。 您無法在 Hyper-V Manager 中設定動態處理器相容性模式;請改用 PowerShell 或 Windows Admin Center。
確認 Hyper-V 主機和 VM 上的處理器功能
設定處理器相容性模式之後,您可以確認 Hyper-V 主機和 VM 上可用的處理器功能。 如果您想要檢查 VM 有一組預期的可用功能,這項資訊可能會很有用。
若要檢查 Hyper-V 主機和 Windows VM 上的處理器功能,您可以從 Sysinternals 執行 Coreinfo:
登入主機或 VM 並下載並解壓縮 Coreinfo 工具。
以系統管理員身分開啟 PowerShell,並流覽至您解壓縮 Coreinfo 的目錄。
執行下列命令。 如果這是此主機上第一次執行 Coreinfo,您必須接受許可協定。
.\Coreinfo.exe -f以下是您可能會看到的輸出截斷範例,其中每一行都代表處理器功能和星號 。
HTT * Hyperthreading enabled CET - Supports Control Flow Enforcement Technology Kernel CET - Kernel-mode CET Enabled User CET - User-mode CET Allowed HYPERVISOR * Hypervisor is present VMX - Supports Intel hardware-assisted virtualization SVM - Supports AMD hardware-assisted virtualization X64 * Supports 64-bit mode SMX - Supports Intel trusted execution SKINIT - Supports AMD SKINIT SGX - Supports Intel SGX ...
啟用處理器相容性模式時,您會看到與主機輸出相比,某些功能無法使用(以破折號 -表示)。 精簡清單表示 VM 正在處理器相容性模式中執行,且僅限於一組常見的功能。
如果您使用動態處理器相容性模式,VM 中可用的功能是叢集中所有節點通用的最大功能集。
Linux 虛擬機器
以下範例說明如何檢查 Debian 型或 Red Hat 型 Linux VM 上的處理器功能:
登入 VM 並開啟終端機。
執行下列命令以列出處理器功能:
lscpu | grep Flags以下是您可能會看到輸出的截斷範例:
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced kaiser fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves rdpid md_clear flush_l1d arch_capabilities
啟用處理器相容性模式時,您會看到與主機輸出相比,不會列出某些功能。 精簡清單表示 VM 正在處理器相容性模式中執行,且僅限於一組常見的功能。
如果您使用動態處理器相容性模式,VM 中可用的功能是叢集中所有節點通用的最大功能集。
個別叢集之間的 VM 實時移轉行為
假設每個叢集中的所有伺服器都執行相同的硬體,就可以在叢集之間即時移轉執行中的 VM。 有三個常見案例。
即時將 VM 從具有新處理器的叢集移轉至具有相同處理器的叢集。 VM 功能會傳輸到目的地叢集。 此案例不需要啟用處理器相容性模式;不過,將它保持啟用不應該造成任何移轉問題。
即時將 VM 從具有較舊處理器的叢集移轉至具有較新處理器的叢集。 VM 功能會傳輸到目的地叢集。 在此案例中,當 VM 重新啟動時,它會收到目的地叢集的最新計算功能。
即時將 VM 從具有較新處理器的叢集移轉至具有較舊處理器的叢集。 您必須將 VM 處理器設定為使用
MinimumFeatureSetPowerShell 中的 參數CompatibilityForMigrationMode,或選取 [在 Windows Admin Center 中 具有相同 CPU 製造商的其他主機相容 ]。 VM 重新啟動之後,就會收到目的地叢集的最新計算功能。