Solucionar problemas de compartilhamentos de arquivos do Azure do NFS

Observação

O CentOS referenciado neste artigo é uma distribuição do Linux e chegará ao EOL (End Of Life). Considere seu uso e planeje de acordo. Para obter mais informações, confira Diretrizes de Fim de Vida do CentOS.

Este artigo lista problemas comuns relacionados aos compartilhamentos de arquivos do Azure NFS e fornece possíveis causas e soluções alternativas.

Importante

O conteúdo deste artigo só se aplica a compartilhamentos NFS. Para solucionar problemas de SMB no Linux, consulte Solucionar problemas de Arquivos do Azure no Linux (SMB). Não há suporte para compartilhamentos de arquivos do Azure do NFS para Windows.

Aplicável a

Tipo de compartilhamento de arquivo SMB NFS
Compartilhamentos de arquivo padrão (GPv2), LRS/ZRS
Compartilhamentos de arquivo padrão (GPv2), GRS/GZRS
Compartilhamentos de arquivo Premium (FileStorage), LRS/ZRS

falha no chgrp "filename": argumento inválido (22)

Causa 1: o idmapping não está desabilitado

Como Arquivos do Azure não permite UID/GID alfanumérico, você deve desabilitar o idmapping.

Causa 2: o idmapping foi desabilitado, mas foi habilitado novamente após encontrar um nome de arquivo/dir incorreto

Mesmo que você desabilite corretamente o idmapping, ele pode ser habilitado automaticamente em alguns casos. Por exemplo, quando Arquivos do Azure encontra um nome de arquivo ruim, ele envia um erro de volta. Ao ver esse código de erro, um cliente Linux NFS 4.1 decide habilitar novamente o idmapping e envia solicitações futuras com UID/GID alfanumérico. Para obter uma lista de caracteres sem suporte no Arquivos do Azure, consulte este artigo. Colon é um dos caracteres sem suporte.

Solução alternativa

Verifique se você desabilitou o idmapping e que nada está habilitando-o novamente. Em seguida, execute as seguintes etapas:

  1. Desmonte o compartilhamento.

  2. Desabilitar o idmapping com:

    sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
  3. Monte o compartilhamento de volta.

  4. Se estiver executando rsync, execute rsync com o —numeric-ids argumento de um diretório que não tenha um diretório ou nome de arquivo ruim.

Não é possível criar um compartilhamento NFS

Causa: configurações de conta de armazenamento sem suporte

O NFS só está disponível em contas de armazenamento com a seguinte configuração:

Solução

Siga as instruções em Como criar um compartilhamento NFS.

Não é possível se conectar ou montar um compartilhamento de arquivos do Azure NFS

Causa 1: A solicitação é originária de um cliente em uma rede não confiável/IP não confiável

Ao contrário do SMB, o NFS não tem autenticação baseada no usuário. A autenticação de um compartilhamento baseia-se na configuração da regra de segurança de rede. Para garantir que os clientes estabeleçam apenas conexões seguras com seu compartilhamento NFS, você deve usar o ponto de extremidade de serviço ou pontos de extremidade privados. Para acessar compartilhamentos do local, além de pontos de extremidade privados, você deve configurar uma conexão VPN ou ExpressRoute. Os IPs adicionados à lista de permissões da conta de armazenamento para o firewall são ignorados. Você deve usar um dos seguintes métodos para configurar o acesso a um compartilhamento NFS:

  • Ponto de extremidade de serviço

    • Acessado pelo ponto de extremidade público.

    • Disponível apenas na mesma região.

    • Você não pode usar o emparelhamento VNet para acesso de compartilhamento.

    • Você deve adicionar cada rede virtual ou sub-rede individualmente à lista de permissões.

    • Para acesso local, você pode usar pontos de extremidade de serviço com ExpressRoute, VPNs ponto a site e site a site. Recomendamos usar um ponto de extremidade privado porque ele é mais seguro.

      O diagrama a seguir mostra a conectividade usando pontos de extremidade públicos:

      Diagrama de conectividade de ponto de extremidade público.

  • Ponto de extremidade privado

    • O acesso é mais seguro do que o ponto de extremidade de serviço.

    • O acesso ao compartilhamento NFS por meio de link privado está disponível dentro e fora da região do Azure da conta de armazenamento (entre regiões e locais).

    • O emparelhamento de rede virtual com redes virtuais hospedadas no ponto de extremidade privado dá ao NFS acesso de compartilhamento aos clientes em redes virtuais emparelhadas.

    • Você pode usar pontos de extremidade privados com ExpressRoute, VPNs ponto a site e VPNs site a site.

      Diagrama de conectividade de ponto de extremidade privado.

