Performance dos VHDs

A Microsoft vem utilizando o VHD desde 2003 no Virtual PC e com o Windows Server 2008 R2 a integração do VHD passou a ser feita no sistema operacional. Um disco VHD é um arquivo que encapsula uma imagem de disco físico

A integração e melhorias do Windows Server 2008 R2 em relação ao suporte ao VHD podem ser resumida em:

  • Suporte nativo
  • Possibilidade de iniciar um sistema operacional (Boot) com um arquivo VHD
  • Integração para montar e desmontar arquivos VHD por meio do Gerenciador de Disco (Disk Management)
  • Aumento significativo de desempenho

Já escutei algumas teorias sobre desempenho dos arquivos VHD em alguns clientes. Existe muita informação desconectada ou mitos do passado. Por isso, resolvi pegar alguns testes de desempenho de VHD realizados pela Microsoft para ajudar a desmistificar alguns pontos.

Vamos aos gráficos.

Essa parte foca na comparação de performance de I/O entre discos:

  • PhysicalDisk(Native) – Esse é o disco físico apresentado ao sistema operacional.
  • PassthruDisk(VM) – Acesso ao um disco físico direto de um servidor virtual.
  • FixedVHD(Native) – Um disco virtual apresentado ao sistema operacional.
  • FixedVHD(VM) – Acesso à um arquivo VHD por uma maquina virtual. A forma mais comum em um cenário de virtualização.

 

 

A comparação de performance dos tipos de VHD (Fixo, Dinâmico e diferencial) com o acesso ao disco físico são reveladoras também. Apesar da diferença de performance entre os disco fixo e dinâmicos não serem muito grandes, se recomenda (e algumas vezes só é suportado) utilizar discos fixos em ambientes de produção devido ao risco de corromper o VHD por falta de espaço durante a expansão de um disco dinâmico. Outro ponto é que a operação de expansão causa impacto na performance de I/O durante essa transação.

 

 

Abaixo uma tabela resumindo pontos a favor e contra sobre cada um dos tipos de armazenamento.

 

Pros

Contras

Pass-through

  • Performance um pouco melhor
  • Possibilidade de usar disco da SAN direto de uma VM
  • Menor utilização de CPU
  • Suporte discos acima de 2TB
  • Não é possivel fazer snaoshots da VM
  • O disco é usado exclusivamente e diretamente por uma unica VM
  • Não podem fazer backup que utilizar o VSS do Hyper-V
  • Não é possivel fazer snapshots da VM
  • O disco é usado exclusivamente e diretamente por uma unica VM
  • Não podem fazer backup que utilizar o VSS do Hyper-V

Tamanho Fixo (Fixed sized VHD)

  • A melhor performance dos tipos de VHD
  • Um simples arquivo VHD te fornece o melhor alinhamento de I/O.
  • Mais robusto que os outros tipos de VHD.
  • Contém mais benefícios de gerencimanto que os discos pass-through
  • É possivel expandir o tamanho inicial do VHD.
  • Não existe o risco do VHD precisar expandir e não existir espaço para o crescimento.

 

  • A alocação total do espaço aumenta pode ter um impacto no storage quando se tem varias VM com disco fixo.
  • A criação de VHDs com tamanhos grandes pode levar tempo.
  • Reduzir o tamanho do VHD após a sua criação não é possível.

Dynamically expanding or Differencing VHD

  • Boa performance
  • Criação do VHD rápida
  • Prove eficiente uso do espaço em disco, devido ao crescimento sob demanda.
  • VHD com tamanhos pequenos tornam possível à movimentação de VMs na rede de forma mais eficiente.
  • É possível compactar o VHD e com isso reduzir o tamanho físico do arquivo VHD.

 

  • Intercalação de blocos de dados e metadados pode causar problemas de alinhamento de I/O
  • Degradação nas operações de escrita durante a expansão do VHD
  • Os arquivos não podem exceder 2040GB.
  • Pode ter uma VM pausada ou corrompida devido a falta de espaço em disco durante uma expansão.
  • Reduzir o tamanho especificado no VHD não é possível.
  • Disco Diferenciais não podem ser expandidos devido à herança do tamanho do disco do "pai".

 

O White Paper completo pode ser acessado em: https://download.microsoft.com/download/0/7/7/0778C0BB-5281-4390-92CD-EC138A18F2F9/WS08_R2_VHD_Performance_WhitePaper.docx