Machines virtuelles et TRIM

18

Bien que la prise en charge de TRIM ait été introduite pour améliorer le fonctionnement des SSD, elle devrait également aider les machines virtuelles à optimiser les disques virtuels (par exemple, pour savoir quelles parties des disques virtuels n'ont pas besoin de stockage sur des partitions physiques). Est-ce qu'une machine virtuelle utilise TRIM de cette façon?

liori
la source

Réponses:

10

Virtualbox prend en charge TRIM depuis la version 4.2

  • Stockage: prise en charge de la suppression des blocs d'images inutilisés via TRIM pour SATA et IDE et UNMAP pour SCSI lors de l'utilisation d'images VDI

Vous devrez utiliser les options --nonrotational onet--discard on :

  • --discard

    Active la fonction de suppression automatique pour les disques durs virtuels. Cela spécifie qu'une image VDI sera réduite en réponse à la commande de découpage du système d'exploitation invité. Les conditions suivantes doivent être remplies:

    • Le format du disque doit être VDI.
    • La taille de la zone effacée doit être d'au moins 1 Mo.
    • Oracle VM VirtualBox ne coupera que des blocs entiers de 1 Mo. Les VDI eux-mêmes sont organisés en blocs de 1 Mo, donc cela ne fonctionnera que si l'espace en cours de suppression est au moins un bloc contigu de 1 Mo à une limite de 1 Mo. Sous Windows, une défragmentation occasionnelle avec defrag.exe /Dou sous Linux s'exécutant en btrfs filesystem defragtant que tâche cron en arrière-plan peut être bénéfique.

Plus d'informations peuvent être trouvées dans


Hyper-V peut également réduire les images VHD et VHDX

Cas d'utilisation

  • ...
  • VHD grand public monté sur un SAN à provisionnement fin:

    Le disque dur virtuel est initialement monté sur une dalle minimale d'un environnement à provisionnement fin. Au fur et à mesure que les fichiers sont stockés dans le VHD, l'empreinte de stockage du VHD augmente en multiples de dalles. Lorsque des fichiers sont supprimés dans le disque dur virtuel, Hyper-V appelle File_TRIM vers le SAN sous-jacent à provisionnement fin. Si les TRIM sont plus grands que la granularité SLAB, le SAN peut désormais supprimer un SLAB et ainsi réduire l'empreinte du VHD sur ce SAN.

Si le disque dur virtuel réside sur un serveur Windows 8, l'optimiseur de stockage enverra également des TRIM pour réduire l'empreinte de la dalle du disque dur virtuel à partir du disque dur virtuel monté.

La nouvelle API permet aux applications d'envoyer des conseils "TRIM and Unmap" aux supports de stockage

Voir également


VMware Workstation 10 prétend prendre en charge le relais SSD

  • SSD Pass-through Windows 8 est capable de détecter quand il est exécuté à partir d'un disque SSD et s'optimise pour ce matériel. Dans Workstation 10, le système d'exploitation invité pourra détecter le moment où le fichier de disque de la machine virtuelle est stocké sur un lecteur SSD et le système d'exploitation peut effectuer les mêmes optimisations lorsqu'il s'exécute sur une machine virtuelle

Notes de mise à jour de VMware Workstation 10.0

Cela est également mentionné dans Exigences de lecteur de disque du centre de documentation VMWare Workstation Pro pour les systèmes hôtes - Disques durs électroniques :

Si votre ordinateur hôte possède un disque SSD physique, l'hôte informe les systèmes d'exploitation invités qu'ils s'exécutent sur un SSD.

Cela permet aux systèmes d'exploitation invités d'optimiser le comportement. La façon dont les machines virtuelles reconnaissent le SSD et utilisent ces informations dépend du système d'exploitation invité et du type de disque du disque virtuel (SCSI, SATA ou IDE).

Mais à partir du texte, il semble que la commande TRIM ne soit transmise qu'au SSD physique sous-jacent au lieu de réduire l'image VMDK

D'autres produits VMware comme vSphere et ESXi prennent également en charge TRIM, mais on ne sait toujours pas s'ils l'utilisent pour réduire l'image ou non

Q. VMware prend-il en charge les UNMAP directement à partir du système d'exploitation invité dans vSphere 6.0.

Oui. L'émission d'UNMAP directement à partir du SE invité pour récupérer de l'espace est prise en charge dans vSphere 6.0.

Q. Quelles sont les conditions préalables requises pour que l'UNMAP s'exécute?

Il existe un certain nombre de conditions préalables qui doivent être remplies. Ceux-ci sont:

  • VMDK doit être alloué de manière dynamique
  • La version du matériel de la machine virtuelle doit être 11 (ESXi 6.0)
  • Le paramètre avancé EnableBlockDelete doit être défini sur 1
  • Le système d'exploitation invité doit être en mesure d'identifier le disque comme mince (Windows 2012 [mis à jour le 30 octobre 2015] utilise la page du mode B2 pour y parvenir)

Q. La récupération ne fonctionne-t-elle que pour l'UNMAP? Et TRIM?

C'est une réponse «ça dépend». TRIM n'est utilisé que lorsque le périphérique sous-jacent est un SSD - Solid State Disk. D'après ce que je comprends, le TRIM est converti en UNMAP dans la pile d'E / S. Cependant, il y a quelques problèmes avec la conversion de TRIM en UNMAP. UNMAP fonctionne à certaines limites de bloc sur VMFS, alors que TRIM n'a pas de telles restrictions. Ainsi, certains TRIM convertis en UNMAP peuvent échouer en raison de problèmes d'alignement de bloc.

Fonctionnalités de stockage de vSphere 6.0 Partie 8: Modifications de VAAI UNMAP

Voir également

phuclv
la source
1
Je pense que VMware a supprimé cette revendication marketing des futures versions car elle était paralysée car ils ne prenaient pas en charge TRIM. Voir ici et ici
Tom Hale
1

Le support TRIM nécessite une connaissance approfondie du matériel sous-jacent. Étant donné que les machines virtuelles ( invités VM ) fonctionnent par définition sur du matériel virtuel, elles ne connaissent pas les détails du disque dur ou du SSD sur lequel elles résident.

Donc, si le système d'exploitation VM Host comprend TRIM, cela devrait être suffisant pour tous les invités VM qui s'exécutent dessus.

Certains hôtes VM peuvent «traverser» un disque physique et le monter directement sur le système d'exploitation sur un invité VM. En fonction de l'implémentation exacte, il est théoriquement possible que l'invité puisse alors prendre en charge la fonction TRIM d'un SSD. Comme pour la plupart des choses, votre kilométrage peut varier, et s'il est essentiel pour votre environnement, vous devez le tester soigneusement avant de vous engager.

stewartwb
la source
1
La seule chose que j'ajouterais est que si le fichier du disque dur vm est dynamique, vous pouvez le réduire et l'hôte dira alors, le cas échéant, au SSD de couper les secteurs nouvellement libérés. Cela peut accélérer l'écriture des fichiers du disque dur vm, car lorsque le fichier augmente, vous ne modifiez pas les secteurs hôtes existants, de nouveaux secteurs / tronqués peuvent être utilisés pour l'écriture de l'invité. Normalement, je fixe la taille de mes fichiers de disque dur vm, mais c'est pour éviter la fragmentation sur les disques durs. Avec les SSD, j'irais probablement en rétrécissement dynamique et périodique.
Scott McClenning
2
-1. Vous manquez le fait que TRIM / unmap est utilisé pour réduire le fichier d'image VM de taille dynamique. Et par conséquent, le système d'exploitation hôte peut émettre TRIM / unmap sur le matériel sous-jacent. C'est une partie importante du concept de provisionnement fin.
rustyx
-1

TRIM a été inventé parce que les écritures sur un SSD doivent être effectuées en blocs de 512 Ko et déterminer quelle quantité de bloc est réellement utilisée par un ou plusieurs fichiers est impossible pour le lecteur SSD lui-même et doit être communiqué par le système d'exploitation et le système de fichiers.

Voir

http://en.wikipedia.org/wiki/TRIM

ÉDITER:

Le lien wiki le dit mieux que moi:

La commande TRIM ne fonctionne pas avec les disques qui sont stockés dans des fichiers d'image disque. Cela est dû au fait que les fichiers informatiques ne peuvent être supprimés complètement ou tronqués à la fin. Ce problème affecte des applications telles que les services de disques virtuels, les machines virtuelles, etc.

bot403
la source
6
La machine virtuelle peut conserver des informations sur les blocs qui ont été coupés à utiliser lorsque l'utilisateur demande de reconditionner et de réduire les disques virtuels. VMWare a actuellement une opération similaire, mais cela fonctionne en écrasant tout l'espace libre à l'intérieur de VM en premier.
liori
6
La question n'est pas de traduire une opération TRIM sur le disque virtuel en une opération TRIM sur le disque hôte. Comme vous le faites remarquer, cela ne fonctionne pas aussi directement. La question concerne clairement la traduction d'un appel TRIM sur le disque virtuel en un raccourcissement du fichier image sur le disque hôte (ce qui, incidemment, peut à son tour déclencher une opération TRIM sur le disque hôte, mais la question concerne la première étape)
Pascal Cuoq
1
Il existe des fichiers de rechange , qui devraient être idéaux pour être utilisés comme une image disque découpable pour un VM.
non-utilisateur