Ubuntu Oneiric Server 64 AMDにKVMをインストールしました。
uname -a
Linux myhostname 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
同じOSでゲストを作ってみました。まず私はこれを試しました:
vmbuilder kvm ubuntu \
--suite oneiric --flavour virtual --Arch AMD64 \
--libvirt qemu:///system \
--ip 192.168.0.100 \
--hostname myguest \
--part vmbuilder.partition \
--user adminUser --name fullname--pass defaultPass \
--addpkg Apache2 --addpkg Apache2-utils --addpkg Tomcat6 --addpkg mysql-client \
--addpkg mysql-server --addpkg wwwconfig-common --addpkg dbconfig-common \
--addpkg Apache2.2-common --addpkg unattended-upgrades --addpkg vim \
--addpkg openssh-server \
--mem 2048 \
--bridge br0
(このため、シリアルコンソールを個別に設定する必要がありました)
次にこれ:
virt-install \
--connect qemu:///system -n myguest -r 2048 -f myguest.qcow2 \
-s 12 -c ubuntu-11.10-server-AMD64.iso --vnc --noautoconsole --os-type linux \
--os-variant ubuntuOneiric --accelerate --network=network:default
どちらの場合も、ゲストは正常に生成されます。次に、ゲストを起動しようとします。
virsh start myguest
virst list --all
Id Name State
----------------------------------
4 myguest running
次に、コンソールに接続してみます。
virsh --connect qemu:///system console myguest
Connected to domain myguest
Escape character is ^]
その後は何も起こりません。動作は両方のゲストで同じです。また、リモート接続を試みました。
場合によっては、KVMの場合、CPU使用率が100%に達します。現在、CPUを使用していません。
リモートで接続するとき、コンソール出力はもう少し興味深いものでした:
Booting from Harddisk
何もありません。また、virsh shutdown myhost
を呼び出せません。destroy
コマンドしか使用できません。
誰かが私がした間違いを指摘できますか?
dpkg --list | grep qemu
ii qemu-common 0.14.1+noroms-0ubuntu6.2
ii qemu-keymaps 0.15.50-2011.08-0ubuntu4
ii qemu-kvm 0.14.1+noroms-0ubuntu6.2
ii qemu-kvm-extras 0.15.50-2011.08-0ubuntu4
ii qemu-system 0.15.50-2011.08-0ubuntu4
ii qemu-user 0.15.50-2011.08-0ubuntu4
ii python-vm-builder 0.12.4+bzr469-0ubuntu1
ii libvirt-bin 0.9.2-4ubuntu15.2
ii libvirt0 0.9.2-4ubuntu15.2
ii python-libvirt 0.9.2-4ubuntu15.2
ii virtinst 0.600.0-1ubuntu1
/var/log/libvirt/libvirt.log
に表示される唯一のログ出力は、ゲストを破棄してコンソールに接続しようとしたときに発生します。
11:49:28.072: 1441: error : qemuMonitorIO:576 : internal error End of file from monitor
コメントで示唆されているように、ゲストを作成するためのさらに別のツールを使用することにより、この問題を回避策で解決しました。これはVirtual Machine Managerと呼ばれるグラフィックツールで、リモートで自分のkvmに接続し、サーバーに配置したISOイメージからゲストを作成できました。
私はそれが真の解決策ではないことを知っていますが、私はゲストを作成する方法を見つけたので、他のオプションを追求しません。
シリアルコンソールに接続するには、ゲストが最初にそれをサポートする必要があります。これは、ゲストがconsole=ttyS0
は、grub.confのカーネル開始行に追加されます。これは、VMのlibvirt設定に以下が含まれている必要があることも意味します。
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>