仮想マシンがどんなハイパーバイザ上で動いているか確認する

今使っている OS の仮想マシン、またはインスタンスがどんなハイパーバイザ上で動いているか確認するためには、CPU 情報を確認する必要があります。

CPU 情報を確認する方法には、主に以下の二通りがあります。

  • /proc/cpuinfo を cat する
  • lscpu コマンドを使う

特に、cpuinfo に関しては、CPU モデル名MHzキャッシュサイズハイパーバイザ上で動いているか 等の情報を各 CPU コアごとに確認することはできます。

また、ハイパーバイザ上で動いているかどうかについては確認できますが、VMware、KVM のようなハイパーバイザ・ベンダの種類までは特定することが出来ません。 (lscpu は可能)

以下は、/proc/cpuinfo を cat した時の出力結果 ですが、flagshypervisor が存在したらハイパーバイザ上で動いていることになります。

flags の詳細については、以下の URL を参考にしてください。

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz
stepping        : 2
microcode       : 43
cpu MHz         : 2596.992
cache size      : 25600 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat epb pln pts dts
bogomips        : 5193.98
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

・・・ CPU Core 数分だけ上記の情報が表示される ・・・
/proc/cpuinfo : Core 数確認Raw Code(S)Raw Code(T)
# cat /proc/cpuinfo | grep "processor" | wc -l
8

上記のように、/proc/cpuinfoflags を確認することでハイパーバイザ上で動いていることは分かりますが、ハイパーバイザの種類・ベンダまでは、確認することが出来ません。

そういう時には、以下のように lscpu コマンドを実行します。

  • 左側 : VMware の場合
  • 右側 : KVM の場合

左側の ハイパーバイザーベンダーVMware になっているので、ハイパーバイザは、ESXi になります。

lscpu : VMware の場合 (8 Core)
# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
コアあたりのスレッド数:1
ソケットあたりのコア数:2
Socket(s):             4
NUMAノード:         1
ベンダーID:        GenuineIntel
CPUファミリー:    6
モデル:             45
ステッピング:    2
CPU MHz:               2596.992
BogoMIPS:              5193.98
ハイパーバイザーベンダー:VMware
仮想化タイプ:    完全仮想化
L1d キャッシュ:   32K
L1i キャッシュ:   32K
L2 キャッシュ:    256K
L3 キャッシュ:    25600K
NUMA node0 CPU(s):     0-7
lscpu : KVM の場合 (3 Core)
# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                3
On-line CPU(s) list:   0-2
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             3
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              11
CPU MHz:               2400.206
BogoMIPS:              4800.41
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0-2
 

以上、仮想マシンが動いているハイパーバイザの確認方法 でした。