B.15. libvirtd の開始時に存在するゲスト仮想マシンがない
- 現象
- libvirt デーモンは正常に起動したが、ゲスト仮想マシンが見当たらない。
# virsh list --all Id Name State ---------------------------------------------------- #
- 調査
- この問題の原因としていくつもの原因が考えられます。以下のテストを実施して原因を特定します。
- KVM カーネルモジュールの確認
- KVM カーネルモジュールがカーネルに挿入されていることを確認する。
# lsmod | grep kvm kvm_intel 121346 0 kvm 328927 1 kvm_intel
AMD マシンを使用している場合は、root シェルの同様のコマンドlsmod | grep kvm_amdを使用して、kvm_amd
のカーネルモジュールがカーネルに挿入されていることを確認します。モジュールがない場合は、modprobe <modulename> を使用して挿入します。注記一般的ではありませんが、KVM 仮想化サポートがカーネルにコンパイルされている場合もあります。その場合は、モジュールは必要ありません。 - 仮想化拡張機能の確認
- 仮想化拡張機能がホスト上でサポートされ、有効にされていることを確認します。
# egrep "(vmx|svm)" /proc/cpuinfo flags : fpu vme de pse tsc ... svm ... skinit wdt npt lbrv svm_lock nrip_save flags : fpu vme de pse tsc ... svm ... skinit wdt npt lbrv svm_lock nrip_save
BIOS 設定内のファームウェア設定で仮想化拡張機能を有効にします。詳細は、ハードウェアのドキュメントを参照してください。 - クライアント URI 設定の確認
- クライアントの URI が必要に応じて設定されていることを確認します。
# virsh uri vbox:///system
たとえば、このメッセージは URI が QEMUではなく VirtualBox ハイパーバイザーに接続されていることを示し、本来は QEMU ハイパーバイザーに接続するように設定されているはずの URI の設定エラーを示しています。URI が QEMU に正常に接続している場合は、メッセージは以下のようになります。# virsh uri qemu:///system
他のハイパーバイザーが存在し、libvirt がこのハイパーバイザーとデフォルトで通信する場合に、この状況が発生します。
- ソリューション
- これらのテスト実行後に、以下のコマンドでゲスト仮想マシンの一覧を表示します。
# virsh list --all