Considerações sobre o desempenho do armazenamento de dados da Solução VMware no Azure para o Azure NetApp Files
Este artigo fornece considerações de desempenho do design e do dimensionamento do armazenamento de dados da Solução VMware no Azure quando usado com o Azure NetApp Files. Esse conteúdo é aplicável a um administrador de virtualização, arquiteto de nuvem ou arquiteto de armazenamento.
As considerações descritas neste artigo o ajudam a obter os níveis mais altos de desempenho dos seus aplicativos com eficiência de custo otimizada.
O Azure NetApp Files fornece um serviço de armazenamento instantaneamente escalável, de alto desempenho e altamente confiável para a Solução VMware no Azure. Os testes incluíram várias configurações diferentes entre a Solução VMware no Azure e os Arquivos NetApp no Azure. Os testes geraram mais de 10.500 MiB/s e mais de 585.000 operações de entrada/saída por segundo (IOPS) com apenas quatro hosts da Solução VMware/ESXi no Azure e um único pool de capacidade do Azure NetApp Files.
Obtendo um desempenho de armazenamento mais alto para a Solução VMware no Azure usando o Azure NetApp Files
O provisionamento de vários armazenamento de dados, potencialmente maiores, em um nível de serviço pode custar menos e, ao mesmo tempo, proporcionar melhor desempenho. O motivo é a distribuição da carga em vários fluxos TCP dos hosts da Solução VMware no Azure para vários armazenamento de dados. Você pode usar o Armazenamento de dados do Azure NetApp Files no Avaliador de TCO da Solução VMware no Azure para calcular a economia de potenciais custos carregando um relatório RVTools ou inserindo o dimensionamento de VM médio manual.
Quando você determina como configurar o armazenamento de dados, a solução mais fácil de uma perspectiva de gerenciamento é criar um único armazenamento de dados do Azure NetApp Files, montá-lo e colocar todas as suas VMs. Essa estratégia funciona bem para muitas situações, até que mais taxas de transferência ou IOPS sejam necessárias. Para identificar os diferentes limites, os testes usaram um gerador de carga de trabalho sintético, o programa fio
para avaliar um intervalo de cargas de trabalho para cada um desses cenários. Essa análise pode ajudá-lo a determinar como provisionar volumes do Azure NetApp Files como armazenamento de dados para maximizar o desempenho e otimizar os custos.
Antes de começar
Para obter dados de desempenho do Azure NetApp Files, consulte:
Azure NetApp Files: como obter o maior desempenho de seu armazenamento em nuvem
Em um host da Solução VMware no Azure, uma única conexão de rede é estabelecida por armazenamento de dados NFS semelhante ao uso de
nconnect=1
nos testes do Linux referenciados na Seção 6 (As Opções de Ajuste). Esse fato é fundamental para entender como a Solução VMware no Azure dimensiona tão bem o desempenho em vários armazenamentos de dados.
Metodologia de teste
Essa seção descreve a metodologia usada nos testes.
Cenários de teste e iterações
Esse teste segue a metodologia de "quatro cantos", que inclui operações de leitura e operações de gravação para cada sequencial e aleatória de entrada/saída (E/S). As variáveis dos testes incluem os hosts da Solução VMware no Azure, armazenamento de dados do Azure NetApp Files, VMs (por host) e VMDKs (discos de VM) por VM. Os seguintes pontos de dados de escalonamento foram selecionados para encontrar a taxa de transferência e o IOPS máximos para os cenários determinados:
- Dimensionamento de VMDKs, cada um no seu armazenamento de dados para uma única VM.
- Escalando o número de VMs por host em um único armazenamento de dados do Azure NetApp Files.
- Escalando o número de hosts da Solução VMware no Azure, cada um com uma VM compartilhando um único armazenamento de dados do Azure NetApp Files.
- Escalando o número de armazenamentos de dados do Azure NetApp Files, cada um com um VMDK distribuído igualmente entre os hosts da Solução VMware no Azure.
O teste de operações de blocos pequenos e grandes e a iteração através das cargas de trabalho sequenciais e aleatórias garantem o teste de todos os componentes nas pilhas de computação, armazenamento e rede até a "borda". Para cobrir os quatro cantos com tamanho de bloco e randomização, são usadas as seguintes combinações comuns:
- Testes sequenciais de 64 KB
- Normalmente, as cargas de trabalho de streaming de arquivos grandes leem e gravam em blocos de tamanho grande, além de ser o tamanho padrão da extensão do MSSQL.
- Normalmente, os testes de blocos grandes produzem a maior taxa de transferência (em MiB/s).
- Testes aleatórios de 8 KB
- Essa configuração é o tamanho de bloco comumente usado no software do banco de dados, incluindo o software da Microsoft, Oracle e PostgreSQL.
- Normalmente, os testes de blocos pequenos produzem o maior número de IOPS.
Observação
Este artigo aborda apenas o teste do Azure NetApp Files. Ele não abrange o armazenamento vSAN incluído na Solução VMware no Azure.
Detalhes do ambiente
Os resultados deste artigo foram obtidos usando a seguinte configuração de ambiente:
- Cota da Solução VMware no Azure
- Tamanho: AV36
- Contagem do host: 4
- VMware ESXi versão 7u3
- Conectividade de nuvem privada da Solução VMware no Azure: gateway UltraPerformance com FastPath
- VMs convidadas:
- Sistema operacional: Ubuntu 20.04
- CPUs/Memória: memória de 16 vCPU/64 GB
- Controlador SCSI do LSI SAS virtual com disco do sistema operacional de 16 GB no armazenamento de dados vSAN da Solução VMware no Azure
- Controlador SCSI paravirtual do VMDKs de teste
- Configurações de LVM/Disco:
- Um volume físico por disco
- Um grupo de volumes por volume físico
- Uma partição lógica por grupo de volumes
- Um sistema de arquivos XFS por partição lógica
- Protocolo da Solução VMware no Azure NetApp Files: NFS versão 3
- Gerador de carga de trabalho:
fio
versão 3.16 - Scripts do Fio:
fio-parser
Resultados do teste
Esta seção descreve os resultados dos testes realizados.
Dimensionamento de VM única
Ao configurar o armazenamento apresentado pelo armazenamento de dados em uma máquina virtual da Solução VMware no Azure, considere o impacto do layout do sistema de arquivos. Configurar vários VMDKs distribuídos em vários armazenamentos de dados fornece as maiores quantidades de largura de banda disponíveis. A configuração de VMDKs de um para muitos colocados em um único armazenamento de dados garante a maior simplicidade quando se trata de backups e operações de DR, mas ao custo de um teto de desempenho mais baixo. Os dados empíricos fornecidos neste artigo o ajudam com as decisões.
Para maximizar o desempenho, é comum dimensionar uma única VM em vários VMDKs e colocar esses VMDKs em vários armazenamentos de dados. Uma única VM com apenas um ou dois VMDKs pode ser limitada por um armazenamento de dados NFS, pois ele é montado por uma única conexão TCP em um determinado host da Solução VMware no Azure.
Por exemplo, os engenheiros geralmente provisionam um VMDK para um log de banco de dados e depois provisionam VMDKs de um para muitos para os arquivos do banco de dados. Com vários VMDKs, há duas opções. A primeira opção é usar cada VDMK como um sistema de arquivos individual. A segunda opção é usar um utilitário de gerenciamento de armazenamento, como LVM, Grupos de Arquivos MSSQL ou Oracle ASM, para balancear a E/S distribuindo entre os VMDKs. Quando os VMDKs são usados como sistemas de arquivos individuais, a distribuição de cargas de trabalho em vários armazenamentos de dados é um esforço manual e pode ser complicado. Usar os utilitários de gerenciamento de armazenamento para espalhar os arquivos entre os VMDKs permite a escalabilidade da carga de trabalho.
Se você distribuir os volumes em vários discos, verifique se o software de backup ou software de recuperação de desastre dá suporte ao backup de vários discos virtuais simultaneamente. À medida que as gravações individuais são distribuídas em vários discos, o sistema de arquivos precisa garantir que os discos sejam "congelados" durante as operações de instantâneo ou de backup. A maioria dos sistemas de arquivos modernos inclui uma operação de congelamento ou instantâneo, como xfs
(xfs_freeze
) e NTFS (cópias de sombra de volume), das quais o software de backup pode tirar proveito.
Para entender como uma única VM da Solução VMware no Azure é escalonada à medida que mais discos virtuais são adicionados, foram realizados testes com um, dois, quatro e oito armazenamentos de dados (cada um contendo um único VMDK). O diagrama a seguir mostra um único disco com uma média de cerca de 73.040 IOPS (escalando de 100% de gravação / 0% de leitura, para 0% de gravação / 100% de leitura). Quando esse teste foi aumentado para duas unidades, o desempenho aumentou 75,8%, para 128.420 IOPS. O aumento para quatro unidades começou a mostrar retornos decrescentes em relação à capacidade de uma única VM, com o tamanho testado, poderia efetuar o push. O pico de IOPS observado foi de 147.000 IOPS com leituras aleatórias de 100%.
Escalonamento de host único - Armazenamento de dados único
Ele é mal dimensionado para aumentar o número de VMs que conduzem a E/S para um único armazenamento de dados a partir de um único host. Esse fato ocorre devido ao fluxo de rede única. Quando o desempenho máximo é atingido em uma determinada carga de trabalho, geralmente é o resultado de uma única fila usada no caminho para o armazenamento de dados NFS único do host em uma única conexão TCP. Usando um tamanho de bloco de 8 KB, o IOPS total aumentou entre 3% e 16% ao escalar de uma VM com um único VMDK para quatro VMs com 16 VMDKs totais (quatro por VM, todas em um único armazenamento de dados).
O aumento do tamanho do bloco (para 64 KB) para as cargas de trabalho de blocos grandes teve resultados comparáveis, atingindo um pico de 2148 MiB/s (VM única, VMDK única) e 2138 MiB/s (4 VMs, 16 VMDKs).
Escalonamento de host único - Vários armazenamentos de dados
No contexto de um único host da Solução VMware no Azure, enquanto um único armazenamento de dados permitia que as VMs gerassem cerca de 76.000 IOPS, a distribuição das cargas de trabalho em dois armazenamentos de dados aumentou a taxa de transferência total em 76%, em média. Passar de dois para quatro armazenamentos de dados resultou em um aumento de 163% (em relação a um armazenamento de dados, um aumento de 49% de dois para quatro), conforme mostrado no diagrama a seguir. Embora ainda houvesse ganhos de desempenho, o aumento além de oito armazenamentos de dados apresentou retornos decrescentes.
Escalonamento de vários hosts - Armazenamento de dados único
Um único armazenamento de dados de um único host produziu mais de 2.000 MiB/s de taxa de transferência sequencial de 64 KB. A distribuição da mesma carga de trabalho em todos os quatro hosts produziu um ganho máximo de 135% dirigindo mais de 5.000 MiB/s. Esse resultado provavelmente representa o teto superior de um único desempenho de taxa de transferência de volume do Azure NetApp Files.
Diminuir o tamanho do bloco de 64 KB para 8 KB e executar novamente as mesmas iterações resultou em quatro VMs produzindo 195.000 IOPS, conforme mostrado no diagrama a seguir. O desempenho é escalonado conforme o número de hosts e o número de armazenamentos de dados aumentam, pois o número de fluxos de rede aumenta. O desempenho aumenta escalonando o número de hosts multiplicados pelo número de armazenamentos de dados, pois a contagem de fluxos de rede é um fator de hosts multiplicados pelos armazenamentos de dados.
Escalonamento de vários hosts - Vários armazenamentos de dados
Um único armazenamento de dados com quatro VMs distribuídas em quatro hosts produziu mais de 5.000 MiB/s de E/S sequencial de 64 KB. Quanto às cargas de trabalho mais exigentes, cada VM é movida para um armazenamento de dados dedicado, produzindo mais de 10.500 MiB/s no total, conforme mostrado no diagrama a seguir.
Quanto às cargas de trabalho aleatórias de blocos pequenos, um único armazenamento de dados produziu 195.000 IOPS aleatórias de 8 KB. O escalonamento de quatro armazenamentos de dados produziu mais de 530.000 IOPS aleatórias de 8K.
Implicações e recomendações
Esta seção discute por que a disseminação das suas VMs em vários armazenamentos de dados possuem benefícios substanciais de desempenho.
Conforme mostrado nos resultados do teste, os recursos de desempenho do Azure NetApp Files são abundantes:
- Os testes mostram que um armazenamento de dados pode gerar uma média de IOPS de ~148.980 de 8 KB ou ~4147 MiB/s com IOPS de 64 KB (média de todos os testes de% de gravação/leitura) em uma configuração de quatro hosts.
- Uma VM em um armazenamento de dados –
- Se você tiver VMs individuais que talvez precisem de mais de IOPS de ~75k 8-KB ou mais de ~1700 MiB/s, espalhe os sistemas de arquivos em vários VMDKs para escalonar o desempenho de armazenamento de VMs.
- Uma VM em vários armazenamentos de dados – Uma única VM em 8 armazenamentos de dados atingiu até IOPS de ~147.000 de 8 KB ou ~2786 MiB/s com um tamanho de bloco de 64 KB.
- Um host – Cada host forneceu suporte a uma média de IOPS de ~198.060 8 KB ou ~2351 MiB/s se você usar pelo menos 4 VMs por host com pelo menos 4 armazenamentos de dados do Azure NetApp Files. Assim, você tem a opção de equilibrar o provisionamento de armazenamentos de dados suficientes para obter o máximo desempenho, potencialmente explosivo, em relação à complicação do gerenciamento e do custo.
Recomendações
Quando os recursos de desempenho de um único armazenamento de dados forem insuficientes, espalhe suas VMs em vários armazenamentos de dados para escalonar ainda mais. Geralmente, a simplicidade é melhor, mas o desempenho e a escalabilidade podem justificar a complexidade adicionada, mas limitada.
Quatro armazenamentos de dados do Azure NetApp Files fornecem até 10 GBps de largura de banda útil para IO sequencial grande ou a capacidade de gerar até 500 mil IOPS aleatórios de 8 mil. Embora um armazenamento de dados possa ser suficiente para muitas necessidades de desempenho, para obter o melhor desempenho, comece com um mínimo de quatro armazenamentos de dados.
Quanto ao ajuste de desempenho granular, os sistemas operacionais convidados Windows e Linux permitem a distribuição em vários discos. Dessa forma, você deve distribuir sistemas de arquivos em vários VMDKs espalhados por vários armazenamentos de dados. Porém, se a consistência do snapshot do aplicativo for um problema e não puder ser superado com LVM ou espaços de armazenamento, considere a possibilidade de montar o Azure NetApp Files no sistema operacional convidado ou investigue o dimensionamento no nível do aplicativo, do qual o Azure tem muitas opções excelentes.
Se você distribuir os volumes em vários discos, verifique se o software de backup ou software de recuperação de desastre dá suporte ao backup de vários discos virtuais simultaneamente. À medida que as gravações individuais são distribuídas em vários discos, o sistema de arquivos precisa garantir que os discos sejam "congelados" durante as operações de instantâneo ou de backup. A maioria dos sistemas de arquivos modernos inclui uma operação de congelamento ou instantâneo, como xfs (xfs_freeze) e NTFS (cópias de sombra de volume), das quais o software de backup pode tirar proveito.
Como o Azure NetApp Files cobra a capacidade provisionada no pool de capacidade em vez de a capacidade alocada (armazenamentos de dados), você pagará, por exemplo, o mesmo para armazenamentos de dados 4x20TB ou armazenamentos de dados 20x4TB. Se for necessário, você poderá ajustar a capacidade e o desempenho dos armazenamentos de dados sob demanda, dinamicamente pela API/console do Azure.
Por exemplo, à medida que você se aproxima do final de um ano fiscal, você descobre que precisa de mais desempenho de armazenamento no armazenamento de dados Standard. Você pode aumentar o nível de serviço dos armazenamentos de dados por um mês para permitir que todas as VMs nesses armazenamentos de dados tenham mais desempenho disponível para eles, mantendo outros armazenamentos de dados em um nível de serviço mais baixo. Além de economizar custo, você ganha mais desempenho fazendo com que as cargas de trabalho se espalhem entre mais conexões TCP entre cada armazenamento de dados para cada host da AVS.
Você pode monitorar suas métricas de armazenamento de dados pelo vCenter Server ou pela API/Console do Azure. No vCenter Server, você pode monitorar a IOPS média agregada de um armazenamento de dados nos Gráficos de Desempenho/Avançados, desde que você habilite a coleta de Métricas de Controle de E/S de Armazenamento no armazenamento de dados. A API do Azure e o console apresentam métricas para WriteIops
, ReadIops
, ReadThroughput
e WriteThroughput
, entre outros, para medir suas cargas de trabalho no nível do armazenamento de dados. Com as métricas do Azure, você pode definir regras de alerta com ações para reescalonar automaticamente um armazenamento de dados por uma função do Azure, um Webhook ou outras ações.
Próximas etapas
- Discos de distribuição no Azure
- Criando volumes distribuídos no Windows Server
- Arquitetura de armazenamento da Solução VMware no Azure
- Anexar os armazenamentos de dados do Azure NetApp Files a hosts da Solução VMware no Azure
- Anexar o Azure NetApp Files a VMs da Solução VMware no Azure
- Considerações de desempenho para o Azure NetApp Files
- Melhores práticas de opções de montagem do NFS no Linux para o Azure NetApp Files