Linux KVM se guest for reinicializado não será iniciado, deve ser iniciado manualmente

2

Tenha um servidor Ubuntu executando o KVM:

Linux hyperv 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Ele está executando algumas VMs que são linux e um windows vm. Depois de instalar uma nova VM do servidor do Windows 2016, ocorre um problema. O vm (chamado winstore) pode ser iniciado executando o seguinte:

virsh start winstore

E tudo vem bem. Se essa VM específica for reiniciada de dentro da VM, ela será encerrada corretamente, mas não retornará. executando

virsh list

confirma que não foi iniciado. Para iniciar a VM, deve-se fazer um

virsh start winstore 

novamente. Esse não é o comportamento desejado, e NÃO como as outras VMs do Windows se comportam (elas têm o comportamento desejado, que é a reinicialização quando reiniciadas).

A VM foi criada um pouco diferente do normal. Estas foram as etapas usadas para criar a VM inicialmente:

crie a imagem do disco

qemu-img create -f qcow2 -o preallocation=metadata /mnt/vmstorage/images/winstore.qcow2 1300G

obtenha uma saída xml do que faríamos, para que possamos modificar os atributos do cdrom

virt-install --name winstore --ram 8192 --vcpus=2 --graphics=vnc --network=bridge=br731,model=virtio --disk path=/mnt/vmstorage/images/winstore.qcow2,format=qcow2,bus=virtio,cache=none --disk path=/mnt/backups/isos/virtio-win-0.1.126.iso,device=cdrom --cdrom /mnt/backups/isos/SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO --os-type=windows --noautoconsole --accelerate --noapic --print-xml > winstore.xml

altere a ordem dos cdroms no arquivo xml:

<disk type="file" device="cdrom">
  <driver name="qemu" type="raw"/>
  <source file="/mnt/backups/isos/virtio-win-0.1.126.iso"/>
  <target dev="hda" bus="ide"/>
  <readonly/>
</disk>
<disk type="file" device="cdrom">
  <driver name="qemu" type="raw"/>
  <source file="/mnt/backups/isos/SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO"/>
  <target dev="hdb" bus="ide"/>
  <readonly/>

então foi instalado e iniciado executando o seguinte:

virsh create ./winstore.xml 
virsh start winstore

após a instalação, o xml foi editado, e as duas unidades foram trocadas (hda / hdb) para que ele seja inicializado a partir do disco e não do cdrom. Em seguida, a VM foi definida com o seguinte em virsh:

virsh define ./winstore.xml

Novamente, a VM parece funcionar bem agora, mas só começa com

virsh start winstore

Novamente, SE a VM é reinicializada a partir do convidado, ela não será reiniciada, apenas será encerrada. Olhando através dos logs em /var/log/libvirt/qemu/winstore.log não parece haver nada fora do comum.

Observe que a VM aparece em um

virsh list --all

Sim, estou absolutamente certo de que não estou clicando em "shutdown" na VM do Windows. :)

    
por number9 19.10.2018 / 15:43

1 resposta

2

De acordo com os comentários de Michael Hampton acima, o xml tinha "destroy" para o nó <on_reboot> em vez de "restart".

    
por 19.10.2018 / 17:07