Как добавить больше поддерживаемых типов машин в QEMU? - PullRequest
0 голосов
/ 28 января 2019

У меня есть развертывание Openstack Pike в Cloudlab , и оно использует версию QEMU 2.10.1(Debian 1:2.10+dfsg-0ubuntu3.8~cloud1).

Я хотел заменить QEMU на эту версию , котораявключает поддержку мониторинга через QMP.Я настроил с помощью: ./configure --target-list=x86_64-softmmu и скомпилировал двоичный файл qemu-system-x86_64, но при проверке поддерживаемых типов машин отсутствовали некоторые типы машин, которые присутствовали в исходном двоичном файле:

pc-i440fx-zesty      Ubuntu 17.04 PC (i440FX + PIIX, 1996)
pc-i440fx-yakkety    Ubuntu 16.10 PC (i440FX + PIIX, 1996)
pc-i440fx-xenial     Ubuntu 16.04 PC (i440FX + PIIX, 1996)
pc-i440fx-wily       Ubuntu 15.04 PC (i440FX + PIIX, 1996)
pc-i440fx-trusty     Ubuntu 14.04 PC (i440FX + PIIX, 1996)
ubuntu               Ubuntu 17.10 PC (i440FX + PIIX, 1996) (alias of pc-i440fx-artful)
pc-i440fx-artful     Ubuntu 17.10 PC (i440FX + PIIX, 1996) (default)
pc-i440fx-2.9        Standard PC (i440FX + PIIX, 1996)
pc-q35-zesty         Ubuntu 17.04 PC (Q35 + ICH9, 2009)
pc-q35-yakkety       Ubuntu 16.10 PC (Q35 + ICH9, 2009)
pc-q35-xenial        Ubuntu 16.04 PC (Q35 + ICH9, 2009)
pc-q35-artful        Ubuntu 17.10 PC (Q35 + ICH9, 2009)
pc-q35-2.9           Standard PC (Q35 + ICH9, 2009)

Поэтому, когда япопытался развернуть тестовую ВМ с помощью Openstack, он выдал ошибку:

libvirtError: internal error: process exited while connecting to monitor: 2019-01-24T19:41:51.292121Z qemu-system-x86_64: -enable-kvm: unsupported machine type

, и когда я изменил тип машины на один из доступных hw_machine_type = x86_64=pc-i440fx-1.6, он выдал мне эту ошибку:

libvirtError: internal error: qemu unexpectedly closed the monitor: qemu: could not load PC BIOS 'bios-256k.bin'

Поэтому, посмотрев на ошибку, я только что создал символическую ссылку:

sudo ln -sf /usr/share/seabios/bios-256k.bin /usr/share/qemu/bios.bin

Но тогда она выдает следующую ошибку:

libvirtError: internal error: qemu unexpectedly closed the monitor: Could not open option rom 'kvmvapic.bin': No such file or directory

Так что я думаю, чтоможет быть, я должен просто использовать оригинальный тип машины, и я хочу знать, как мы можем добавить больше поддерживаемых типов машин при создании QEMU?Я думаю, это должен быть один из вариантов конфигурации, но я не смог его найти.

1 Ответ

0 голосов
/ 28 января 2019

Добавление новых типов машин выполняется путем изменения исходного кода QEMU при его сборке.Как можно догадаться по именам машин, они относятся к версии Ubuntu QEMU, поэтому они будут добавлены с помощью патчей в пакете Ubuntu QEMU.Машины в основном будут похожи на стандартные up-pc-i440fx-nn и pc-q32-nn, но будут иметь свойства, установленные так, что они будут вести себя «как версия QEMU, которая поставляется в этом выпуске Ubuntu».Это важно для совместимости при миграции виртуальных машин.У него также могут быть незначительные различия, например, имена файлов BLOB-объектов BIOS, которые он ищет: Ubuntu / Debian также мог бы пропатчить QEMU для редактирования таких вещей, как каталог, в котором выполняется поиск BLOB-объектов BIOS.

Другая версия QEMU, на которую вы ссылаетесь, основана навосходящий QEMU, так что у него нет тех патчей, специфичных для Ubuntu, которые разрешают Ubuntu специфические типы компьютеров.(Он также основан на более старой версии QEMU, поэтому будут отсутствовать различные исправления для проблем безопасности, обнаруженных после этого выпуска, поэтому будьте осторожны! Проверьте, важны ли какие-либо не исправленные проблемы безопасности между 2.8.1 и сейчас, в вашем случае использования.)

Вы можете либо нажать вперед, пытаясь настроить конфигурацию своего компьютера для работы с типом компьютера, отличным от Ubuntu.(Используйте самый последний pc-i440fx-nn, который у него есть - 1.6 довольно старый, и он должен иметь 2.8.) Или вы можете попробовать перебазировать патчи, которые добавляют функцию QMP-мониторинга, чтобы они применялись в Ubuntu.Источники QEMU.Для всего, что напоминает производство, я думаю, что последнее, вероятно, является подходящим решением из-за проблемы отсутствия безопасности при использовании чьего-либо дерева случайной разработки, но это может быть нелегко.

...