Xeon E5/E3とXeon 5500/5600系CPU混在環境にてvMotionするときに必要な設定についてのメモです。

VMwareにはEVC(Enhanced vMotion Capability)という機能がありますが、

SandyBridge以降ではIntel AVCという命令コードが追加されており、vSphereからはそれを無効に出来ないため、

ESX5.5ではXeon E5が混ざると5500/5600マシンからE5へvMotionするとEVCが有効でもE5から5600系に戻れなくなります。

それを防ぐためのメモです。

※E5のマシン上で既に動いているマシンについては、適用するにはPowerOff→PowerOnが必要です。

前提

EVCが有効になっていること

(5600系とE5が混ざることを想定し、Westmare世代で揃えている前提で進めます)

ちなみに、設定すると以下の内容がホストに配布されるようです。

featureCompat.evc.completeMasks = "TRUE"
featMask.evc.cpuid.Intel = "Val:1"
featMask.evc.cpuid.FAMILY = "Val:6"
featMask.evc.cpuid.MODEL = "Val:0x25"
featMask.evc.cpuid.STEPPING = "Val:1"
featMask.evc.cpuid.NUMLEVELS = "Val:0xb"
featMask.evc.cpuid.NUM_EXT_LEVELS = "Val:0x80000008"
featMask.evc.cpuid.CMPXCHG16B = "Val:1"
featMask.evc.cpuid.DS = "Val:1"
featMask.evc.cpuid.LAHF64 = "Val:1"
featMask.evc.cpuid.LM = "Val:1"
featMask.evc.cpuid.MWAIT = "Val:1"
featMask.evc.cpuid.NX = "Val:1"
featMask.evc.cpuid.SS = "Val:1"
featMask.evc.cpuid.SSE3 = "Val:1"
featMask.evc.cpuid.SSSE3 = "Val:1"
featMask.evc.cpuid.SSE41 = "Val:1"
featMask.evc.cpuid.POPCNT = "Val:1"
featMask.evc.cpuid.RDTSCP = "Val:1"
featMask.evc.cpuid.SSE42 = "Val:1"
featMask.evc.cpuid.VMX = "Val:1"
featMask.evc.hv.capable = "Val:1"
featMask.evc.cpuid.AES = "Val:1"
featMask.evc.cpuid.PCLMULQDQ = "Val:1"
featMask.evc.vt.realmode = "Val:1"

 

設定手順

E5を搭載したESXホストへSSHアクセスを可能にする

SSH以外にもESXシェルを有効にしてローカルコンソールから編集しても良いです。手入力になるので大変ですが。

その辺の手順は省略します。

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1002866

/etc/vmware/configを編集する

編集するにあたりバックアップを取得します。

 cp /etc/vmware/config /etc/vmware/config_`date +%F`

viで編集します。

vi /etc/vmware/config 

以下の行を一番下に追加します(任意の場所に追加しても反映されますが)

cpuid.1.ecx = "-00-:----:----:----:----:----:----:----"

保存します

:wq

ESXホストの再起動は不要です。

E5/E3ホスト上のマシンの電源停止を行ったあと、起動する

上記設定を適用するには、一度動いているマシンを完全停止する必要があります。再起動では駄目です。

VMが起動するタイミングでVMに対して上記CPUマスクがVMに適用され、以降vMotionが出来るようになります。

 

vSphere6ではどうなっているか未検証です

Related articles

Related articles appear here based on the labels you select. Click to edit the macro and add or change labels.

Related issues