Nutanix CE の AHV で、ユーザ VM の vCPU の様子を見てみます。
今回は、ゲスト OS / ホスト OS で、それぞれ lscpu を見るだけです。
Oracle Linux 7 KVM での vCPU
まず比較対象として、Oracle Linux 7.5 KVM の上で起動している、virt-install で作成して特に設定をカスタマイズしていない VM の vCPU の認識を見てみます。
[root@ol7-on-kvm ~]# cat /etc/oracle-release Oracle Linux Server release 7.5 [root@ol7-on-kvm ~]# virt-what kvm [root@ol7-on-kvm ~]# dmidecode | grep "System Information" -A2 System Information Manufacturer: Red Hat Product Name: KVM
lscpu で、CPU のモデルやフラグ情報などを見てみます。
[root@ol7-on-kvm ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 61 Model name: Intel Core Processor (Broadwell, IBRS) Stepping: 2 CPU MHz: 0.000 BogoMIPS: 4608.00 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU(s): 0 Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm 3dnowprefetch invpcid_single ibrs ibpb pti fsgsbase bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt
virsh console で接続していたので、VM から抜けて KVM ホストでの VM 定義を見ておきます。
[root@ol7-on-kvm ~]# [root@lab-kvm-01 ~]# [root@lab-kvm-01 ~]# virsh list Id 名前 状態 ---------------------------------------------------- 3 vm01 実行中 [root@lab-kvm-01 ~]#
virsh dumpxml で見ると、この VM の vCPU の定義は下記のようになっていました。
KVM ホスト側の lscpu では、ゲスト OS とは CPU モデルが異なります。(実は VMware ESXi 上の Nested Nutanix CE です。)
[root@lab-kvm-01 ~]# LANG=C lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 2 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 79 Model name: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz Stepping: 0 CPU MHz: 2303.150 BogoMIPS: 4608.00 Virtualization: VT-x Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0,1 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat invpcid_single ibrs stibp ia32_arch_caps ibpb pti tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt
AHV での vCPU
AHV 上で起動してる Oracle Linux 7 の VM です。virt-what はなぜか hyperv ですが、AHV 上の VM です。
[root@ol7-on-ahv ~]# cat /etc/oracle-release Oracle Linux Server release 7.5 [root@ol7-on-ahv ~]# virt-what hyperv [root@ol7-on-ahv ~]# dmidecode | grep "System Information" -A2 System Information Manufacturer: Nutanix Product Name: AHV
lscpu の結果を見てみます。
[root@ol7-on-ahv ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 15 Model: 6 Model name: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz Stepping: 1 CPU MHz: 0.000 BogoMIPS: 4608.00 Hypervisor vendor: Microsoft Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K L3 cache: 16384K NUMA node0 CPU(s): 0 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc nopl pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat invpcid_single stibp pti fsgsbase tsc_adjust bmi1 hle smep bmi2 invpcid rtm rdseed adx smap
AHV(192.168.5.1)側での VM 定義を見ておきます。
CVM$ ssh root@192.168.5.1 virsh list FIPS mode initialized Id Name State ---------------------------------------------------- 1 NTNX-68fda404-A-CVM running 4 3ef4bcac-624e-4ac0-9310-9006de173fe5 running
AHV での virsh dumpxml で見た、vCPU の定義情報です。
AHV 側での lscpu です。
CVM$ ssh root@192.168.5.1 lscpu FIPS mode initialized Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 4 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 79 Model name: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz Stepping: 0 CPU MHz: 2304.000 BogoMIPS: 4608.00 Virtualization: VT-x Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat spec_ctrl stipb ia32_arch_caps retpoline tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt
AHV でも ESXi での EVC のような仕組みがあるのですが、このあたりの VM の定義を見ると具体的な実装方法が見えそうな気がします。
以上。