web-dev-qa-db-fra.com

Comment ajouter un stockage virtuel en tant que SSD IN KVM

Auparavant, un utilisateur de la VirtualBox, j'ai déménagé à KVM (QEMU/LIBVIRT ou quoi que ce soit appelé) récemment. Je sais que dans VirtualBox, lorsque vous ajoutez un nouveau périphérique de stockage à la machine virtuelle, une case à cocher indiquée lecteur d'état solide, si cochée, le système invité verra le disque virtuel comme un état solide. dispositif. Ceci est très utile car il peut en informer le système d'invité (c'est-à-dire Windows) pour désactiver le défragmentation. Je me demande si cela est possible dans KVM ou non, car je n'ai pas pu trouver rien de liaison sur Internet?

5
zypA13510

Vous n'avez pas besoin de vous soucier de la défragmentation dans Windows, car si vous croyez à certains Sources La défragmentation dans Windows ne s'éteindra pas complètement aux disques SSD:

Si vous désactivez complètement la défragmentation, vous prenez un risque que votre métadonna de votre système de fichiers puisse atteindre une fragmentation maximale et vous faire valoir potentiellement des problèmes.

Ce qui peut vraiment être important, c'est activer la suppression de la garniture à l'intérieur de VM. Vous pouvez y aller avec virtio-scsi cette commande de trim.

Modifiez votre VM Configuration pour configurer le modèle de contrôleur sur virtio-scsi:

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

Et modifiez chaque disque pour activer unmap option:

<disk type='file' device='disk'>
 <driver name='qemu' type='qcow2' discard='unmap'/>
3
Egor Vasilyev

Il n'y a pas de mécanisme de QEMU aujourd'hui pour marquer un disque SCSI, ATA ou Virtioblk comme étant soutenu par un stockage non rotatif. Donc, le système d'exploitation invité ne ferait donc pas les paramètres optimaux de la boîte. En tant que solution de contournement, pour Linux, vous pouvez le remplacer en désapprimant le drapeau "Rotationnel" pour le périphérique de bloc dans SYSFS pour tous les disques sauvegardés par SSD. Je parle aux gens de savoir s'il est possible d'ajouter cette fonctionnalité à QEMU pour le faire "travailler simplement" dans les versions futures.

3
DanielB

Les versions récentes de QEMU (j'ai essayé avec 2.12.0) soutiennent un rotation_rate Paramètre. Si vous le définissez sur 1, l'invité doit traiter le disque en tant que SSD. Actuellement, Libvirt ne prend pas en charge directement ce paramètre dans son format XML, vous devez donc la transmettre en tant que qemu:commandline Paramètre.

Voici les bits pertinents d'une configuration de Libvirt que j'utilise pour un invité 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>
0
saraedum