Pourquoi les instantanés de machine virtuelle affectent les performances?

27

J'ai lu dans l'un des articles de la base de connaissances VMware que les instantanés affecteront directement les performances de la machine virtuelle.

Mais mon équipe continue de me demander comment les instantanés peuvent affecter les performances.

Je voudrais leur donner une raison solide derrière la déclaration que les instantanés sont des tueurs de performances.

Quelqu'un peut-il expliquer un peu la théorie sur la façon dont les instantanés affectent réellement les performances? Est-ce simplement parce que le taux d'E / S disque du disque dur serait lent?

Samselvaprabu
la source
2
Je ne sais pas si c'est l'article de la base de connaissances que vous avez lu ou non. J'ai pensé l'ajouter comme référence.
Aaron Copley

Réponses:

28

Lorsque vous créez un instantané, l'image de disque d'origine est "figée" dans un état cohérent et tous les accès en écriture à partir de là iront à une nouvelle image différentielle. Pire encore, comme expliqué ici et ici , l'image différentielle a la forme d'un journal des modifications, qui enregistre chaque modification apportée à un fichier depuis la prise de l'instantané. Cela signifie que les accès en lecture devraient lire non seulement un fichier, mais également toutes les données de différence (les données d'origine plus chaque modification apportée aux données d'origine). Le nombre augmente encore plus lorsque vous installez des instantanés en cascade.

Ansgar Wiechers
la source
2
Meilleure explication. Non seulement vous doublez les IOPS, mais il y a une surcharge du processeur dans le calcul de la différence de niveau de bloc.
Aaron Copley
3
Après avoir lu cet article lié par Aaron Copley ( kb.vmware.com/selfservice/microsites/… ), il semble pire que cela. Un instantané n'est pas une image différentielle, c'est un journal des modifications.Par conséquent, si vous écrivez 10 fois les mêmes données au même endroit, l'instantané augmentera sa taille de 10 en multipliant la taille des données que vous avez écrites. Au lieu de cela, une image différentielle devrait être plus efficace car elle devrait écraser les données réécrites au même endroit.
Max
1
@zespri Le problème affecte toutes les plates-formes de virtualisation utilisant ce type de technologie d'instantané, y compris Hyper-V.
Ansgar Wiechers
1
C'est tout à fait faux. Voir le commentaire de @Falcon Momot pour la bonne réponse. Même l'article lié indique simplement que le disque "peut manquer d'espace", ce qui est clair lorsque l'espace restant avant de prendre un instantané est plus petit que le disque instantané et que le deltadisk n'a pas assez d'espace pour se développer.
Daniel
2
@AnsgarWiechers Cette réponse est définitivement fausse. L'article lié ( kb.vmware.com/s/article/1015180 ) indique; "Le disque enfant, qui est créé avec un instantané, est un disque clairsemé. Les disques clairsemés utilisent le mécanisme de copie sur écriture (COW), dans lequel le disque virtuel ne contient aucune donnée par endroits, jusqu'à ce qu'il y soit copié par une écriture." Suivi par; "Si une machine virtuelle s'exécute à partir d'un instantané, elle modifie un disque enfant ou clairsemé. Plus le nombre d'opérations d'écriture sur ce disque est grand, plus il grandit, jusqu'à une limite supérieure de la taille du disque de base plus un une petite quantité de frais généraux. "
Steve365
5

Lorsque vous créez un instantané sur une machine virtuelle, cela crée un disque Delta et le système d'exploitation écrit dans ce fichier au lieu du VMDK d'origine. Ce fichier est appelé VM_Name-Delta.VMDK mais si le système doit faire référence à un fichier avant l'instantané, il se réfère à VM_Name.VMDK augmentant les E / S de cette opération. Si vous prenez plusieurs instantanés, vous faites référence au dernier fichier delta du dernier instantané et non au VMDK d'origine, augmentant ainsi les E / S.

Exemple.

Système d'exploitation ---> Instantané (fichier A créé) ---> (Fichier instantané B créé)

Si je dois me référer au fichier A, il cherchera à travers 3 VMDK pour le trouver.

De plus, si vous incluez l'état de la mémoire de la machine virtuelle au moment de la capture instantanée, cela crée à nouveau un fichier delta et fait référence aux fichiers de mémoire d'origine si nécessaire.

Un fichier est créé qui répertorie tous les fichiers créés au moment du processus d'instantané

Zapto
la source
2

Pour autant que je sache, VMWare utilise une logique de copie sur écriture pour implémenter leurs instantanés. Par conséquent, lorsque vous en créez un, chaque opération effectuée sur votre machine virtuelle (par exemple, presque tout ce qui est exécuté) entraînerait la copie d'un peu de la machine virtuelle jusqu'à ce que le tout soit essentiellement cloné.

Un autre problème de performances avec cela est que les lectures devraient se répercuter sur la copie d'origine si la copie de travail n'a pas encore de données (car rien n'a changé pour provoquer une copie).

Si vous souhaitez avoir les instantanés en tant que sauvegarde mais ne pouvez pas tolérer une légère baisse des performances, envisagez plutôt de cloner la machine virtuelle.

Falcon Momot
la source
-2

À partir des valeurs de co-stop élevé (% CSTP) observées pendant les activités de capture instantanée de machine virtuelle :

À mesure que la taille et le nombre d'instantanés sur une machine virtuelle augmentent, le nombre d'opérations de commande de stockage augmente également dans vmkernel. Pour chaque commande de stockage émise par le système d'exploitation invité de la machine virtuelle, plusieurs opérations de commande de stockage peuvent être nécessaires pour parcourir toute la chaîne d'instantanés afin de lire le bloc de données le plus approprié.

Shahnawaz Usmani
la source