Visão geral da solução
Este blog descreve a solução de armazenamento NFS HPC versão 7.4 (NSS7.4-HA) da Dell EMC, que aproveita os processadores escalonáveis Intel Xeon da segunda geração, com o codinome "Cascade Lake". Esses processadores Xeon aprimorados contam com até 28 núcleos, até 38,5 MB de cache de último nível e seis canais de memória de 2933 MT/s por soquete. Os principais recursos dos processadores em cascata são as
atenuações de hardware integradas contra ataques de canal lateral, o
Intel DL Boost (VNNI) e o suporte para aumentos de velocidade de clock e velocidades de memória.
O lago em cascata e seu antecessor Skylake incluem um recurso chamado
ADDDC (
umdaptive
double
dRAM
dispositivo
Correction). O ADDDC é implantado em tempo de execução para mapear dinamicamente os dispositivos DRAM com falha e continuar fornecendo
Single
Device
Data
Correction (SDDC, Correção de dados de dispositivo único), memória de Código de correção de erro (ECC), resultando em maior longevidade do DIMM. Esse recurso é ativado somente para dispositivos DRAM x4 e não faz nada quando há dispositivos com DRAM x8 no sistema. Como a versão 7.4 mais recente da NSS-HA usa apenas a memória de 16 GB, com organização x8, o ADDDC fica acinzentado e não é uma opção ajustável no BIOS. No entanto, se você estiver usando memória de 32 GB que é X4, o ADDDC estará disponível como uma opção ajustável e será recomendável ser definido como desativado para favorecer o desempenho sobre os recursos do RAS.
É recomendável configurar os servidores de NFS com o perfil de HPC, conforme descrito no "
caracterização do BIOS para processadores Intel em cascata," isso inclui ajustar o BIOS para configurar o cluster de subsistemas ativado, o processador lógico desativado e o perfil do sistema definido como "desempenho". Se estiver fazendo upgrade de um sistema existente, certifique-se de que o BIOS seja atualizado primeiro para uma versão com suporte às CPUs Cascade Lake antes de fazer um upgrade das CPUs para os processadores Cascade Lake. A equipe de engenharia de HPC do Laboratório de inovação em IA e HPC realizou uma série de testes de desempenho com servidores NSS equipados com processadores Cascade Lake e comparou os resultados com os que foram obtidos anteriormente da solução NSS7.3-HA, que utilizou a versão mais recente dos servidores PowerEdge equipados com os processadores da família Xeon "Skylake-SP" da geração anterior. Os resultados de benchmark e a comparação são apresentados neste blog.
A solução de armazenamento NFS fornecida pelo Dell EMC é otimizada e ajustada para obter um melhor desempenho. Ao configurar a solução NSS7.4-HA, os seguintes pontos em destaque devem ser observados:
- O sistema operacional de suporte mínimo para uso de processadores Cascade Lake é o Red Hat Enterprise Linux 7.6. No entanto, com o kernel versão 3.10.0-957.el7, o compartilhamento de NFS ficará suspenso com uma tarefa, como kworker, consumindo 100% da CPU. A causa raiz do problema é que a camada de TCP está ficando fora de sincronia com o estado de transporte de camadas sunrpc. Esse problema foi solucionado com o pacote kernel-3.10.0-957.5.1.el7 ou posterior. Portanto, o sistema operacional básico usado para esta solução é o RHEL7.6 e a versão do kernel utilizada é kernel-3.10.0-957.5.1.el7. Consulte https://access.redhat.com/solutions/3742871 para obter mais detalhes.
- Para a solução NSS7.4-HA, a menos que os seguintes pacotes estejam instalados, o recurso nfsserver não é iniciado porque o nfs-idmapd.service falha ao iniciar. Consulte https://access.redhat.com/solutions/3746891 para obter mais detalhes.
- resource-agents-4.1.1-12.el7_6.4
- resource-agents-aliyun-4.1.1-12.el7_6.4
- resource-agents-gcp-4.1.1-12.el7_6.4 ou posterior.
- As notas da versão do RHEL7.6 chamam atenção para o fato de que um bug na camada de E/S do LVM causa corrupção de dados nos primeiros 128 KB de espaço alocável de um volume físico. O problema foi solucionado com o lvm2-2.02.180-10.el7_6.2 ou posterior. Portanto, certifique-se de que o pacote lvm2 seja atualizado para a versão mais recente. Se a atualização do lvm2 não for uma opção, a solução alternativa seria não usar os comandos LVM que alteram os metadados do grupo de volumes (VG), como lvcreate ou lvextend, enquanto os volumes lógicos no VG estão em uso.
Arquitetura NSS7.4-HA
A figura 1 mostra o projeto da NSS7.4-HA. Com exceção das atualizações de software e firmware necessárias, a NSS7.4-HA e a NSS7.3-HA compartilham a mesma configuração em cluster e configuração de armazenamento HA. O par de servidores NFS na configuração de alta disponibilidade ativa-passiva está anexado ao PowerVault ME4084. Há placas SAS duplas em cada servidor NFS. Cada placa tem um cabo SAS para cada controlador no armazenamento compartilhado, de modo que uma única placa SAS ou uma falha de cabo SAS não afetam a disponibilidade dos dados. (Consulte o
white paper da NSS7.3-HA para obter informações mais detalhadas sobre a configuração).
Arquitetura NSS7.4-HA
Comparação de componentes na NSS7.4-HA vs NSS7.3-HA
Embora as soluções Dell NSS-HA tenham recebido muitas atualizações de hardware e de software para oferecer maior disponibilidade, maior desempenho e maior capacidade de armazenamento desde o primeiro lançamento do NSS-HA, o projeto de arquitetura e as diretrizes de implementação da família de soluções NSS-HA permanecem inalterados. Esta versão mais recente e a versão anterior, NSS7.3-HA, compartilham o mesmo back-end de armazenamento: o Power Vault ME4084. A tabela a seguir fornece uma comparação entre os componentes da solução NSS7.4-HA mais recente e a solução NSS7.3-HA mais antiga
Tabela 1: Tabela 1: comparação dos componentes na NSS7.4-HA vs NSS7.3-HA
Solução |
Versão NSS7.4-HA (junho de 2019) |
Versão NSS7.3-HA (outubro de 2018) |
Modelo de servidor NFS |
2 Dell EMC PowerEdge R740 |
Conectividade interna |
Gigabit Ethernet usando o Dell Networking S3048-ON |
Subsistema de armazenamento |
Dell EMC PowerVault ME4084 84-3,5 "NL SAS unidades, até 12 TB. Suporta até 1008TB (espaço bruto) 8 LUNs, linear 8 + 2 RAID 6, tamanho do fragmento 128KiB. 4 unidades de disco rígido globais de reserva. |
Conexão de armazenamento |
Conexões SAS de 12 Gbit/s. |
Processador |
2 processadores Intel Xeon Gold 6240 a 2,6 GHz, 18 núcleos por processador |
2 processadores Intel Xeon Gold 6136 a 3,0 GHz, 12 núcleos por processador |
Memória |
12 RDIMMs de 16 GiB, 2933 MT/s |
12 RDIMMs de 16 GiB, 2666 MT/s |
Sistema operacional |
Red Hat Enterprise Linux 7.6 |
Red Hat Enterprise Linux 7.5 |
Versão do kernel |
3.10.0-957.5.1.el7.x86_64 |
3.10.0-862.el7.x86_64 |
Sistema de arquivos escalonável Red Hat (XFS) |
v4.5.0-18 |
v4.5.0-15 |
Conectividade de rede externa |
Mellanox ConnectX-5 InfiniBand EDR/100 GbE e 10 GbE |
Mellanox ConnectX-5 InfiniBand EDR e 10 GbE. Para o blog da solução NSS 7.3-ha, Mellanox ConnectX-4 IB EDR/100 GbE, foi usado. |
Versão do OFED |
Mellanox OFED 4.5-1.0.1.0 |
Mellanox OFED 4.4-1.0.0 |
No restante do blog, serão apresentados o ambiente de teste e as informações de desempenho de E/S da NSS7.4-HA. Para mostrar a diferença de desempenho entre a NSS7.4-HA e a versão anterior, os valores de desempenho correspondentes da NSS7.3-HA também são apresentados.
Configuração do ambiente de teste
O ambiente de teste usado para avaliar o desempenho e a funcionalidade da solução NSS7.4-HA está descrito aqui. Observe que as CPUs usadas para testes de desempenho são diferentes daquela selecionada para a solução, já que as CPUs Xeon Gold 6240 não foram recebidas a tempo para este trabalho. O plano é repetir alguns testes após a disponibilidade dos processadores 6240 e alterar este relatório conforme necessário.
Tabela 2: NSS 7.4 — configuração de hardware de HA
Configuração do servidor |
Modelo de servidor NFS |
Dell PowerEdge R740 |
Processador |
2 CPUs Intel Xeon Gold 6244 a 3,60 GHz com 8 núcleos cada |
Memória |
12 RDIMMs de 16 GiB, 2933 MT/s |
Discos locais e controlador RAID |
PERC H730P com cinco discos rígidos SAS de 15.000 rpm e 300 GB. Duas unidades são configuradas no RAID1 para o sistema operacional, duas unidades são configuradas no RAID0 para o espaço de permuta, e a quinta unidade é um hot spare para o grupo de discos RAID1. |
Placa Mellanox EDR (slot 8) |
Placa Mellanox ConnectX-5 EDR |
Placa Ethernet de 1 GbE (slot de cartão filho) |
Placa-filha de rede Broadcom 5720 QP 1 Gigabit Ethernet. Ou Intel(R) Gigabit 4P I350-t rNDC |
Controlador de armazenamento externo (slot 1 e slot 2) |
Dois HBAs Dell SAS 12 Gbps |
Gerenciamento de sistemas |
iDRAC9 Enterprise |
Configuração de armazenamento |
Enclosure de armazenamento |
1 Enclosure Dell PowerVault ME4084 |
Controladores RAID |
Controladores RAID duplex no Dell ME4084 |
Discos rígidos |
84 unidades SAS 10 TB 7.2K NL por array, 84 x 10 TB de disco no total |
Outros componentes |
Switch Gigabit Ethernet privada |
Dell Networking S3048-ON |
Unidade de distribuição de energia |
Duas PDUs de rack comutado APC, modelo AP7921B |
Tabela 3: NSS 7.4 — versões do software de servidor de HA
Componente |
Descrição |
Sistema operacional |
Red Hat Enterprise Linux (RHEL) 7.6 x86_64 errata |
Versão do kernel |
3.10.0-957.5.1.el7.x86_64 |
Suite de cluster |
Red Hat Cluster Suite do RHEL 7.6 |
Filesystem |
Sistema de arquivos escalonável (XFS) Red Hat 4.5.0-18. |
Ferramenta de gerenciamento de sistemas |
Dell OpenManage Server Administrator 9.3.0-3407_A00 |
Tabela 4: NSS 7.4 — configuração de Client de HA
Componente |
Descrição |
Servidores |
32 nós de computação do Dell EMC PowerEdge C6420 |
CPU |
2 CPUs Intel Xeon Gold 6148 a 2,40 GHz com 20 núcleos por processador |
Memória |
12 RDIMMs de 16 GiB, 2666 MT/s |
Sistema operacional |
Servidor Linux Red Hat Enterprise versão 7.6 |
Versão do kernel |
3.10.0-957.el7.x86_64 |
Interconexão |
Mellanox InfiniBand EDR |
Versão do OFED |
4.3-1.0.1.0 |
Firmware do ConnectX-4 |
12.17.2052 |
Resumo de desempenho de E/S da NSS7.4-HA
Esta seção apresenta os resultados dos testes de desempenho de E/S para a solução NSS7.4 atual. Todos os testes de desempenho foram conduzidos em um cenário sem falhas para medir a capacidade máxima da solução. Os testes se concentraram em três tipos de padrões de E/S: grandes leituras e gravações sequenciais, pequenas leituras e gravações aleatórias e três operações de metadados (criação, estado e remoção de arquivos). Como a versão anterior NSS 7.3-HA, a solução usa o Agendador de I/O de prazo e o 256 NFS daemons.
Uma configuração de 840TB (tamanho do armazenamento bruto) foi avaliada com a conectividade de rede do IPoIB em EDR. Um cluster de computação de 32 nós foi usado para gerar carga de trabalho para os testes de desempenho. Cada teste foi executado em um intervalo de clients para testar a escalabilidade da solução.
Os benchmarks do IOzone e do mdtest foram usados nesse estudo. O IOzone foi usado para os testes sequenciais e aleatórios. Para testes sequenciais, foi usado um tamanho de solicitação de 1024 KiB. A quantidade total de dados transferidos foi de 2 TB para garantir que o cache do servidor NFS estivesse saturado. Testes aleatórios usaram um tamanho de solicitação de 4 KiB e cada client leu e gravou um arquivo de 4 GiB. Os testes de metadados foram executados usando o parâmetro de comparação mdtest com OpenMPI e incluíram operações de criação, estado e remoção de arquivos. (Consulte o apêndice A do white paper da NSS7.3-HA para obter os comandos completos utilizados nos testes.)
Gravações sequenciais e leituras de IPoIB N-N
Para avaliar as leituras e gravações sequenciais, a versão 3.487 do benchmark IOzone foi usada no modo de leitura e gravação sequenciais. Esses testes foram realizados com várias contagens de threads, começando por 1 thread e aumentando em potências de 2, até 64 threads. A cada contagem de threads foi gerado um número idêntico de arquivos, pois esse teste funciona em um arquivo por thread, ou o caso N-N. O tamanho de um arquivo agregado de 2 TB foi selecionado, o que é igualmente dividido entre o número de threads dentro de um determinado teste.
A Figura 2 fornece uma comparação entre o desempenho de I/O sequencial da versão NSS 7.4-HA com o da versão NSS 7.3-HA. A partir da figura, observa-se que a NSS7.4 mais recente e a NSS7.3 anterior têm desempenho de pico semelhante, com leitura de aproximadamente 7 GB/s e desempenho de pico de gravação de 5 GB/s. No entanto, algumas contagens de thread apresentam uma redução de 15-20% no desempenho de gravação medido quando comparado à solução NSS7.3-HA. A investigação dessa diferença de desempenho está em andamento. O desempenho de leitura registrou um aumento de quase 45% em contagens de thread 1 e 2 e um aumento de 18% na contagem de thread 8. Para contagens de thread superiores a 8, o desempenho de leitura é semelhante ao da solução NSS7.3-HA. O aumento no desempenho de leitura em uma contagem de threads mais baixa é provavelmente devido às reduções de hardware que estão em vigor nos processadores Cascade Lake em relação aos ataques de temporização. Desempenho de E/S sequencial grande de IPoIB
Gravações aleatórias e leituras de IPoIB N-N
Para avaliar o desempenho de E/S aleatório, a versão 3.487 do IOzone foi usada no modo aleatório. Foram realizados testes com contagens de threads a partir de 1 até 64 em potências de 2. O tamanho do registro foi escolhido para ser 4 KB. Cada client leu ou gravou um arquivo de 4 GiB para simular pequenos acessos a dados aleatórios. Como o cluster tinha apenas nós do 32, o ponto de dados do thread 64 foi obtido com os clients 32 executando 2 threads cada.
A Figura 3 mostra a comparação de desempenho de I/O de leitura e gravação aleatório do NSS 7.4-HA com o que há de NSS 7.3-HA. A partir da figura, observa-se que o NSS7.4 tem desempenho de pico de gravação aleatória semelhante ao da NSS7.3-HA, aprox. 7300 IOPS. Na solução NSS7.4-HA, para a menor contagem de threads de 1 e 2, o desempenho de gravação é aproximadamente 14% menor em comparação com a versão anterior da solução, e isso está sendo investigado. O desempenho de leitura aleatório aumenta de forma constante na NSS7.4 e atinge o pico de desempenho de 16.607 IOPS em 64 threads. Na versão anterior (NSS7.3-HA), o pico de desempenho de 28.811 IOPS tinha sido alcançado em 32 threads, o que é 42% mais alto do que o pico de desempenho obtido para leituras aleatórias na solução NSS7.4-HA. Desempenho de E/S aleatório de IPoIB
Operações de metadados do IPoIB
Para avaliar o desempenho de metadados do sistema, a versão 1.9.3 da ferramenta MDTest foi usada. A distribuição MPI utilizada foi a versão 1.10.7 do OpenMPi. Os testes de metadados foram realizados com a criação de 960.000 arquivos para contagem de threads de até 32 e, em seguida, com o aumento do número de arquivos para testar a escalabilidade da solução, como mostra a Tabela 5. Testes de metadados: Distribuição de arquivos e diretórios em threads
Número de threads |
Número de arquivos por diretório |
Número de diretórios por segmento |
Número total de arquivos |
1 |
3000 |
320 |
960000 |
2 |
3000 |
160 |
960000 |
4 |
3000 |
80 |
960000 |
8 |
3000 |
40 |
960000 |
16 |
3000 |
20 |
960000 |
32 |
3000 |
10 |
960000 |
64. |
3000 |
8 |
1536000 |
128 |
3000 |
4 |
1436000 |
256 |
3000 |
4 |
3072000 |
512 |
3000 |
4 |
6144000 |
As figuras 4, 5 e 6 mostram, respectivamente, os resultados das operações de criação, estado e remoção de arquivos. Como o cluster de cálculo HPC tem 32 nós de computação, nos gráficos abaixo, cada cliente executou no máximo uma thread por nó para contagens até 32. Para contagens de cliente de 64, 128, 256 e 512, cada nó executou operações simultâneas de 2, 4, 8 ou 16.
Na criação de arquivo, há uma melhoria de 20% no desempenho de até 16 threads e, a partir de 32 threads em diante, o desempenho de ambas as versões é quase semelhante.
As operações de estatística no NSS 7.4 registraram uma melhoria de 10% em desempenho para as contagens de threads inferiores (1, 2, 8 e 16) e uma redução de > 30% no desempenho com maior número de threads (de 64 threads a 512 threads).
Por fim, as operações de remoção tinham uma redução de 14% no desempenho de até 64 clients e uma redução de 20% de > para maior contagem de threads de 128.256 e 512.
Figura 4: Desempenho de criação de arquivos do IPoIB
Figura 5: Desempenho de IPoIB fiel stat
Figura 6: IPoIB fie remover desempenho
Conclusão
A tabela a seguir resume a diferença de desempenho observada entre as últimas soluções NSS7.4 e NSS7.3. Tabela 5: comparação de desempenho das versões NSS7.4 e NSS7.3 HA
Armazenamento Dell EMC HPC NFS |
NSS7.4-HA |
NSS7.4 – HA NSS7.3-HA |
Seq. Pico de gravações de 1MB: redução de 1,4% |
4834 MB/s |
4906 MB/s |
Seq. Pico de leituras de 1MB: redução de 0,7% |
7024 MB/s |
7073 MB/s |
Pico de gravações de 4 KB aleatório: redução de 0,7% |
7290 IOps |
7341 IOps |
Máximo de leituras de 4 KB aleatório: redução de 42% |
16.607 IOps |
28.811 IOps |
Operações de criação/segundo pico: redução de 1,1% |
54.197 Op/s |
54.795 Op/s |
Operações de Estatística/segundo pico: redução de 35% |
522.231 Op/s |
808.317 Op/s |
Operações de remoção/segundo pico: redução de 35% |
47.345 Op/s |
73.320 Op/s |
Com base nos resultados acima, podemos concluir que a solução atual NSS7.4-HA fornece desempenho comparável com o da solução NSS7.3-HA anterior. Planejamos executar os testes de referência de desempenho com CPUs Xeon Gold 6240 com 18 núcleos por processador, para entender se a diminuição de desempenho para leituras aleatórias e a diminuição do desempenho em contagens de threads mais altas nas operações de estado e remoção de arquivos podem ser atribuídas ao menor número de núcleos utilizados nas CPUs Xeon Gold 6244 (8 núcleos por processador) usadas para testar o desempenho da solução NSS7.4-HA.
Referências
Para obter informações detalhadas sobre as soluções NSS-HA, consulte os white papers