kvm

kvm

  • Fazendo o VMWare ESXi 8.0 (gratuito) funcionar com KVM/qemu

    Na firma, o time de desenvolvimento botou uma requisição pra mim pra ter uma máquina com VMWare ESXi 8 pra programar pra sua API.  Pareceu coisa simples.  Fui rodar no KVM e... bug.  Não achava a interface de rede e não instalava.

    A coisa só foi piorando porque o prazo foi ficando cada vez mais curto.  A solução foi achar um laptop com placa de rede, o que não foi fácil, e instalar e deixar dentro da sala dos servidores.

    Muito longe do que eu gostaria.

    No começo eu tentei seguir os passos daqui:

    https://jonathonreinhart.com/posts/blog/2015/11/20/installing-esxi-in-a-qemu-kvm-virtual-machine/

    É um passo a passo bem didático, mas era pra versão 6.  Essa nem existe mais pra download.

    Com o laptop rodando, isso me deu o tempo que precisava pra pesquisar com mais cuidado.   E acabei achando um link com uma dica que funcionou.

    https://openterprise.it/2022/12/running-nested-vmware-esxi-8-0-host-under-kvm-hypervisor/

    Eu então usei o formato sugerido no artigo, que cria uma interface de rede to tipo que suportada pelo VMWare.

    virt-install --virt-type=kvm \
    --name=vmware-esxi8 \
    --ram 8192 \
    --vcpus=4 \
    --virt-type=kvm \
    --hvm \
    --cdrom /ISO/VMware-VMvisor-Installer-8.0U3e-24677879.x86_64.iso \
    --network network:default,model=vmxnet3 \
    --graphics vnc \
    --video qxl \
    --disk pool=default,size=32,sparse=true,bus=sata,format=qcow2 \
    --boot cdrom,hd \
    --noautoconsole \
    --force \
    --cpu host-passthrough \
    --os-variant linux2020

    Agora tenho funcionando como esperado e vou planejar o desligamento do tal laptop.  O pessoal do suporte ficará feliz.

  • Migrando window 2k16 pra KVM

    Já que comentei no post anterior das desventuras de libvirt, então vou aproveitar e comentar também sobre como migrei uma VM de VMWare pra KVM.  A versão era a 7  e eu apenas fiz shutdown da VM e selecionei pra exportar o disco, que veio em format vmx. Daí começou a migração.

    Copiado o disco pra dentro da máquina onde ia rodar com KVM, converti pro formato qcow2.  Usei o seguinte comand:

    qemu-img convert -cpf vmdk -O qcow2 windows-ad1.vmdk windows-ad1.qcow2

    Mas daí eu não conseguia fazer funcionar o boot: não achava TPM e depois tinha algum problema com UEFI.

    Eu achei um link com uma receita pronta e usei.  Como bom leitor de Internet, esqueci de salvar o link.  Mas o comando foi o seguinte:

    virt-install \
        --virt-type kvm \
        --name=win2k16-ad1 \
        --os-variant=win10 \
        --vcpus 4,sockets=1,cores=4,threads=1 \
        --cpu host-passthrough \
        --memory 8192 \
        --features smm.state=on,kvm_hidden=on,hyperv_relaxed=on,hyperv_vapic=on,hyperv_spinlocks=on,hyperv_spinlocks_retries=8191 \
        --clock hypervclock_present=yes \
        --disk path=/var/lib/libvirt/images/windows-ad1.qcow2,size=100,format=qcow2,sparse=true,bus=sata,cache=writethrough,discard=unmap,io=threads  \
        --controller type=scsi,model=virtio-scsi \
        --graphics spice \
        --video model=qxl,vgamem=32768,ram=131072,vram=131072,heads=1 \
        --channel spicevmc,target_type=virtio,name=com.redhat.spice.0 \
        --channel unix,target_type=virtio,name=org.qemu.guest_agent.0 \
        --network bridge=br0,model=virtio \
        --input type=tablet,bus=virtio \
        --metadata title='Win2k16-AD1' \
        --tpm type=emulator,version=2.0,model=tpm-tis \
        --boot loader=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd,loader.readonly=yes,loader.type=pflash,loader.secure=yes,nvram.template=/usr/share/OVMF/OVMF_VARS_4M.ms.fd,menu=on

    Com isso migrei a máquina e botei de novo em pé pro pessoal de desenvolvimento usar pra tests com AD.

    UPDATE: achei o link original.

    https://github.com/sej7278/virt-installs/blob/master/win10.sh