Я установил KVM на Ubuntu Oneiric Server 64 AMD.
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
Я пробовал создать гостя с той же ОС. Сначала я попробовал это:
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 затем увеличивает использование ЦП до 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
Чтобы подключиться к последовательной консоли, вам сначала нужно, чтобы гость поддерживал ее. Это означает, что гость должен иметь console=ttyS0
добавляется к стартовой строке ядра в grub.conf. Это также означает, что конфигурация libvirt для виртуальной машины должна содержать следующее:
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
Как было предложено в комментариях, я решил эту проблему обходным путем, используя еще один инструмент для создания гостей. Это графический инструмент под названием Virtual Machine Manager, с помощью которого я смог удаленно подключиться к моему kvm и создать гостя из ISO-образа, который я разместил на сервере.
Я знаю, что это неверное решение, но я не буду рассматривать другие варианты, поскольку нашел способ создавать гостей.
У меня была аналогичная проблема на хосте ubuntu 12.04:
virsh start testguest
-> консоль через VNC сообщает мне "Загрузка с жесткого диска"/var/log/libvirt/libvirtd.log
показал мне:
2013-11-19 18:25:10.551+0000: 9815: warning : qemuCapsInit:856 : Failed to get host power management capabilities
2013-11-19 18:25:13.122+0000: 9815: error : virExecWithHook:327 : Cannot find 'pm-is-supported' in path: No such file or directory
Похоже, что vm-builder понадобились инструменты для управления питанием.
apt-get install pm-utils
на хосте решил за меня эту проблему.