Impacto no desempenho do Kerberos nos volumes NFSv4.1 dos Arquivos NetApp do Azure
Os Arquivos NetApp do Azure dão suporte à criptografia de cliente NFS nos modos Kerberos (krb5, krb5i e krb5p) com criptografia AES-256. Este artigo descreve o impacto no desempenho do Kerberos em volumes NFSv4.1. As comparações de desempenho mencionadas neste artigo são feitas em relação ao sec=sys
parâmetro de segurança, testando em um único volume com um único cliente.
Opções de segurança disponíveis
As opções de segurança atualmente disponíveis para volumes NFSv4.1 são as seguintes:
- sec=sys usa UIDs e GIDs UNIX locais usando AUTH_SYS para autenticar operações NFS.
- sec=krb5 usa Kerberos V5 em vez de UIDs e GIDs UNIX locais para autenticar usuários.
- sec=krb5i usa Kerberos V5 para autenticação de usuário e executa a verificação de integridade de operações NFS usando somas de verificação seguras para evitar adulteração de dados.
- sec=krb5p usa Kerberos V5 para autenticação de usuário e verificação de integridade. Ele criptografa o tráfego NFS para evitar a deteção de tráfego. Essa opção é a configuração mais segura, mas também envolve a maior sobrecarga de desempenho.
Vetores de desempenho testados
Esta seção descreve o impacto no desempenho de um único cliente das várias sec=*
opções.
- O impacto no desempenho foi testado em dois níveis: baixa simultaneidade (baixa carga) e alta simultaneidade (limites superiores de E/S e taxa de transferência).
- Foram testados três tipos de cargas de trabalho:
- Pequena operação de leitura/gravação aleatória (usando FIO)
- Grande operação sequencial de leitura/gravação (usando FIO)
- Carga de trabalho pesada de metadados gerada por aplicativos como o git
Impacto esperado no desempenho
Existem duas áreas de foco: carga leve e limite superior. As listas a seguir descrevem a configuração de segurança de impacto no desempenho por configuração de segurança e cenário por cenário.
Escopo do teste
- Todas as comparações são feitas em relação ao
sec=sys
parâmetro de segurança. - O teste foi feito em um único volume, utilizando um único cliente.
Impacto no desempenho do krb5:
- IOPS média diminuiu 53%
- O rendimento médio diminuiu 53%
- Latência média aumentada em 0,2 ms
Impacto do krb5i no desempenho:
- IOPS média diminuiu 55%
- O rendimento médio diminuiu 55%
- A latência média aumentou 0,6 ms
Impacto do krb5p no desempenho:
- IOPS média diminuiu 77%
- O rendimento médio diminuiu 77%
- A latência média aumentou 1,6 ms
Considerações de desempenho com nconnect
Não é recomendado usar nconnect
e sec=krb5*
montar opções juntas. A degradação do desempenho foi observada ao usar as duas opções em combinação.
A GSS-API (Generic Security Standard Application Programming Interface) fornece uma maneira de os aplicativos protegerem os dados enviados para aplicativos pares. Esses dados podem ser enviados de um cliente em uma máquina para um servidor em outra máquina.
Quando nconnect
é usado no Linux, o contexto de segurança GSS é compartilhado entre todas as nconnect
conexões com um servidor específico. O TCP é um transporte confiável que suporta a entrega de pacotes fora de ordem para lidar com pacotes fora de ordem em um fluxo GSS, usando uma janela deslizante de números de sequência. Quando pacotes que não estão na janela de sequência são recebidos, o contexto de segurança é descartado e um novo contexto de segurança é negociado. Todas as mensagens enviadas no contexto agora descartado não são mais válidas, exigindo que as mensagens sejam enviadas novamente. Um número maior de pacotes em uma nconnect
configuração causa pacotes fora da janela frequentes, acionando o comportamento descrito. Nenhuma porcentagem de degradação específica pode ser declarada com esse comportamento.