Considerações de desempenho do armazenamento de dados da Solução VMware do Azure para Arquivos NetApp do Azure
Este artigo fornece considerações de desempenho para o design e o dimensionamento do armazenamento de dados da Solução VMware do Azure quando usado com os Arquivos NetApp do Azure. Este conteúdo é aplicável a um administrador de virtualização, arquiteto de nuvem ou arquiteto de armazenamento.
As considerações descritas neste artigo ajudam você a alcançar os mais altos níveis de desempenho de seus aplicativos com eficiência de custos 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 do Azure. Os testes incluíram várias configurações diferentes entre a Solução VMware do Azure e os Arquivos NetApp do Azure. Os testes foram capazes de gerar mais de 10.500 MiB/s e mais de 585.000 operações de entrada/saída por segundo (IOPS) com apenas quatro hosts Azure VMware Solution/ESXi e um único pool de capacidade do Azure NetApp Files.
Obtendo maior desempenho de armazenamento para a Solução VMware do Azure usando Arquivos NetApp do Azure
O provisionamento de vários armazenamentos de dados, potencialmente maiores, em um nível de serviço pode custar menos e, ao mesmo tempo, oferecer maior desempenho. O motivo é devido à distribuição de carga em vários fluxos TCP de hosts da Solução VMware do Azure para vários armazenamentos de dados. Você pode usar o armazenamento de dados do Azure NetApp Files para o Azure VMware Solution TCO Estimator para calcular possíveis economias de custos carregando um relatório RVTools ou inserindo o dimensionamento médio manual da VM.
Quando você determina como configurar armazenamentos de dados, a solução mais fácil de uma perspetiva 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 taxa de transferência ou IOPS sejam necessárias. Para identificar os diferentes limites, os testes usaram um gerador de carga de trabalho sintética, o programa fio
, para avaliar uma gama de cargas de trabalho para cada um desses cenários. Essa análise pode ajudá-lo a determinar como provisionar os volumes do Azure NetApp Files como armazenamentos de dados para maximizar o desempenho e otimizar os custos.
Antes de começar
Para obter dados de desempenho dos Arquivos NetApp do Azure, consulte:
Arquivos NetApp do Azure: Aproveitando ao máximo seu armazenamento em nuvem
Em um host da Solução VMware do Azure, uma única conexão de rede é estabelecida por armazenamento de dados NFS, semelhante ao uso
nconnect=1
nos testes do Linux mencionados na Seção 6 (As Opções de Ajuste). Esse fato é fundamental para entender como a Solução VMware do Azure dimensiona tão bem o desempenho em vários armazenamentos de dados.
Metodologia de ensaio
Esta secção descreve a metodologia utilizada para os testes.
Cenários de teste e iterações
Este teste segue a metodologia dos "quatro cantos", que inclui operações de leitura e de escrita para cada entrada/saída (IO) sequencial e aleatória. As variáveis dos testes incluem hosts um-para-muitos da Solução VMware do Azure, armazenamentos de dados do Azure NetApp Files, VMs (por host) e discos VM (VMDKs) por VM. Os seguintes pontos de dados de dimensionamento foram selecionados para encontrar a taxa de transferência máxima e IOPS para os cenários determinados:
- Dimensionamento de VMDKs, cada um em seu próprio armazenamento de dados para uma única VM.
- Dimensionamento do número de VMs por host em um único armazenamento de dados do Azure NetApp Files.
- Dimensionamento do número de hosts da Solução VMware do Azure, cada um com uma VM compartilhando um único armazenamento de dados do Azure NetApp Files.
- Dimensionamento do número de armazenamentos de dados do Azure NetApp Files, cada um com um VMDK igualmente espalhado pelos hosts da Solução VMware do Azure.
O teste de operações de blocos pequenos e grandes e a iteração através de 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 aleatorização, as seguintes combinações comuns são usadas:
- Testes sequenciais de 64 KB
- Grandes cargas de trabalho de streaming de arquivos geralmente são lidas e gravadas em grandes tamanhos de bloco, além de serem o tamanho de extensão padrão do MSSQL.
- Os testes de blocos grandes normalmente produzem a taxa de transferência mais alta (em MiB/s).
- Testes aleatórios de 8 KB
- Essa configuração é o tamanho de bloco comumente usado para software de banco de dados, incluindo software da Microsoft, Oracle e PostgreSQL.
- Os testes de blocos pequenos normalmente produzem o maior número de IOPS.
Nota
Este artigo aborda apenas o teste de Arquivos NetApp do Azure. Ele não cobre o armazenamento vSAN incluído na solução VMware do Azure.
Detalhes do ambiente
Os resultados neste artigo foram obtidos usando a seguinte configuração de ambiente:
- Hosts da solução VMware do Azure:
- Tamanho: AV36
- Contagem de anfitriões: 4
- VMware ESXi versão 7u3
- Conectividade de nuvem privada da Solução VMware do Azure: gateway UltraPerformance com FastPath
- VMs convidadas:
- Sistema operacional: Ubuntu 20.04
- CPUs/Memória: 16 vCPU / 64 GB de memória
- Controlador Virtual LSI SAS SCSI com disco de SO de 16 GB no armazenamento de dados vSAN da Solução VMware do Azure
- Controlador SCSI paravirtual para 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
- Azure VMware Solution para o protocolo Azure NetApp Files: NFS versão 3
- Gerador de carga de trabalho:
fio
versão 3.16 - Scripts fio:
fio-parser
Resultados do teste
Esta seção descreve os resultados dos testes realizados.
Dimensionamento de VM única
Ao configurar o armazenamento de dados apresentado em uma máquina virtual do Azure VMware Solution, você deve considerar o impacto do layout do sistema de arquivos. A configuração de vários VMDKs espalhados por vários armazenamentos de dados fornece as maiores quantidades de largura de banda disponíveis. A configuração de VMDKs 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 limite de desempenho mais baixo. Os dados empíricos fornecidos neste artigo ajudam-no nas 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 à medida que é montada por meio de uma única conexão TCP com um determinado host da Solução VMware do Azure.
Por exemplo, os engenheiros geralmente provisionam um VMDK para um log de banco de dados e, em seguida, provisionam um para muitos VMDKs para arquivos de 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 equilibrar a E/S distribuindo entre VMDKs. Quando VMDKs são usados como sistemas de arquivos individuais, distribuir cargas de trabalho em vários armazenamentos de dados é um esforço manual e pode ser complicado. O uso de utilitários de gerenciamento de armazenamento para distribuir os arquivos entre VMDKs permite a escalabilidade da carga de trabalho.
Se você distribuir volumes em vários discos, verifique se o software de backup ou o software de recuperação de desastres oferece suporte ao backup de vários discos virtuais simultaneamente. Como 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 snapshot ou backup. A maioria dos sistemas de arquivos modernos incluem uma operação de congelamento ou instantâneo, como xfs
(xfs_freeze
) e NTFS (cópias de sombra de volume), que o software de backup pode aproveitar.
Para entender o quão bem uma única VM do Azure VMware Solution é dimensionada à medida que mais discos virtuais são adicionados, os testes foram realizados com um, dois, quatro e oito armazenamentos de dados (cada um contendo um único VMDK). O diagrama a seguir mostra uma média de um único disco em torno de 73.040 IOPS (dimensionamento de 100% gravação / 0% leitura para 0% gravação / 100% leitura). Quando este teste foi aumentado para dois drives, o desempenho aumentou 75,8% para 128.420 IOPS. O aumento para quatro drives começou a mostrar retornos cada vez menores do que uma única VM, dimensionada conforme testada, poderia empurrar. O pico de IOPS observado foi de 147.000 IOPS com leituras 100% aleatórias.
Dimensionamento de host único – armazenamento de dados único
Ele é mal dimensionado para aumentar o número de VMs que direcionam a E/S para um único armazenamento de dados a partir de um único host. Este facto deve-se ao fluxo único da rede. Quando o desempenho máximo é atingido para uma determinada carga de trabalho, geralmente é o resultado de uma única fila usada ao longo do 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 dimensionar de uma VM com um único VMDK para quatro VMs com 16 VMDKs totais (quatro por VM, tudo em um único armazenamento de dados).
O aumento do tamanho do bloco (para 64 KB) para cargas de trabalho de bloco grandes teve resultados comparáveis, atingindo um pico de 2148 MiB/s (VM única, VMDK única) e 2138 MiB/s (4 VMs, 16 VMDKs).
Dimensionamento de host único – Vários armazenamentos de dados
A partir do contexto de um único host da Solução VMware do Azure, enquanto um único armazenamento de dados permitiu que as VMs gerassem cerca de 76.000 IOPS, a distribuição das cargas de trabalho por dois armazenamentos de dados aumentou a taxa de transferência total em 76%, em média. Passar de dois armazenamentos de dados para quatro resultou em um aumento de 163% (sobre 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 datastores mostrou retornos decrescentes.
Dimensionamento de vários hosts – armazenamento de dados único
Um único armazenamento de dados de um único host produziu mais de 2000 MiB/s de taxa de transferência sequencial de 64 KB. Distribuir a mesma carga de trabalho em todos os quatro hosts produziu um ganho máximo de 135%, gerando mais de 5000 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 é dimensionado à medida que o número de hosts e o número de armazenamentos de dados aumentam, porque o número de fluxos de rede aumenta. O desempenho aumenta dimensionando o número de hosts multiplicado pelo número de armazenamentos de dados, porque a contagem de fluxos de rede é um fator de hosts vezes armazenamentos de dados.
Dimensionamento de vários hosts – Vários armazenamentos de dados
Um único armazenamento de dados com quatro VMs espalhadas por quatro hosts produziu mais de 5000 MiB/s de E/S sequencial de 64 KB. Para 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.
Para cargas de trabalho aleatórias de blocos pequenos, um único armazenamento de dados produziu 195.000 IOPS aleatórias de 8 KB. O dimensionamento para quatro datastores produziu mais de 530.000 IOPS 8K aleatórios.
Implicações e recomendações
Esta seção discute por que espalhar suas VMs em vários armazenamentos de dados tem benefícios substanciais de desempenho.
Conforme mostrado nos resultados do teste, os recursos de desempenho dos Arquivos NetApp do Azure são abundantes:
- Os testes mostram que um armazenamento de dados pode gerar uma média de ~148.980 IOPS de 8 KB ou ~4147 MiB/s com IOPS de 64 KB (média de todos os testes de write%/read%) a partir de uma configuração de quatro hosts.
- Uma VM em um armazenamento de dados –
- Se você tiver VMs individuais que podem precisar de mais de ~75K IOPS de 8 KB ou mais de ~1700 MiB/s, espalhe os sistemas de arquivos por várias VMDKs para dimensionar o desempenho de armazenamento das VMs.
- Uma VM em vários armazenamentos de dados – Uma única VM em 8 armazenamentos de dados alcançou até ~147.000 IOPS de 8 KB ou ~2786 MiB/s com um tamanho de bloco de 64 KB.
- Um host - Cada host foi capaz de suportar uma média de ~198.060 IOPS de 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 desempenho máximo, potencialmente intermitente, versus complicação de gerenciamento e custo.
Recomendações
Quando os recursos de desempenho de um único armazenamento de dados forem insuficientes, espalhe suas VMs por vários armazenamentos de dados para dimensionar ainda mais. A simplicidade geralmente é a melhor, mas o desempenho e a escalabilidade podem justificar a complexidade adicional, mas limitada.
Quatro armazenamentos de dados do Azure NetApp Files fornecem até 10 GBps de largura de banda utilizável para grandes E/S sequenciais ou a capacidade de gerar até 500K IOPS aleatórias de 8K. 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.
Para ajuste granular de desempenho, os sistemas operacionais convidados Windows e Linux permitem a distribuição em vários discos. Como tal, você deve distribuir sistemas de arquivos em vários VMDKs espalhados por vários armazenamentos de dados. No entanto, se a consistência do instantâneo do aplicativo for um problema e não puder ser superada com LVM ou espaços de armazenamento, considere montar Arquivos NetApp do Azure a partir do sistema operacional convidado ou investigue o dimensionamento no nível do aplicativo, do qual o Azure tem muitas opções excelentes.
Se você distribuir volumes em vários discos, verifique se o software de backup ou o software de recuperação de desastres oferece suporte ao backup de vários discos virtuais simultaneamente. Como 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 snapshot ou backup. A maioria dos sistemas de arquivos modernos incluem uma operação de congelamento ou instantâneo, como xfs (xfs_freeze) e NTFS (cópias de sombra de volume), que o software de backup pode aproveitar.
Como os Arquivos NetApp do Azure cobram pela capacidade provisionada no pool de capacidade em vez da capacidade alocada (armazenamentos de dados), você pagará, por exemplo, o mesmo para armazenamentos de dados de 4x20TB ou 20x4TB. Se precisar, você pode ajustar a capacidade e o desempenho de armazenamentos de dados sob demanda, dinamicamente por meio da API/console do Azure.
Por exemplo, ao se aproximar do final de um ano fiscal, você descobre que precisa de mais desempenho de armazenamento no armazenamento de dados padrão. 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. Você não só economiza custos, mas ganha mais desempenho ao ter cargas de trabalho espalhadas entre mais conexões TCP entre cada armazenamento de dados para cada host AVS.
Você pode monitorar suas métricas de armazenamento de dados por meio do vCenter Server ou por meio da API/Console do Azure. No vCenter Server, você pode monitorar as IOPS médias agregadas de um armazenamento de dados nos Gráficos de Desempenho/Avançados , desde que habilite a coleta de Métricas de Controle de E/S de Armazenamento no armazenamento de dados. A API e o console do Azure apresentam métricas para WriteIops
, ReadIops
, ReadThroughput
e , entre WriteThroughput
outras, 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 redimensionar automaticamente um armazenamento de dados por meio de uma função do Azure, um webhook ou outras ações.
Próximos passos
- Distribuindo discos no Azure
- Criando volumes distribuídos no Windows Server
- Arquitetura de armazenamento da Solução VMware do Azure
- Anexar armazenamentos de dados do Azure NetApp Files aos hosts da Solução VMware do Azure
- Anexar arquivos NetApp do Azure a VMs da solução VMware do Azure
- Considerações de desempenho do Azure NetApp Files
- Práticas recomendadas de opções de montagem do Linux NFS para Arquivos NetApp do Azure