kvm virtualizado Windows obtém baixo desempenho de disco

1

Aviso de isenção

Esta é realmente uma continuação de este tópico . Abri uma nova questão, pois o alvo mudou lentamente, por isso acho que foi bom abrir um novo post. Vou me fundir de volta, se necessário.

Configuração

  • Servidor HP DL160g9 com controlador de soft-raid B140i
  • 4 LFF 7.2k no RAID-5
  • Centos 7.2 nele com kvm e qemu vindo de centos virt sig. As especificações não foram alteradas no post anterior.
  • todo o armazenamento de VMs é local no servidor
  • todos os NICs e fornecidos VHDD são passados através do virtio (virt-scsi), o cache é nenhum, o io é nativo.
  • todas as VMs têm 2 VNICS: uma exposta à LAN, uma interna ao servidor (a rede NAT da libvirt padrão)

Sistemas testados

  • O host linux (como referência)
  • local linux VM
  • VMs Win8.1 e Win10 locais (64 bits)
  • remote win10 64bit pro workstation
  • VM de linux remoto em execução nesses WS via virtualbox
  • win8.1 remoto 64bit pro VM em execução nesses WS via virtualbox

Tipos de armazenamento testados

Para entender por que o Win10 / 8.1 pro 64bit é muito ruim no KVM, nós testamos vários testes. O desempenho do disco é medido por:

iozone -i 0 -i 8 -t 1 -s 4m

O teste é executado a partir de uma pasta no dispositivo de armazenamento de destino, é claro. As seguintes configurações diferentes foram testadas:

  1. Preparou um volume think do LVM para ser passado para o Linux e Windows VM como o driver virtio scsi.

    • Executa o iozone nele: o Linux local e as VMs do Windows são testados.
  2. Usou o mesmo volume espesso de LVM como dispositivo de bloco para um destino iscsi oferecido em LANs virtuais e físicas. Desta vez, as VMs são inicializadas e nós conectamos manualmente o alvo iscsi de dentro da VM em execução sem passá-lo pelo kvm / libvirt. Neste caso, o kvm deve mediar apenas a rede.

    • Neste caso, também comparamos a estação de trabalho externa do Windows e a VM linux sendo executada nela.

Resultados

Os resultados são bastante significativos. Todas as combinações de armazenamentos (disco do virtio scsi local e destino iscsi) têm um ótimo desempenho :

  • nós os testamos de dentro do host (logando no alvo iscsi via ip LAN não loopback)

  • testamos o destino virtio-scsi / iscsi em qualquer VM linux local

  • testamos o volume iscsi a partir da estação de trabalho windows ou das máquinas virtuais em execução no Virtual Box: tanto o linux AND Win.

Quando digo uma média grande, a taxa de transferência dada ou recebida é quase nativa, na ordem de 1 a 1,7 milhões de KB / s (o LVM local nativo é de 2 milhões)!

Todas as combinações de armazenamentos (disco do virtio scsi local e destino iscsi) têm desempenho ruim se :

  • nós executamos a partir de 8.1 / 10 VMs locais no KVM: como 0,5 milhão KB / s .

Considerações

  • É discutível que o desempenho do virtio-scsi é ruim devido ao fato de os drivers do virtio estarem com o armazenamento vscsi.

  • Por outro lado, no caso do destino iscsi, isso deve significar que mesmo os drivers de rede virtio são ruins, já que o linux e o Win funcionam muito bem em outros cenários (nativo ou Virtual Box)!

Ajuda

Para ser sincero, não acho que os drivers virtio para Windows sejam tão ruins, mesmo na rede. Por favor, você pode compartilhar qualquer experiência para entender onde ajustar as VMs?!

    
por matteo nunziati 26.05.2016 / 19:02

0 respostas