1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vmware仮想マシン上のUbuntuでmultipassを動かす為に仮想 CPU パフォーマンス カウンタが必要だった話

Last updated at Posted at 2021-08-13

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

vmwareの仮想マシンでUbuntuを動かしてmultipassから仮想マシンをネストして動かそうとしたときに
「仮想 CPU パフォーマンス カウンタ」が必要だった、というお話です。

1. 何が起こったか?

multipassで仮想マシンを動かそうとすると以下の様なエラーがでました。

user@user-virtual-machine:~$ multipass launch --name test2104 21.04
launch failed: The following errors occurred:
qemu-system-x86_64: error: failed to set MSR 0x48f to 0x7fffff00036dfb
qemu-system-x86_64: /build/qemu-rbeYHu/qemu-4.2/target/i386/kvm.c:2691: kvm_buf_set_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed.

2. 対応方法

2-1. vmware ESXiのNested Virtualizationを有効にします

ググれば沢山出てくると思うのでここでは割愛します。
vhv.enable = "TRUE"/etc/vmware/configに書きましょう

/etc/vmware/config
vhv.enable = "TRUE"

これで、vmxが有効になります。
cpuinfoをgrepすると以下の様にvmxが追加されます

$ grep -E 'svm|vmx' /proc/cpuinfo
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 arch_perfmon nopl xtopology 
tsc_reliable nonstop_tsc cpuid pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt 
tsc_deadline_timer aes xsave avx hypervisor lahf_lm pti ssbd ibrs ibpb stibp tpr_shadow vnmi 
ept vpid tsc_adjust arat md_clear flush_l1d arch_capabilities

2-2. 仮想 CPU パフォーマンス カウンタを有効にします

CPUのオプション設定で仮想 CPU パフォーマンス カウンタの有効化にチェックを入れます。

image.png

3. 動作確認

VMwareホストと仮想マシンを再起動してmultipass start します。

multipassの仮想マシンが動いたかmultipass listで確認します。

image.png

バッチリ動きましたね。

4. 環境情報

VMware : ESXi 7.0
Ubuntu OS: Ubuntu 20.04.2 LTS
multipss: multipass 1.7.0
qemu: 4.2-3ubuntu6.17

5. まとめ

vmwareで動かせると、bridgeも使えるようになったmultipassは超便利だと思います!

最初、以下のQEMUのバグかとおも思ったのですが、
Bug #1882774 “issues with secondary VMX execution controls” : Bugs : qemu package : Ubuntu
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1882774

メッセージをググり直すと以下の記事がヒットしました。
Can't start minishift on Ubuntu 18.04: "qemu-system-x86_64: error: failed to set MSR 0x38d to 0x0" · Issue #3210 · minishift/minishift
https://github.com/minishift/minishift/issues/3210#issuecomment-602923316

VMware + vMotionが有効な場合は、「CPUパフォーマンスカウンター」が利用できない場合があるそうなので、ご注意ください。

仮想 CPU パフォーマンス カウンタが有効になっている場合、互換性のある CPU パフォーマンス カウンタを持つホストにのみ
仮想マシンを移行できます。
ESXi ホストの BIOS がパフォーマンス カウンタを使用しているか、Fault Tolerance が有効になっている場合、一部の仮想
パフォーマンス カウンタは仮想マシンで使用できない場合があります。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?