Como adicionar armazenamento virtual como SSD no KVM

4

Sendo anteriormente um usuário do VirtualBox, mudei-me para o KVM (QEMU / libvirt ou o que quer que seja chamado) recentemente. Eu sei que no VirtualBox, quando você adiciona um novo dispositivo de armazenamento à VM, há uma caixa de seleção rotulada Solid-state Drive , se marcada, o sistema convidado verá o disco virtual como um estado sólido dispositivo. Isso é muito útil, pois pode informar o sistema convidado (ou seja, o Windows) para desabilitar a desfragmentação. Gostaria de saber se isso é possível no KVM ou não, porque não consegui encontrar nada relacionado na internet?

    
por zypA13510 02.10.2017 / 17:37

4 respostas

3

Você não precisa se preocupar com a desfragmentação no Windows, porque se acreditar em alguma desfragmentação fontes no Windows completamente desligado em unidades SSD:

If you disable defragmentation completely, you are taking a risk that your filesystem metadata could reach maximum fragmentation and get you potentially in trouble.

O que realmente pode ser importante é ativar o suporte ao TRIM dentro da VM. Você pode achivar isso com virtio-scsi que suporta o comando TRIM.

Altere sua configuração de VM para configurar o modelo do controlador em virtio-scsi :

<controller type='scsi' index='0' model='virtio-scsi'>

E altere cada disco para ativar a opção unmap :

<disk type='file' device='disk'>
 <driver name='qemu' type='qcow2' discard='unmap'/>
    
por 03.10.2017 / 08:45
2

Não há mecanismo no QEMU hoje para marcar um disco SCSI, ATA ou VirtioBlk como sendo suportado por armazenamento não rotacional. Assim, o sistema operacional convidado não faria as configurações ótimas prontas para uso. Como solução alternativa, para o Linux, é possível substituir isso desabilitando o sinalizador "rotacional" do dispositivo de bloco em sysfs para todos os discos suportados por SSD. Estou conversando com as pessoas para descobrir se é possível adicionar esse recurso ao QEMU para que ele 'simplesmente funcione' em versões futuras.

    
por 03.10.2017 / 13:36
1

Você não precisa fazer nada com as versões atuais do qemu. Se o disco virtual for uma imagem QCOW2 ou estiver em uma mídia com provisionamento dinâmico, como armazenamento SAN ou um volume LVM ou ZFS esparso, ele será apresentado adequadamente como um volume thin provisioned para o Windows.

Este disco está em uma imagem de disco QCOW2 no armazenamento SSD local.

IssofarácomqueoWindowsapenasemitacomandosTRIMenãotentedesfragmentaraunidade.

ClicarnosresultadosdoOptimizeem:

    
por 03.08.2018 / 16:39
0

Versões recentes do QEMU (tentei com 2.12.0) suportam um parâmetro rotation_rate . Se você definir como 1, o convidado deve tratar o disco como um SSD. Atualmente, o libvirt não suporta esse parâmetro diretamente no formato XML, portanto, você deve passá-lo como um parâmetro qemu:commandline .

Aqui estão os bits relevantes de uma configuração libvirt que eu uso para um convidado OSX:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  …
  <devices>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
      <source dev='/dev/vg1/osx'/>
      <target dev='sda' bus='sata'/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    …
  </devices>
  <qemu:commandline>
    …
    <qemu:arg value='-set'/>
    <qemu:arg value='device.sata0-0-0.rotation_rate=1'/>
  </qemu:commandline>
</domain>
    
por 03.08.2018 / 00:28