3 votes

Les instantanés de machine virtuelle Hyper-V augmentent-ils continuellement à mesure que des écritures sont effectuées sur le disque dur?

(Notez que bien que cette question concerne spécifiquement Hyper-v, je m'intéresse en fait à une réponse généralisée sur les instantanés de machine virtuelle, à moins que la réponse spécifique pour Hyper-v ne s'applique pas à une explication aussi générale.)

Je travaille dans une grande entreprise avec une infrastructure de machine virtuelle de taille décente (quelques milliers de VM). Un de mes ingénieurs serveur me dit qu'ils n'autorisent pas la conservation des instantanés de VM pendant très longtemps - ils autoriseront la prise d'un instantané comme solution de secours avant de faire un changement significatif sur une VM, mais ils doivent le supprimer peu de temps après (quelques jours environ, une fois que nous sommes sûrs que nos changements n'ont rien cassé).

Je suis d'accord avec cette procédure - je n'attends pas des instantanés qu'ils remplacent les sauvegardes réelles, etc. Et je peux respecter leur volonté de conserver de l'espace dans l'environnement. Ce avec quoi je ne suis pas d'accord, c'est son raisonnement. Il dit que la raison pour laquelle ils doivent les supprimer par la suite est que "les instantanés peuvent croître sans limite, à chaque écriture sur le disque dur, des données supplémentaires sont écrites dans l'instantané, sans limite. C'est différent lorsque vous provisionnez le disque dur virtuel original, où vous pouvez spécifier une taille maximale. Vous ne pouvez pas spécifier de taille maximale pour un instantané."

D'après ce que je comprends, les images d'instantané sont une DELTA par rapport à l'image disque parent. Par exemple, si j'ai un bloc sur l'image d'origine qui ressemble à :

0101 0101 0101

... et que je réécris la section centrale comme ceci :

0101 1111 0101

... alors l'instantané stocke uniquement la DIFFÉRENCE entre les deux (plus quelques frais structurels que j'imagine ajoutent de la complexité, mais pas significativement d'un point de vue de l'espace de stockage). De plus, je comprends que si je devais réécrire ces blocs à leur état d'origine, la delta les supprimerait ensuite (de sorte que les lectures futures de ce bloc liraient à travers l'image d'origine).

(Je ne connais pas vraiment la manière dont l'instantané stocke la différence - je suis sûr qu'il existe des structures très complexes nécessaires pour tout organiser. Je suis seulement intéressé par le principe suivant lequel il STOCKE la différence, mais pas un "historique en cours" des changements.)

Il dit que les instantanés ne fonctionnent pas ainsi - il dit que si j'ai un bloc de données, je le modifie, puis je le modifie à nouveau, que CHAQUE fois que je fais cela, l'instantané va croître, finissant par consommer beaucoup d'espace disque.

J'avais compris qu'un instantané ne pouvait jamais dépasser la taille de l'image d'origine (par exemple, si vous inversiez littéralement chaque bit sur le disque dur, la delta le stockerait), avec peut-être une taille constante de frais généraux également. Il semble penser que ce n'est pas vrai, qu'un instantané de VM va croître sans limite à mesure que de plus en plus d'écritures sont faites sur le disque virtuel.

Est-ce que je me trompe sur le fonctionnement des instantanés de VM ?

3voto

James Jenkins Points 105

Vos ingénieurs suivent une bonne pratique, mais pour de mauvaises raisons. Vous avez raison sur le fait que le VHDX (ou toute autre technologie de disque virtuel utilisée) va:

  • Réutiliser les blocs écrits lors de la réécriture au lieu d'écrire complètement de nouveaux
  • Avoir une limite de taille dure égale à la taille maximale configurée pour le disque virtuel parent. La raison pour laquelle vous ne pouvez pas spécifier une taille maximale pour un instantané est parce que le VHDX parent l'a déjà spécifiée.

Cependant, je ne connais aucun mécanisme qui jetterait les deltas précédemment écrits si le bloc est ramené à son état d'origine. La surcharge de performance de l'exécution d'un algorithme de différence sur les blocs source et delta par rapport à la tenue d'un simple enregistrement des écritures de blocs serait substantielle, même à une échelle relativement petite.

