vCenter Server 的 CPU 相容性檢查可比較來源主機上可用的 CPU 功能、虛擬機器可存取的功能子集以及目標主機上可用的功能。不使用 EVC 時,不管虛擬機器本身能否存取這些功能,主機的使用者層級功能之間存在任何不相符情況都會阻止移轉。僅當虛擬機器存取目標主機未提供的功能時,主機的核心層級功能之間存在不符情況才會阻止移轉。
使用者層級功能是非權限指令,由虛擬機器應用程式使用。這些指令包含 SSE3、SSSE3、SSE4.1、SSE4.2 和 AES。因為這些是略過虛擬層的使用者層級指令,如果有不符,在運用 vMotion 進行移轉後可能導致應用程式不穩定。
核心層級功能為權限指令,由虛擬機器作業系統使用。這些指令包含 AMD No eXecute (NX) 和 Intel eXecute Disable (XD) 安全性功能。
嘗試透過 vMotion 移轉虛擬機器時,會出現以下其中一種狀況:
- 目的地主機功能集與虛擬機器的 CPU 功能集相符。滿足 CPU 相容性需求,運用 vMotion 進行的移轉會繼續執行。
- 虛擬機器的 CPU 功能集包含目的地主機不支援的功能。不滿足 CPU 相容性需求,運用 vMotion 進行的移轉無法繼續執行。
備註: EVC 透過為叢集中正在執行的所有虛擬機器提供「基準」功能集來克服此類相容性問題。此基準功能集會向虛擬機器隱藏叢集主機 CPU 之間的差異。
- 目的地主機支援虛擬機器的功能集,以及虛擬機器功能集中沒有的其他使用者層級功能 (例如 SSE4.1)。不滿足 CPU 相容性需求,運用 vMotion 進行的移轉無法繼續執行。
備註: 對於 EVC 叢集中主機之間的移轉,會略過此類不相容情況。
- 目的地主機支援虛擬機器的功能集,以及虛擬機器功能集中沒有的其他核心層級功能 (例如 NX 或 XD)。滿足 CPU 相容性需求,運用 vMotion 進行的移轉會繼續執行。當虛擬機器保持電源開啟狀態時,就會保留其 CPU 功能集,從而可以自由移轉回原始主機。但是,如果虛擬機器重新開機,則會從新主機中獲取新的功能集。如果嘗試將虛擬機器重新移轉回原始主機,則此程序可能會造成 vMotion 不相容。