Causa 2: a transferência segura necessária está habilitada

Atualmente, os compartilhamentos de arquivos do NFS Azure não dão suporte à criptografia dupla. O Azure fornece uma camada de criptografia para todos os dados em trânsito entre datacenters do Azure usando MACSec. Você só pode acessar compartilhamentos NFS de redes virtuais confiáveis e em túneis VPN. Nenhuma criptografia de camada de transporte extra está disponível em compartilhamentos NFS.

Solução

Desabilitar a transferência segura necessária na folha de configuração da sua conta de armazenamento.

Captura de tela que mostra a folha de configuração da conta de armazenamento, desabilitando a transferência segura necessária.

Causa 3: o pacote nfs-utils, nfs-client ou nfs-common não está instalado

Antes de executar o mount comando, instale o pacote nfs-utils, nfs-client ou nfs-common.

Para marcar se o pacote NFS estiver instalado, execute:

Os mesmos comandos nesta seção se aplicam ao CentOS e ao Oracle Linux.

sudo rpm -qa | grep nfs-utils

Solução

Se o pacote não estiver instalado, instale o pacote usando seu comando específico de distribuição.

Os mesmos comandos nesta seção se aplicam ao CentOS e ao Oracle Linux.

Versão 7.X do sistema operacional

sudo yum install nfs-utils

Versão 8.X ou 9.X do sistema operacional

sudo dnf install nfs-utils

Causa 4: Porta de bloqueio de firewall 2049

O protocolo NFS se comunica com seu servidor pela porta 2049. Verifique se essa porta está aberta para a conta de armazenamento (o servidor NFS).

Solução

Verifique se a porta 2049 está aberta em seu cliente executando o comando a seguir. Se a porta não estiver aberta, abra-a.

sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049

Causa 5: Conta de armazenamento excluída

Se você não conseguir montar o compartilhamento de arquivos devido a um erro: tempo limite de conexão, a conta de armazenamento que contém o compartilhamento de arquivos poderá ser excluída acidentalmente.

Solução

Recupere a conta de armazenamento. Em seguida, exclua e crie novamente o ponto de extremidade privado para que ele seja associado à nova ID do recurso da conta de armazenamento.

ls trava para enumeração de diretório grande em alguns kernels

Causa: um bug foi introduzido no kernel do Linux v5.11 e foi corrigido na v5.12.5

Algumas versões do kernel têm um bug que faz com que as listagens de diretório resultem em uma sequência READDIR sem fim. Diretórios pequenos em que todas as entradas podem ser enviadas em uma chamada não têm esse problema. O bug foi introduzido no kernel do Linux v5.11 e foi corrigido na v5.12.5. Portanto, qualquer coisa no meio tem o bug. O RHEL 8.4 tem essa versão do kernel.

Solução alternativa: fazer downgrade ou atualizar o kernel

O downgrade ou a atualização do kernel para qualquer coisa fora do kernel afetado devem resolve o problema.

Os comandos do sistema falham com o erro "Arquivo não encontrado"

Motivo

Aplicativos linux de 32 bits que dependem de números de inode podem não funcionar conforme o esperado com Arquivos do Azure devido à formatação dos números de inode de 64 bits gerados pelo serviço NFS.

Solução

Para resolver esse problema, use um dos seguintes métodos:

  • Compacte os números de inode de 64 bits a 32 bits usando a opção de inicialização do nfs.enable_ino64=0 kernel.

  • Defina o parâmetro do módulo adicionando options nfs enable_ino64=0 ao arquivo /etc/modprobe.d/nfs.conf e reinicializando a VM.

Você também pode persistir essa opção de inicialização do kernel no arquivo grub.conf . Para obter mais informações, confira a documentação da distribuição do Linux.

Precisa de ajuda?

Se você ainda precisar de ajuda, entre em contato com o suporte para resolver o problema rapidamente.

Confira também

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.