PowerEdge: Recursos das Dell Ready Solutions for HPC BeeGFS Storage
Summary: Recursos das Dell Ready Solutions for HPC BeeGFS Storage
Instructions
Sumário
- Introdução
- StorageBench — Para comparar o desempenho de diferentes configurações de RAID
- StorageBench — Para identificar destinos de armazenamento com defeito ou configuração incorreta
- Conclusão e trabalhos futuros
Introdução
Este blog discute os principais recursos das Dell Ready Solutions for HPC BeeGFS Storage, que foram anunciados recentemente. Este é o terceiro blog da série sobre a solução de armazenamento de alto desempenho BeeGFS. O primeiro blog anunciou o lançamento da solução. O segundo blog abordou a escalabilidade das Dell Ready Solutions for HPC BeeGFS Storage. Ele forneceu detalhes sobre as configurações básicas, as configurações escaláveis flexíveis e o desempenho de leitura/gravação sequencial medido das várias configurações, demonstrando que a escalabilidade é linear em relação ao número de servidores na solução. O blog atual destaca o uso do "StorageBench", a referência de desempenho de destinos de armazenamento integrado do BeeGFS.
BeeGFS é um sistema de arquivos de código aberto que pode ser baixado do www.beegfs.io. É um file system paralelo que distribui dados entre vários destinos de armazenamento. É um armazenamento definido por software que separa o file system lógico do hardware para armazenamento subjacente, permitindo que o usuário defina como e onde os dados são armazenados. O software do file system inclui recursos corporativos, como alta disponibilidade, imposição de cota e listas de controle de acesso. Os principais recursos do BeeGFS são facilidade de uso, escalabilidade e flexibilidade. Sua facilidade de uso decorre do fato de que todos os componentes do lado do servidor são daemons de espaço de usuário, enquanto o cliente é um módulo de kernel que não requer patches para o próprio kernel. Todos os componentes do BeeGFS podem ser instalados e atualizados sem reinicializar o servidor. Assim, podemos adicionar clients e servidores ao sistema existente sem nenhum tempo de inatividade. Ao adicionar servidores e unidades, o desempenho e a capacidade do sistema de arquivos podem ser dimensionados mais no blog linkado aqui. O BeeGFS é compatível com várias distribuições Linux e foi projetado para funcionar com qualquer sistema de arquivos local compatível com POSIX. O BeeGFS também oferece suporte à execução de várias instâncias de um determinado serviço no mesmo servidor.
O Dell Ready Solutions for HPC BeeGFS Storage aproveita todos os principais recursos do file system BeeGFS e foi projetado para alto desempenho. A solução usa servidores PowerEdge R740xd para armazenar e servir e/ou processar metadados e dados. Cada servidor PowerEdge R740xd tem 24 SSDs Intel P4600 NVMe de 1,6 TB, que são consideradas o segundo grande salto na tecnologia de unidades, sendo as SSDs a primeira. Em ambientes de HPC, o espaço temporário geralmente pode ser um fator limitador. Pode ser muito pequeno ou muito lento. O armazenamento BeeGFS da Dell EMC Ready Solutions for HPC foi projetado para ser usado como uma solução de rascunho e atende ao armazenamento temporário usando o sistema de arquivos BeeGFS.
O BeeGFS inclui duas ferramentas de benchmarking integradas que podem ajudar a caracterizar ou avaliar a rede ou o armazenamento, o NetBench e o StorageBench , respectivamente. Quando o modo NetBench está ativado, os servidores descartam as solicitações de gravação recebidas em vez de gravar os dados. Da mesma forma, no caso de solicitações de leitura, em vez de ler a partir do sistema de arquivos subjacente, somente os buffers de memória são enviados aos clientes. O modo NetBench destina-se a testar o throughput de streaming de rede independente dos discos subjacentes. Por outro lado, o StorageBench destina-se a medir o throughput de streaming do file system subjacente, independente do desempenho da rede. O StorageBench é uma referência de desempenho de destinos de armazenamento que não usa a rede. O comando storage-bench simplesmente envia a solicitação aos destinos de armazenamento para começar a gravar/ler dados. Ao fazer isso, eliminamos o impacto da rede. A saída obtida do banco de armazenamento é o melhor desempenho que o sistema pode alcançar se o desempenho da rede for ideal. Este blog ilustra como o StorageBench pode ser usado para comparar o desempenho de diferentes destinos de armazenamento e, assim, identificar destinos defeituosos ou configurados incorretamente.
StorageBench — Para comparar o desempenho de diferentes configurações de RAID
O StorageBench não usa o file system montado. Quando executamos o StorageBench, há apenas um destino por arquivo. O Storagebench cria um diretório em cada destino de armazenamento no sistema em que os arquivos de teste são criados igual ao número de threads de teste. Os dados são transmitidos diretamente para este para mostrar o throughput de baixo nível disponível para cada destino de armazenamento. Sem qualquer comunicação de rede, não é possível simular o fracionamento de arquivos. Portanto, os resultados da referência de desempenho de armazenamento são bastante comparáveis à E/S de client com fracionamento desabilitado. Quando as referências de desempenho são executadas, o arquivo é fracionado em quatro destinos de armazenamento se o padrão de fracionamento for adotado.
Para testar diferentes destinos de armazenamento, foram usadas as configurações pequenas e médias descritas no blog sobre a escalabilidade da solução de armazenamento BeeGFS da Dell. Ambas as configurações têm o mesmo número de destinos de metadados configurados no RAID 1. Eles diferem na configuração RAID dos destinos de armazenamento. Enquanto a configuração pequena tem os destinos de armazenamento configurados em RAID 0 de 6 unidades, a configuração média tem os destinos de armazenamento configurados em RAID 10 de seis unidades. Os destinos de armazenamento configurados na configuração Pequena e Média são tabulados abaixo:
| Tabela 1 Configuração do Testbed | ||
|---|---|---|
| Configuração | Médio - RAID 10 para destinos de armazenamento | Pequeno - RAID 0 para destinos de armazenamento |
| Número de destinos de metadados | 6 | 6 |
| Número de instâncias do serviço de metadados | 6 | 6 |
| Número de servidores de armazenamento | 5 | 2 |
| Número de destinos de armazenamento | 22 | 10 |
| Número de serviços de armazenamento por servidor | 4 | 4 |
| Número de serviços de armazenamento por zona NUMA | 2 | 2 |
| Número de destinos por instância do serviço de armazenamento | 2 | 2 |
Nota: A configuração acima da configuração média destina-se apenas a testar o throughput dos destinos de armazenamento configurados em diferentes configurações de RAID usando a ferramenta StorageBench.
Benchmark de gravação do StorageBench - Na configuração pequena com destinos de armazenamento configurados em RAID 0
A referência de desempenho de armazenamento é iniciada e monitorada com a ferramenta beegfs-ctl. O pacote beegfs-utils fornece a ferramenta de linha de comando beegfs-ctl que pode ser usada para executar a referência de desempenho de destinos de armazenamento. O exemplo a seguir inicia uma referência de desempenho de gravação em todos os destinos de todos os servidores de armazenamento BeeGFS com um tamanho de bloco de E/S de 512 KB, usando 16 threads por destino, cada um gravando 200 Gb de dados em seu próprio arquivo.
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 10
O "Running: A saída de 10" indica que há, no total, 10 destinos de armazenamento configurados no sistema.
Para consultar o status/resultados da referência de desempenho de todos os destinos, o seguinte comando pode ser executado:
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --status Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 50 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 48 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s
A adição de detalhes ao comando acima mostra a lista de todos os destinos e seu respectivo throughput.
[root@meta-stor ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 6 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 2 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s List of all targets: 1 5368477 KiB/s nodeID: meta-stor-numa1-1 [ID: 1] 2 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2] 3 4706368 KiB/s nodeID: stor1-numa0-1 [ID: 3] 4 4896077 KiB/s nodeID: stor1-numa1-1 [ID: 4] 5 4872876 KiB/s nodeID: stor1-numa1-2 [ID: 5] 6 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6] 7 4879054 KiB/s nodeID: stor2-numa1-2 [ID: 7] 8 4864737 KiB/s nodeID: stor2-numa1-1 [ID: 8] 9 4696152 KiB/s nodeID: stor2-numa0-1 [ID: 9] 10 4726202 KiB/s nodeID: stor2-numa0-2 [ID: 10]
Inferência do resultado:
O throughput médio por destino de armazenamento configurado no RAID 0 é de 5,02 GB/s.
Benchmark de gravação do StorageBench - Na configuração média com destinos de armazenamento configurados em RAID 10
O exemplo a seguir inicia uma referência de desempenho de gravação em todos os destinos de todos os servidores de armazenamento BeeGFS com um tamanho de bloco de E/S de 512 KB, usando 16 threads por destino, cada um dos quais grava 200 Gb de dados em seu próprio arquivo.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 22
A adição de detalhes ao comando acima mostra a lista de todos os destinos e seu respectivo throughput.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 22 Write benchmark results: Min throughput: 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19], targetID: 1 Max throughput: 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1], targetID: 1 Avg throughput: 3212845 KiB/s Aggregate throughput: 70682603 KiB/s List of all targets: 1 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 3361591 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 3309530 KiB/s nodeID: node002-numa0-1 [ID: 3] 4 3312840 KiB/s nodeID: node002-numa0-2 [ID: 4] 5 3332095 KiB/s nodeID: node002-numa1-1 [ID: 5] 6 3323319 KiB/s nodeID: node002-numa1-2 [ID: 6] 7 3313000 KiB/s nodeID: node003-numa0-1 [ID: 7] 8 3321214 KiB/s nodeID: node003-numa0-2 [ID: 8] 9 3335072 KiB/s nodeID: node003-numa1-1 [ID: 9] 10 3339743 KiB/s nodeID: node003-numa1-2 [ID: 10] 11 3302175 KiB/s nodeID: node004-numa0-1 [ID: 11] 12 3309474 KiB/s nodeID: node004-numa0-2 [ID: 12] 13 3329879 KiB/s nodeID: node004-numa1-1 [ID: 13] 14 3328291 KiB/s nodeID: node004-numa1-2 [ID: 14] 15 3306132 KiB/s nodeID: node005-numa0-1 [ID: 15] 16 3307096 KiB/s nodeID: node005-numa0-2 [ID: 16] 17 3318436 KiB/s nodeID: node005-numa1-1 [ID: 17] 18 3329684 KiB/s nodeID: node005-numa1-2 [ID: 18] 19 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19] 20 2716438 KiB/s nodeID: node006-numa0-2 [ID: 20] 21 2707970 KiB/s nodeID: node006-numa1-1 [ID: 21] 22 2708326 KiB/s nodeID: node006-numa1-2 [ID: 22]
Inferência do resultado:
O throughput médio por destino de armazenamento é de 3,29 GB/s.
Com base nos resultados dos testes de referência de desempenho do StorageBench feitos em duas configurações diferentes do BeeGFS, uma com destinos de armazenamento configurados no RAID 0 e outra com destinos de armazenamento configurados no RAID 10, fica evidente que o desempenho de gravação é melhor com os destinos de armazenamento configurados no RAID 0 em vez do RAID 10. Quando o comando dd era usado para gravar um arquivo 10G com tamanho de bloco de 1M e "oflag=direct", a média era de cerca de 5,1 GB/s para o sistema pequeno configurado em RAID 0, enquanto o throughput médio era de cerca de 3,4 GB/s para o sistema médio configurado em RAID 10, o que é comparável com os resultados obtidos usando a ferramenta storagebench.
StorageBench — Para identificar destinos de armazenamento com defeito ou configuração incorreta
O StorageBench foi executado na configuração média descrita no blog de anúncio para descobrir se há destinos de armazenamento configurados incorretamente ou com defeito no sistema.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 33 Read benchmark results: Min throughput: 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14], targetID: 14 Max throughput: 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22], targetID: 22 Avg throughput: 2917836 KiB/s Aggregate throughput: 96288596 KiB/s List of all targets: 1 2950039 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 2956121 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 2954473 KiB/s nodeID: node001-numa1-3 [ID: 3] 4 2957658 KiB/s nodeID: node002-numa0-1 [ID: 4] 5 2947109 KiB/s nodeID: node002-numa0-2 [ID: 5] 6 2969886 KiB/s nodeID: node002-numa0-3 [ID: 6] 7 2892578 KiB/s nodeID: node002-numa1-1 [ID: 7] 8 2886899 KiB/s nodeID: node002-numa1-2 [ID: 8] 9 2888972 KiB/s nodeID: node002-numa1-3 [ID: 9] 10 2861995 KiB/s nodeID: node003-numa0-1 [ID: 10] 11 2874314 KiB/s nodeID: node003-numa0-2 [ID: 11] 12 2879096 KiB/s nodeID: node003-numa0-3 [ID: 12] 13 2832635 KiB/s nodeID: node003-numa1-1 [ID: 13] 14 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14] 15 2830971 KiB/s nodeID: node003-numa1-3 [ID: 15] 16 2986890 KiB/s nodeID: node004-numa0-1 [ID: 16] 17 2979197 KiB/s nodeID: node004-numa0-2 [ID: 17] 18 2983958 KiB/s nodeID: node004-numa0-3 [ID: 18] 19 2897974 KiB/s nodeID: node004-numa1-1 [ID: 19] 20 2900880 KiB/s nodeID: node004-numa1-2 [ID: 20] 21 2904036 KiB/s nodeID: node004-numa1-3 [ID: 21] 22 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22] 23 3021558 KiB/s nodeID: node005-numa0-2 [ID: 23] 24 3017387 KiB/s nodeID: node005-numa0-3 [ID: 24] 25 2921480 KiB/s nodeID: node005-numa1-1 [ID: 25] 26 2930226 KiB/s nodeID: node005-numa1-2 [ID: 26] 27 2930548 KiB/s nodeID: node005-numa1-3 [ID: 27] 28 2900018 KiB/s nodeID: node006-numa0-1 [ID: 28] 29 2898520 KiB/s nodeID: node006-numa0-2 [ID: 29] 30 2907113 KiB/s nodeID: node006-numa0-3 [ID: 30] 31 2855079 KiB/s nodeID: node006-numa1-1 [ID: 31] 32 2853527 KiB/s nodeID: node006-numa1-2 [ID: 32] 33 2861480 KiB/s nodeID: node006-numa1-3 [ID: 33]
A partir do resultado acima, fica evidente que todos os destinos de armazenamento executam uniformemente e que não há destinos defeituosos no sistema.
Conclusão e trabalhos futuros
Este blog abordou os principais recursos do BeeGFS e explicou a utilidade da referência de desempenho de banco de armazenamento para avaliar ou comparar o desempenho de diferentes configurações de RAID e também para identificar se algum dos destinos de armazenamento está com defeito ou configurado incorretamente. Como parte das próximas etapas, publicaremos um white paper posteriormente com o desempenho dos metadados e o desempenho do IOR, além de fornecer mais detalhes sobre considerações de projeto, ajuste e configuração.
Referências
1) Dell EMC Ready Solutions para armazenamento BeeGFS de HPC PowerEdge: Dell Ready Solutions for HPC BeeGFS High-Performance Storage
2) Escalabilidade das Dell Ready Solutions for HPC BeeGFS Storage PowerEdge: Escalabilidade das Dell Ready Solutions for HPC BeeGFS Storage
3) Documentação do BeeGFS:
https://www.beegfs.io/wiki/4) Como conectar duas interfaces na mesma sub-rede:
https://access.redhat.com/solutions/305645) Projeto de referência de acesso à memória PCI Express Direct usando memória externa: https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760