GNU/Linux >> Linux の 問題 >  >> Ubuntu

Qemu / Kvm:複数のコア/ CPUをゲストに渡すことができませんか?

複数のコア/CPUをKVMゲストに渡すことができないようです。私が何をするにしても、ゲストは1つのCPU/コアのみを報告します。

ホストハードウェア:Supermicroメインボード上のXeon E5620
ホストソフトウェア:Ubuntu 11.04(Natty)64ビット

Natty用に独自の(新しい)カーネル2.6.37をコンパイルしました(標準カーネルを使用した場合、PCIパススルーで特定の問題が発生したため)。ディストリビューションの他の部分は変更しませんでした。特に、含まれている元のqemu-kvmパッケージを使用しています。

virt-managerと関連ツールは、最初の基本的なアクションを試行したときに理解できないエラーメッセージで失敗していたため、ラッパー/マネージャーを使用する代わりに手動で仮想マシンを起動しています。私は次のようなコマンドを使用しています:

/usr/bin/qemu-system-x86_64 -M pc -cpu host -smp cores=2,threads=1,sockets=1 -drive file=/dev/sda6,if=virtio,cache=none,index=0 -drive file=/dev/sdb,if=virtio,cache=none,index=1 -cdrom /dev/cdrom -pidfile ./qemu-garak.pid -boot c -k de -m 4096 -smp 1 -device pci-assign,host=01:05.0 -daemonize -usb -usbdevice "tablet" -name garak -net nic,vlan=0,model=virtio,macaddr=02:01:01:01:01:01 -net tap,vlan=0,ifname=virtnet1,script=/etc/qemu-ifup,downscript=/etc/qemu-ifup -vnc :1

また、-cpuhostと-smpcores =1、threads =1、sockets =2(とりわけ)を試しました。

複数のWindowsゲスト(Server 2003 R2(32ビット)、Server 2008 R2(64ビット)、Windows XP Pro(32ビット)、Windows 7 Pro(64ビット))およびLinuxゲスト(Ubuntu 11.10(64ビット))を実行しています。 Debianスクイーズ(32ビット))、ただし、-smp設定に関係なく、これらはすべて1つのプロセッサ/コアのみを報告します。それに加えて、セットアップは確実に機能します。

今、私はゲストの1人に追加のCPUパワーが本当に必要なので、何が間違っているのか疑問に思っています。もちろん、Windows内でのHALの変更について読み、いくつかのこと(ユニプロセッサーHALとマルチプロセッサーHAL)を試しましたが、成功しませんでした。問題の解決に丸一日費やした後、他に何ができるかわかりません。

何が悪いのか誰かが知っていますか?複数のコアをゲストに渡せない原因となる可能性のあるカーネルコンパイルオプション(2.6.37)はありますか? qemu-kvmバージョンはカーネルバージョンに適合している必要がありますか(上記のようにゲストを起動したときに警告メッセージは表示されません)?

どうもありがとうございました

ビナルス

更新#1:

予想どおり、Linuxゲストにも複数のCPU /コアは表示されません:

[email protected]:~# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 44
model name      : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping        : 2
cpu MHz         : 2400.400
cache size      : 4096 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
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 up nopl pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm
bogomips        : 4800.80
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

[email protected]:~#

この出力は、-cpuhostおよび-smp2で開始されたゲストで生成されました。

関連:Gitkrakenはインストールされませんか?

承認された回答:

それでは、私を恥じてください:

上記のコマンドラインの中央には、すでにオプション「-smp1」があります。私はこれを覚えていませんでした、そして私は私のテストの間にそれを見ませんでした。削除すると、期待どおりに機能します。


Ubuntu
  1. CentOS8LinuxにKVMをインストールする方法

  2. Linux カーネルはいくつのコアを処理できますか?

  3. .sh スクリプトで実行する複数の引数を渡す方法

  1. libvirt_typeがKVMの場合、OpenStackがハイパーバイザータイプをQEMUとして報告するのはなぜですか?

  2. Xinputを無効にできませんか?

  3. Qemu と KVM の違い

  1. キムチ(Webインターフェース)でKVM(QEMU)を管理する

  2. コマンド出力を複数の引数として別のコマンドに渡す方法

  3. 複数のコアでコンパイルするときに make がハングする原因は何ですか?