Howto mask CPUID ve VMwářce?

Máme-li ve VMware clusteru více ESX hostů, tak je vMotion skoro povinnost, bez ní už to prostě nejde. Ale co s tím, když jsou generačně tyto hosti od sebe tak daleko , že se pro ně nenajde v EVC společný „jmenovatel“ a EVC prostě nejde zapnout?

Pak při migraci VM je možné vidět tuto hlášku:The virtual machine requires hardware features that are unsupported or disabled on the target hostGeneral incompatibilities

cpu1Řešení? Nejde-li zapnout EVC, a to ani po upgrade FW/BIOS serverů, pak nezbývá než prohlédnout si chybu, kde se nám to liší (V našem případě ECX/Level1 – toto závisí na použitém OS). Vypnout VM a upravit masku CPUID (vClient: Edit Settings -> záložka Options, nebo webClient: Edit Settings -> a přímo u CPU je CPUID mask -> Advance) – a teď jen zapnout VM, natočit kobereček k Mekce, zakleknout a hurá, už by mělo vMotion fungovat!

cpu2

Samozřejmě je to kostlivec, kterého zavíráme do pomyslné skříně změněné VM, proto je dobrý vědět u kterých VM to tak máme, ale jak nato, když je VM spuštěná a volby jsou zašedlý a navíc, komu se chce prolízat x serverů, že? Takže jak?  Co takhle PowerCLI 😉

PowerCLI C:\> get-vm | ? { $_.ExtensionData.Config.GuestFullName -like "*" } | select Name, @{N="CPU";E={$_.ExtensionData.Config.cpuFeatureMask}} | s
elect -Property Name -ExpandProperty CPU | Sort Name | findstr "Name 0"

About Author:

Error! Keyboard not detected. Press any key to continue.