Esta página descreve as opções de montagem do NFS do Linux que afetam o desempenho e o comportamento ao montar exportações do NetApp Volumes. Você define essas opções ao executar o comando mount ou adicionando-as a /etc/fstab.
Para conferir a ordem de configuração recomendada e informações sobre como as opções de montagem interagem com a simultaneidade do kernel e a leitura antecipada, consulte Otimizar clientes NFS do Linux.
Para exemplos de comandos de montagem e acesso à exportação, consulte Conectar clientes NFS.
Antes de começar
Conclua os seguintes requisitos antes de montar o NetApp Volumes:
Use o comando de montagem das Google Cloud instruções de montagem do console, a menos que sua carga de trabalho precise de opções diferentes.
Se você ajustar a simultaneidade com a tabela de slots ou as configurações de slots de sessão, configure essas configurações antes da montagem. Para mais informações, consulte Simultaneidade do NFS do Linux.
Teste todas as mudanças em um ambiente que não seja de produção. O efeito das opções de montagem pode variar com base na carga de trabalho, na versão do Linux e na latência da rede.
Referência rápida
A tabela a seguir fornece uma referência rápida de opções de montagem comuns com base nas metas da carga de trabalho:
| Objetivo | Opções a considerar | Observações |
|---|---|---|
| Uso geral | Usar instruções de montagem do console Google Cloud | Inclui padrões adequados ao protocolo |
| Maior capacidade de processamento ou IOPS de uma VM | nconnect=8 a nconnect=16, ajuste rsize e wsize |
Defina a tabela de slots primeiro. Consulte Simultaneidade do NFS do Linux |
| Latência menor para bancos de dados | rsize=262144, wsize=262144, hard, timeo=600, vers=4.1 |
Teste para seu aplicativo específico |
| Especificar a versão do NFS | vers=3 ou vers=4.1 |
O Linux monta a versão mais alta disponível por padrão |
| NFSv3 sem bloqueios consultivos | vers=3, nolock |
Para orientações sobre firewall e gerenciador de bloqueios, consulte Conectar clientes NFS |
| Kerberos NFSv4.1 | sec=krb5, krb5i ou krb5p |
Não use com nconnect |
| Dados de leitura com compensações de coerência conhecidas | nocto, actimeo= |
Avançado: entenda o comportamento do cache primeiro |
Sempre inclua tcp ao montar o NFSv3. Embora o Linux use o TCP para o tráfego do NFS por padrão, adicionar tcp explicitamente ajuda a garantir que o processo de montagem use o TCP em vez do UDP. Isso ajuda a melhorar o desempenho quando muitos sistemas tentam montar ao mesmo tempo. Inclua noatime para reduzir as operações de metadados.
Perfis de montagem recomendados
Os perfis de montagem a seguir fornecem opções recomendadas com base nos requisitos de desempenho, nas versões do protocolo e na escala do cliente. Ao executar
esses comandos, substitua VOLUME_IP e /export_path pelos valores reais
das instruções de montagem no Google Cloud console.
Perfil A: padrão (console)
Execute o comando de montagem fornecido no Google Cloud console sem alterações.
Perfil B: orientado ao desempenho (cliente Linux único)
Exemplo para NFSv3, alinhado à configuração do teste de comparativos de desempenho:
sudo mount -t nfs -o hard,tcp,vers=3,rsize=262144,wsize=262144,nconnect=16 \ VOLUME_IP:/export_path /mnt/volume
Os comparativos usam nconnect=16 e rsize e wsize de 64 KiB. Muitas cargas de trabalho têm bom desempenho com nconnect=8. Teste os dois valores.
Perfil C: NFSv4.1 com versão explícita
sudo mount -t nfs -o vers=4.1,hard,rsize=262144,wsize=262144 \ VOLUME_IP:/export_path /mnt/volume
Para evitar a montagem automática do NFSv4.2 quando ele estiver ativado no volume, especifique vers=4.1. Para mais informações, consulte Conectar clientes NFS.
Perfil D: NFSv3 para farms de computação
Se você conectar um grande número de clientes a um volume (por exemplo, centenas), não use nconnect para evitar o esgotamento das sessões TCP disponíveis no volume.
sudo mount -t nfs -o vers=3,nolock,hard,tcp,rsize=262144,wsize=262144 \ VOLUME_IP:/export_path /mnt/volume
Persistir em /etc/fstab
O exemplo a seguir mostra uma linha /etc/fstab para NFSv4.1:
VOLUME_IP:/export_path /mnt/volume nfs vers=4.1,hard,tcp,rsize=262144,wsize=262144,timeo=600,_netdev 0 0
Use a opção _netdev para que o sistema aguarde a rede antes da montagem.
nconnect
A opção de montagem nconnect permite controlar o número de conexões TCP que o cliente NFS abre para o mesmo endpoint de armazenamento, que é o endereço IP do volume.
Cada conexão processa várias operações do NFS ao mesmo tempo, até um limite definido. Aumentar o número de conexões melhora a simultaneidade de E/S e a capacidade de processamento de um único cliente.
Recomendações
Considere as seguintes recomendações ao configurar a opção de montagem nconnect:
Teste
nconnect=8enconnect=16. Valores de até 16 são aceitos.Use
nconnectapenas para clientes dedicados de alta performance. Se muitos clientes, por exemplo, um farm de computação, se conectarem ao mesmo armazenamento, evite usarnconnect.Execute a primeira operação de montagem em um determinado IP de volume para definir o valor
nconnectpara esse IP no cliente. As montagens posteriores no mesmo IP usam o mesmo valor, mesmo que especifiquem um diferente. Monte a exportação com o valornconnectselecionado primeiro ou use a mesma opção para todas as montagens nesse IP.A definição de
nconnectpara um IP de volume não afeta as montagens em um IP de volume diferente.Verifique se sua distribuição do Linux oferece suporte a
nconnectantes de usá-lo.
Para mais informações sobre os limites de slots por conexão, consulte Simultaneidade do NFS do Linux.
rsize e wsize
As opções de montagem rsize e wsize definem o tamanho máximo de transferência para operações de leitura e gravação do NFS. Se você omiti-las, o cliente e o servidor negociarão o maior tamanho compatível, que é de até 1 MiB em clientes Linux e NetApp Volumes.
Recomendações
Considere as seguintes recomendações ao configurar as opções de montagem rsize e wsize:
Teste
rsize=262144ewsize=262144(256 KiB) para ajustar a capacidade de processamento e a latência de aplicativos sensíveis à latência.Use valores maiores que 256 KiB com cuidado, porque eles podem aumentar a latência ou reduzir a capacidade de processamento de algumas cargas de trabalho. Meça o desempenho antes da implantação.
Use
rsize=65536ewsize=65536(64 KiB) para testes do NFSv3, já que esses valores foram usados em comparativos de desempenho.
Essas configurações têm efeito mínimo em cargas de trabalho aleatórias, que normalmente usam tamanhos de operação menores que rsize e wsize, enquanto a E/S sequencial pelo cache de página geralmente usa tamanhos de operação de até rsize e wsize.
A opção de montagem rsize afeta o comportamento de leitura antecipada. Para mais informações, consulte
Leitura antecipada do NFS do Linux.
Versão do protocolo
A tabela a seguir lista os valores da opção vers e as versões de protocolo correspondentes:
| Opção | Usar |
|---|---|
vers=3 |
NFSv3 |
vers=4.1 |
NFSv4.1 |
vers=4.2 |
NFSv4.2 |
Se você não definir vers, o comando mount do Linux usará a versão mais alta do NFS compatível com o cliente e o volume. Os volumes Flex Unified, Standard, Premium e Extreme com o NFSv4.1 ativado também oferecem suporte ao NFSv4.2. É possível montar o NFSv4.2, a menos que você especifique vers=4.1.
Para mais informações sobre o mapeamento de identidade do NFSv4.1, o Kerberos e os IDs numéricos, consulte Conectar clientes NFS.
hard, timeo e retrans
As opções de montagem hard, timeo e retrans gerenciam o comportamento do cliente e a lógica de repetição de tempo limite quando ocorrem problemas de conexão:
hard: repete as solicitações do NFS até que elas sejam bem-sucedidas. Essa opção é típica para integridade de dados em cargas de trabalho de produção.timeo: especifica o tempo limite em décimos de segundo antes que uma solicitação seja repetida. Cargas de trabalho orientadas a bancos de dados geralmente usamtimeo=600(60 segundos).retrans: especifica o número de novas tentativas. Google Cloud Os padrões do console geralmente são suficientes, a menos que seus runbooks especifiquem o contrário.
Opção nolock do NFSv3
O bloqueio consultivo do NFSv3 usa o Network Lock Manager (NLM) e exige
rpc.statd do lado do cliente e regras de firewall para portas de callback.
Se você não usar bloqueios consultivos, monte com nolock para evitar o tráfego do gerenciador de bloqueios.
O NFSv4.1 implementa o bloqueio no protocolo na porta 2049. Os clientes não precisam de regras de entrada do gerenciador de bloqueios separadas.
Para mais informações sobre o uso de bloqueios consultivos com o NFSv3 e regras de firewall para acesso a volumes do NFS, consulte Conectar clientes NFS.
Cache e consistência usando nocto e actimeo
O cliente NFS usa um modelo de consistência flexível. Os timers de cache de atributos determinam por quanto tempo o cliente confia nos metadados de arquivos e diretórios antes de entrar em contato com o servidor. A consistência padrão de fechamento para abertura (cto) atualiza os dados do arquivo quando você o abre.
nocto: o cliente não força a consistência do servidor na abertura. Isso reduz as chamadasgetattr, mas aumenta o risco de dados desatualizados.actimeo=N: configura todos os timers de cache de atributos paraNsegundos (acregmin,acregmax,acdirmineacdirmax).
Considere usar nocto e valores actimeo mais altos nos seguintes cenários:
Um único gravador ou consumidores somente leitura que recebem atualizações por outro caminho.
Grandes conjuntos de dados estáticos, como bibliotecas EDA, conteúdo da Web ou texturas de renderização, se a desatualização breve for aceitável.
Na maioria dos casos, use os padrões recomendados do Linux para o armazenamento em cache de atributos:
Mínimo e máximo de arquivos normais:
acregmin=3segundos eacregmax=60segundosMínimo e máximo de diretórios:
acdirmin=30segundos eacdirmax=60segundos
Diminuir esses valores aumenta a carga no servidor NFS e pode reduzir o desempenho. Evite actimeo=0, exceto em casos de uso muito específicos em que você entende o impacto.
Outras opções comuns
As seguintes outras opções de montagem comuns estão disponíveis para clientes NFS:
rwouro: montagem de leitura e gravação ou somente leitura.noatime: não atualize o tempo de acesso na leitura, pois isso reduz as operações de metadados e é uma prática recomendada.sec=sys: AUTH_SYS, que é o padrão para exportações não Kerberos._netdev: use isso emfstabpara montar depois que a rede estiver disponível.