SLES 11 PV VM на KVM

SLES 11 PV VM на KVM

У меня есть виртуальная машина SUSE 11 SP4, изначально она работала на Xen в режиме PV. Теперь я перевожу ее на KVM. Мой обычный подход — это сетевая загрузка любого Linux в целевой виртуальной машине, монтирование корня целевой ОС, chroot и пересборка initramfs, затем перезагрузка виртуальной машины в целевую ОС.

SLES 11 SP4, похоже, чего-то не хватает, потому что после этого initramfs не может найти ни одного vbd-устройства для монтирования root. Однако мне удалось запустить его с помощью прямой команды qemu на хосте KVM:

qemu-kvm -m 32768 -smp 8 -device virtio-net-pci,mac=42:5f:96:48:39:fa,netdev=vmnic -netdev tap,id=vmnic,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -nographic -serial mon:stdio -drive file=/dev/lvm/vm,if=none,id=drive0,format=raw  -device virtio-blk-pci,drive=drive0,scsi=off

и это работает отлично.

Конфигурация KVM (связанная с диском) выглядит так:

<devices>
  <emulator>/usr/bin/qemu-system-x86_64</emulator>
  <disk type="block" device="disk">
    <driver name="qemu" type="raw" cache="none" io="native"/>
    <source dev="/dev/lvm/vm"/>
    <target dev="vda" bus="virtio"/>
    <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
  </disk>
  <controller type="pci" index="3" model="pcie-root-port">
    <model name="pcie-root-port"/>
    <target chassis="3" port="0xa"/>
    <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
  </controller>

и мой вирт-менеджер не позволяет мне вносить здесь существенные изменения.

Я могу ошибаться, но я думаю, что основное отличие в структуре устройств PCI, поэтому initramfs работает одним способом, а не другим. Я сравнил устройства PCI:

Дерево устройств, найденное на виртуальной машине, которая была запущена напрямую с помощью команды qemu:

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Device 1234:1111 (rev 02)
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device

Дерево устройств, найденное на любой другой виртуальной машине KVM (тот же хост):

00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
00:01.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.1 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.2 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.3 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.4 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.5 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.6 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:01.7 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
01:00.0 Ethernet controller: Red Hat, Inc. Virtio network device (rev 01)
02:00.0 USB controller: Red Hat, Inc. QEMU XHCI Host Controller (rev 01)
03:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device (rev 01)
04:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon (rev 01)
05:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG (rev 01)
08:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device (rev 01)

Здесь я вижу разницу: qemu позволяет подключать хранилище к корневому мосту PCI хоста, но в KVM оно всегда подключено к корневому порту QEMU PCIe.

У меня есть вопросы:

  1. Возможно ли, что SLES 11 слишком устарел для поддержки корневого порта QEMU PCIe?
  2. Можно ли упростить настройку виртуальной машины, напрямую подключив хранилище к мосту хоста?
  3. Я перестраиваю initramfs в целевой среде, ничего не добавляя в файлы конфигурации. Я что-то упускаю (хуки или драйверы) при перестройке initramfs?

решение1

Вы создали ВМ с типом машины i440fx. Попробуйте еще раз с типом машины q35, который использует ваша другая ВМ.

Связанный контент