(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 ?