Por que os instantâneos da VM estão afetando o desempenho?

27

Li em um dos artigos da VMware KB que os instantâneos afetam diretamente o desempenho da VM.

Mas minha equipe continua me perguntando como os instantâneos podem afetar o desempenho.

Eu gostaria de dar a eles uma razão sólida por trás da declaração de que os instantâneos são prejudiciais ao desempenho.

Alguém pode explicar um pouco da teoria sobre como os instantâneos estão realmente afetando o desempenho? É apenas porque a taxa de E / S do disco rígido seria lenta?

Samselvaprabu
fonte
2
Não tenho certeza se este é o artigo da KB que você leu ou não. Eu pensei em adicioná-lo como referência.
Aaron Copley

Respostas:

28

Quando você cria um instantâneo, a imagem original do disco é "congelada" em um estado consistente e todos os acessos de gravação a partir de então passam para uma nova imagem diferencial. Pior ainda, como explicado aqui e aqui , a imagem diferencial tem a forma de um log de alterações, que registra todas as alterações feitas em um arquivo desde que o instantâneo foi obtido. Isso significa que os acessos de leitura precisariam ler não apenas um arquivo, mas também todos os dados de diferença (os dados originais mais todas as alterações feitas nos dados originais). O número aumenta ainda mais quando você envia instantâneos em cascata.

Ansgar Wiechers
fonte
2
Melhor explicação. Você não está apenas duplicando IOPS, mas há uma sobrecarga de CPU no cálculo da diferença no nível de bloco.
Aaron Copley
3
Depois de ler este artigo vinculado por Aaron Copley ( kb.vmware.com/selfservice/microsites/… ), parece pior do que isso. Um instantâneo não é uma imagem diferencial, é um log de alterações; portanto, se você escrever os mesmos dados no mesmo local 10 vezes, o instantâneo aumentará seu tamanho em 10, multiplicando o tamanho dos dados que você escreveu. Em vez disso, uma imagem diferencial deve ser mais eficiente, porque deve substituir os dados reescritos no mesmo local.
Max
11
@zespri O problema afeta todas as plataformas de virtualização usando esse tipo de tecnologia de instantâneo, incluindo o Hyper-V.
Ansgar Wiechers
11
Isso está completamente errado. Veja o comentário de @Falcon Momot para a resposta correta. Até o artigo vinculado apenas afirma que o disco "pode ​​ficar sem espaço", o que fica claro quando o espaço restante antes de tirar um instantâneo é menor que o disco capturado e o deltadisk não possui espaço suficiente para expandir.
Daniel
2
@AnsgarWiechers Esta resposta está definitivamente errada. O artigo vinculado ( kb.vmware.com/s/article/1015180 ) declara; "O disco filho, criado com uma captura instantânea, é um disco esparso. Os discos esparsos empregam o mecanismo de cópia na gravação (COW), no qual o disco virtual não contém dados em locais, até ser copiado por uma gravação". Seguido por; "Se uma máquina virtual está ficando sem um instantâneo, está fazendo alterações em um disco filho ou esparso. Quanto mais operações de gravação feitas nesse disco, maior ele cresce, até um limite superior do tamanho do disco base mais um pequena quantidade de sobrecarga ".
Steve365
5

Quando você cria um instantâneo em uma VM, ele cria um Delta Disk e o sistema operacional grava nesse arquivo em vez do VMDK original. Esse arquivo é chamado VM_Name-Delta.VMDK, mas se o sistema precisar se referir a um arquivo antes da captura instantânea, ele se referirá a VM_Name.VMDK aumentando a E / S desta operação. Se você tirar várias capturas instantâneas, estará se referindo ao último arquivo delta da última captura instantânea e não ao VMDK original, aumentando assim a E / S.

Exemplo.

OS ---> Instantâneo (arquivo A criado) ---> (Arquivo de instantâneo B criado)

Se eu precisar consultar o arquivo A, ele procurará por 3 VMDKs para encontrar isso.

Além disso, se você incluir o estado da memória da VM no momento da captura instantânea, isso cria um arquivo delta novamente e refere-se aos arquivos de memória originais, se necessário.

Um arquivo é criado, lista todos os arquivos criados no momento do processo de captura instantânea

Zapto
fonte
2

Até onde eu sei, o VMWare está usando a lógica de copiar na gravação para implementar seus instantâneos. Portanto, quando você cria uma, todas as operações realizadas na sua VM (por exemplo, quase tudo em tempo de execução) fazem com que um pouco da VM seja copiada até que a coisa toda seja essencialmente clonada.

Outro problema de desempenho é que as leituras precisariam cascatear para a cópia original se a cópia de trabalho ainda não tiver dados (porque nada foi alterado para causar uma cópia).

Se você deseja ter os instantâneos como backup, mas não pode tolerar uma pequena queda no desempenho, considere a clonagem da VM.

Falcon Momot
fonte
-2

Dos valores altos de co-parada (% CSTP) vistos durante as atividades de captura instantânea da máquina virtual :

À medida que o tamanho e o número de capturas instantâneas em uma máquina virtual aumentam, aumenta também o número de operações de comando de armazenamento no vmkernel. Para cada comando de armazenamento emitido pelo sistema operacional convidado da máquina virtual, várias operações de comando de armazenamento podem ser necessárias para percorrer toda a cadeia de instantâneos para ler o bloco de dados mais apropriado.

Shahnawaz Usmani
fonte