A moins que la machine virtuelle ne subisse beaucoup de changements de disque, vous ne verrez probablement pas son instantané devenir horriblement grand, cependant.

Une machine virtuelle avec un seul instantané ne subit pas non plus de perte de performance significative, bien que je ne vois pas cela mentionné quelque part.

Les instantanés ont trois problèmes très réels :

  • Les problèmes environnementaux peuvent entraîner des disques AVHDX orphelins
  • A chaque minute d'existence de l'instantané, il se déplace le long du spectre de "précieux" vers "responsabilité"
  • Les données ne sont pas dupliquées

De plus, même si un instantané ne peut pas vraiment croître de manière illimitée en soi, imaginez un environnement sans contrôles sur les instantanés. Un seul instantané pourrait théoriquement atteindre deux fois la taille allouée de son parent. Je crois que Microsoft a instauré une limite maximale de 50 instantanés par machine virtuelle, mais seulement comme une sorte de garde-fou "OK, maintenant vous exagérez", et non parce que la technologie l'exige. Ainsi, la limite théorique maximale pour une machine virtuelle est 51x la taille allouée. Même si c'est peu probable que cela arrive, vous pouvez voir comment même quelques machines virtuelles avec plusieurs instantanés pourraient donner des migraines à vos administrateurs de stockage. Cela justifie certainement l'instauration d'une limitation raisonnable de l'utilisation des instantanés.

Problèmes Environnementaux liés aux Instantanés

De nombreuses choses peuvent être à l'origine des problèmes de cette catégorie. Elles se résument toutes à un problème fondamental : si le VHDX parent est modifié de quelque manière que ce soit, alors le AVHDX est complètement invalidé et totalement inutile. Si la machine virtuelle propriétaire est allumée, de telles modifications devraient être prohibitivement difficiles. Mais si la machine virtuelle propriétaire est éteinte, alors le VHDX parent est juste un fichier. Hyper-V ou vos autres systèmes ne sauront rien tant que vous n'essayez pas d'accéder au AVHDX enfant.

Plus l'instantané existe longtemps, plus il est probable qu'un incident survienne, surtout dans un environnement avec plusieurs administrateurs. Si une machine virtuelle possède plusieurs instantanés, les problèmes peuvent potentiellement se cumuler.

Ce problème n'est pas propre aux instantanés ; ces problèmes peuvent se produire avec tout système de différenciation de disque virtuel.

Diminution de la Valeur des Instantanés avec le Temps

C'est vraiment la principale raison de ne pas conserver les instantanés longtemps. Comme vous l'avez correctement supposé, le mécanisme de différenciation ne conserve pas un enregistrement historique des changements ; seul le changement le plus récent sur un bloc est conservé. Ainsi, vous n'avez que la machine virtuelle telle qu'elle existe maintenant en post-instantané, et la machine virtuelle telle qu'elle était au moment où l'instantané a été pris. Vous pouvez soit revenir à l'ancien, soit garder le nouveau. Il n'y a pas de juste milieu.

Pour argumenter (et car cela s'est produit), disons que vous avez un petit environnement Exchange qui fonctionne entièrement sur une seule machine virtuelle. Vous prenez un instantané avant de passer d'Exchange 2013 à Exchange 2016. Et ensuite vous le laissez tourner pendant un an. A quoi sert cet instantané ? Reviendriez-vous à cet état ? Avez-vous une idée de la durée de fusion lorsque vous le supprimez ?

Les Instantanés ne Dupliquent pas les Données

L'objectif d'un instantané est de ramener rapidement une machine virtuelle à un point donné dans le temps. Il le fait en modifiant directement l'état de la machine virtuelle. A aucun moment il ne duplique les données. Si le AVHDX est endommagé, alors seul le parent contient des informations valides et tous les changements effectués depuis l'instantané sont perdus. Si le VHDX parent est endommagé, alors les deux fichiers sont inutiles. De plus, je ne connais aucun outil capable de récupérer uniquement les données modifiées d'un AVHDX. Ainsi, pour conserver plusieurs états sur une période de temps significative, la sauvegarde est la meilleure option. Ce n'est pas aussi rapide ou pratique à utiliser qu'un instantané, mais cela résout tous les autres problèmes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X