仮想化対応CPUか確認する Intel VT

仮想化対応CPUか確認する Intel VT

仮想化するのに VMware とか KVM とか Xen とか様々な方法があるけど、最新の仮想化技術ではプロセッサに Intel VT といわれる仮想化支援機能が必要らしい。

つまりハードウェアが対応していないと利用できないということ。
CPU の事なんか全くの無知なので、調べる術をメモ。

CPUの情報を表示するコマンド

cat /proc/cpuinfo

例えばこんなログが表示される

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 2
model name	: Intel(R) Xeon(TM) CPU 3.06GHz
stepping	: 9
cpu MHz		: 3061.967
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips	: 6124.17

項目の意味はこちらなどで解説されていた。
/proc/cpuinfoの中身
/proc/cpuinfo 再調査編

CPUに仮想化支援機能があるか確かめる

@IT:KVMの導入と基本的な使い方 によれば、

使用している機器にCPUの仮想化支援機能があるかどうか分からない場合は、/proc/cpuinfoを見てみるとよいでしょう。Intel VTの場合はvmxが、AMD-Vの場合はsvmがあるか否かが1つの判断基準となります。

と言うことなので、以下のコマンドで確かめるとよい。

Intelの場合

grep vmx /proc/cpuinfo

AMDの場合

grep svm /proc/cpuinfo

CPUがサポートしていれば以下のようになるそう。

kvm:~ # grep vmx /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm

参考:KVM ベースの仮想サーバーを作成する