VM SLES 11 PV em KVM

VM SLES 11 PV em KVM

Eu tenho uma VM SUSE 11 SP4, inicialmente ela estava funcionando no Xen no modo PV. Agora estou mudando para KVM. Minha abordagem usual é inicializar qualquer Linux na VM de destino, montar a raiz do sistema operacional de destino, fazer chroot e reconstruir o initramfs e, em seguida, reinicializar a VM no sistema operacional de destino.

Parece que falta alguma coisa no SLES 11 SP4 porque depois disso o initramfs não consegue encontrar nenhum dispositivo vbd para montar o root. No entanto, consegui executá-lo via comando qemu direto no host 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

e funciona bem.

A configuração do KVM (relacionada ao disco) é semelhante a esta:

<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>

e meu virt-manager não me permite fazer mudanças significativas aqui.

Posso estar errado aqui, mas acho que a principal diferença é a estrutura dos dispositivos PCI, então o initramfs funciona de uma maneira, mas não de outra. Eu comparei dispositivos PCI:

Árvore de dispositivos encontrada na VM que foi executada diretamente por meio do comando 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

Árvore de dispositivos encontrada em qualquer outra VM KVM (mesmo host):

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)

Aqui vejo a diferença: o qemu permite anexar armazenamento à ponte host PCI raiz, mas no KVM ele está sempre conectado à porta raiz QEMU PCIe.

Minhas perguntas são:

  1. É possível que o SLES 11 seja muito antigo para suportar a porta QEMU PCIe Root?
  2. É possível facilitar a configuração da VM para conectar o armazenamento diretamente à ponte Host?
  3. Eu reconstruo o initramfs no ambiente de destino, sem adicionar nada aos arquivos de configuração. Estou faltando alguma coisa (ganchos ou drivers) ao reconstruir o initramfs?

Responder1

Você criou a VM com o tipo de máquina i440fx. Tente novamente com o tipo de máquina q35, que é o que sua outra VM usa.

informação relacionada